Asterisk D500 LAN Distributed Sngtc Server Configuration
Sngtc Server Configuration
The sngtc_server is at the heart of the transcoding environment. It interfaces the transcoder hardware and codec module (the codec module, in asterisk, communicates with the sngtc_server in order to pass information to/from transcoder). It is installed only on one server, and controls all Sangoma transcoders that are located on the same network (this means you cannot have multiple sngtc_servers controlling/communicating with specific transcoders/modules on the same network). If there is more than one Sangoma transcoder on the network, the sngtc_server will access all transcoding resources in round-robin.
Run the following command only on the main server where you installed the D500:
-> sngtc_cfg --serverIf multiple interfaces have detected the D500 transcoder, then you may have multiple LAN connections to this server, or the PCI Express Ethernet interface (tg3) has detected the D500. Select configuration for only the interface of the main LAN (and only one)
The above command will probe for all transcoders located on the network (or inside this computer) and create the sngtc_server configuration file:
-> /etc/sngtc/sngtc_server.conf.xml
If you have more than one module (480) on the D500 in the computer "sngtc_server.conf" will only list information of the first D500 moodule detected (i.e IP address). The rest of the D500 configurations are hidden and will use consecutive IP addresses. (i.e first D500 module- 10.1.1.150, second D500 module- 10.1.1.151, third D500 module- 10.1.1.152...)
When multiple Asterisk Clients are located remotely to the machine hosting the sngtc_server, the sngtc_server must be configured to listen on all Ethernet interfaces in order to receive transcoding requests from the remote transcoding clients.
To enable this, edit sngtc_server.conf.xml only on the server hosting the hardware transcoder, and add the following lines of code inside the configuration tag:
<settings>
<param name="bindaddr" value="0.0.0.0" />
<param name="bindport" value="9000" />
/settings>
If you wish to have the sngtc_server listen on a specific network interfaces, then change the "bindaddr" value to the specific interface IP
*NOTE: the above configuration is required to be performed only one time, for the multiple server environment
Routing Configuration
Now that the sngtc server is setup for your distributed network, it is important to make sure that you have IP Forwarding enabled on the machine hosting the sngtc_server, so that packets their destination without being denied by permissions.
The transcoded rtp stream leaving the D500 must be able to route back to the intended Asterisk Box located on the network, through the main server (hosting sngtc_server). Enabling this option will allow the rtp stream to be forwarded by the machine's routing table. If this option is disabled, the packets will be dropped as soon as they reach the main box will result in no audio.
To check if IP forwarding is enabled on your system, type the following command in the Linux CLI:
-> cat /proc/sys/net/ipv4/ip_forward
The output will either return a '0' or a '1', which indicates the option is disabled (0) or enabled (1) respectively
If you need to enable IP forwarding, edit /etc/sysctl.conf:
-> vi /etc/sysctl.conf, and add the following line:
-> net.ipv4.ip_forward = 1, or if this line is already present, then make sure the value =1
run the following command to enable changes:
-> sysctl -p /etc/sysctl.conf
or
-> service network restart on Redhat distributions
->/etc/init.d/procps.sh restart on Debiun/Ubuntu distributions