FreeSWITCH D100 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 FreeSWITCH, 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 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 Transcoding Package:
-> sngtc_cfg --server
The above command will probe for all transcoders located on the network (or inside the computer) and create the sngtc_server configuration file:
If you have more than one D100 in the computer "sngtc_server.conf" will only list information of the first D100 detected (i.e IP address). The rest of the D100 configurations are hidden and will use consecutive IP addresses. (i.e first D100- 10.1.1.150, second D100- 10.1.1.151, third D100- 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:
<param name="bindaddr" value="0.0.0.0" />
<param name="bindport" value="9000" />
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
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 transcoder, so that packets reach their destination without being denied by permissions.
The transcoded rtp stream leaving the transcoder's vocallo module must be able to route back to the sngtc_server client (Asterisk) located remotely on the network. Enabling this option will allow the rtp stream to be forwarded by the ethernet device located on the transcoder hardware (ex. 10.1.1.1), which will then be routed by the machine's routing table. If this option is disabled, the packets will be dropped as soon as they reach the ethernet device on the transcoder which 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
-> service network restart on Redhat distributions
->/etc/init.d/procps.sh restart on Debiun/Ubuntu distributions