Asterisk G729

From OpenVZ Virtuozzo Containers Wiki
Jump to: navigation, search

Installing the Asterisk/Digium g729 codec license[edit]

The open source phone software Asterisk has a unique problem when you are trying to set it up inside a VE. If you buy licenses for the G729 codec from Digium and run the registration program it will fail. That's because the registration process requires that it has access to the MAC address on eth0 in order to work. But there is a way around it. You can make the eth0 device appear within the VE as follows:

vzctl set $VEID --netif_add eth0 --save

This command build a line in your conf file that looks like this:

NETIF="ifname=eth0,mac=XX:XX:XX:XX:XX:XX,host_ifname=veth101.0,host_mac=YY:YY:YY:YY:YY:YY"

Initially the values of eth0 (XX) match the hardware card and the values of veth101.0 (YY) is random. The important point is that the XX values is the MAC number that Digium will see when you register your codecs. And this has the advantage of being portable from machine to machine.

You can check your virtual device from within the VE as follows:

ifconfig -a

eth0      Link encap:Ethernet  HWaddr FF:12:34:56:78:90 
          BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

When you see the eth0 device in your VE and are happy with the MAC number then you can go ahead and register your codecs and it will actually work.