Transcoding Package
Download the Latest Sangoma Media Transcoding Release:
---> sng-tc-linux-1.3.8.i686.tgz (2016-01-07) ChangeLog
---> sng-tc-linux-1.3.8.x86_64.tgz (2016-01-07)
*A manual firmware upgrade is required to use the above 1.2.x releases for cards
purchased before November 10th, 2010
--> Firmware upgrade Procedure
Transcoding Package Downloading & Installing
To install the transcoding package follow the steps below. Insure you get the URL of the package you need from the list above.
Note: If you are doing this on an Official FreePBX Distro machine, please run yum install asterisk<ver>-devel libxml2-devel first
-> cd /usr/src/
-> wget <URL of Package>
-> tar xfz sng-tc-<ver>-<arch>.tgz
-> cd sng-tc-<arch>-<ver>
make
make install
Hardware Installation & Configuration
Insert the card in the server and boot it up.
The NIC will be detected as Broadcom
To check if the driver is installed run "ifconfig -a" and see if the new NIC is shown.
If the card is not detected then you will need to update the Ethernet driver to the latest release. Below is the steps to preform the update.
-> cd sng-tc-<ver>/server/eth_driver
-> ./install.sh
The install script will auto detect the NIC ( Broadcom & Micrel).
If drivers are not found it will try to build them for the current kernel you are running or contact Sangoma Technical Support.
--------------
Configuring the Ethernet device
Note this step is distro-dependent
To Configure the network interface (RedHat/Fedora/CentOS-5.x)
--> run: system-config-network
--> Select new eth device created on eth driver module load
--> Specify a private IP address that is on different subnet than your local LAN.
eg: 10.1.1.1 netmask 255.255.255.0
--> Leave gateway ip empty
To apply network settings
--> run: /etc/init.d/network restart
If there are more than one D100 devices in the machine, each D100 eth device must have
its own subnet IP.
Eg: D500 card1 - IP 10.1.1.1/24
D500 card2 - IP 10.1.2.1/24
Firmware Update
To check if the firmware requires updating run the firmware update utility
--> Run: sngtc_tool –dev ethX –firmware (replace ‘X’ with the interface of the transcoder)
--> If the FROM and TO version are the same you are up to date so cancel the update; if the versions are different please update.
--> If the update fails insure the ethX interface has a IP address (replace ‘X’ with the interface of the transcoder)
Note sngtc_server must NOT be running during the update; sngtc_server_ctrl stop will stop the server if it is running.
Transcoding Module Installation and Configuration
*Note: This step assumes Asterisk is on the same server as the transcoder. If Asterisk only exists on other servers please go to -> D500 PCI express sngtc server configuration
The steps below will install the Asterisk trancoding module, so please insure you have the Asterisk headers already installed (ie: /usr/include/asterisk/)
cd sng-tc-<arch>-<ver>
make asterisk
make install
[ -d /usr/lib64/asterisk/modules ] && cp /usr/lib/asterisk/modules/codec_sangoma.so /usr/lib64/asterisk/modules/codec_sangoma.so
The Asterisk Codec Module is now installed and requires configuration via the following steps. This step will auto detect ALL D100 transcoders located on the same network and will create Asterisk codec module configuration files. All transcoders detected will all be treated as one big transcoding resource. There is no option to manually control particular D100 cards. Auto detection is performed through the Ethernet interface of your main LAN.
--> sngtc_cfg --server --asterisk
or
--> sngtc_cfg --server --asterisk --astdir=/etc/asterisk
The result of the above command creates an IP address for the transcoding card, by defaul <X.X.X>.150 is used
Asterisk Sangoma Transcoding Config file:
/etc/asterisk/sangoma_codec.conf
Transcoder Hardware Configuration file:
/etc/sngtc/sngtc_server.conf
If you have more than one module (480) on the D500 "sngtc_server.conf" will only list information of the first module detected (i.e IP address). The rest of the D500 module 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...)
Asterisk now needs to be configured to load the "codec_sangoma" module each time it starts.
--> vi /etc/asterisk/modules.conf
--> Add the line "load => codec_sangoma.so" into the file; save and quit
By default G729 is the only codec registered with Asterisk. If you require additional codecs please go to the following wiki page to configure them --> Asterisk codec configuration .
Operation
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 controls all Sangoma transcoders that are located on the same computer (this means you cannot have multiple sngtc_servers controlling/communicating with specific transcoders).
The sngtc_server needs to be started before transcoding can be done. Below is the usage of the sng_tc_server_ctrl command.
*Note by default this script is started on system boot.
--> sngtc_server_ctrl (start|stop|restart)
To enable Asterisk to connect to the sngtc_server and then to the transcoder you will need the have the module codec_sangoma loaded. To load the module run the command below.
*Note the step above shows you how to auto load this on Asterisk start.
Asterisk CLI> module load codec_sangoma.so
WARNING: There is a bug in Asterisk that may lead to crashes when loading codecs if there are 2 different modules providing the same translation paths. See this bug report for more information: http://issues.asterisk.org/view.php?id=17092. You can also read the sample configuration comments in sng-tc-<version>/codec/asterisk/sangoma_codec.conf.sample to learn more about work-arounds in case you face the problem.
To status the codec_sangoma module use the commands below.
Asterisk CLI> sangoma show translators(Shows codecs registered by codec_sangoma)
Asterisk CLI> sangoma show transcoding sessions(Shows active transcoding sessions)
Asterisk CLI> sangoma show rtp statistics(Shows real time RTP stats including dropped packets)