Configuring Routing Information

    Now that your distributed network is setup for transcoding, it is important to make sure that you have your routes properly defined so packets reach their destination without being denied by permissions. For the purpose of this topic,  Host A will represent the machine with the SOAP client (Asterisk/FreeSWITCH) and Host B will represent the machine containing only the transcoder hardware and SOAP server (sngtc_server).


    1. Verify that IP forwarding is enabled on Host B. The transcoded rtp stream leaving the transcoder's vocallo module must be able to route back to the Asterisk/FreeSWITCH SOAP client 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
      or
      -> service network restart on Redhat distributions
      ->/etc/init.d/procps.sh restaron Debiun/Ubuntu distributions

    2. When Host A requires a transcoding session from the remote transcoder hardware, it will require to know how to route to the transcoder's internal vocallo module (ex. 10.1.1.151).  Since the vocallo module IP is unknown to Host A, a route must be added in Host A's routing table.  To add a route to the routing table in Host A, type the following in the Linux CLI:

      -> route add -net 10.1.1.0 netmask 255.255.255.0 gw <LAN IP of Host B> dev <ethX> , where "ethX" represents the ethernet device of Host A's main LAN

      ---> Multiple routes can be added in Host A if you have multiple connections to the network and want more than one access point for transcoding requests.  Simply add a new route with the ethX of the next ethernet interface to configure
      ---> Perform Step 2 for all SOAP clients

      A route in Host B's routing table will NOT be required because when the returning transcoded RTP stream from the vocallo module cannot find its destination through Host B's routing table (i.e. rtpip=HostA) it will route to Host B's default gateway, which will know about Host A and send the stream back to Host A.

      *  
      If you are certain that your default gateway does not know about Host A, then you will require to add the route:
      -> route add -net <first 3 octets of Host A. 0> netmask 255.255.255.0 gw <gateway> dev <ethX> ,where "ethX" represents the ethernet device of Host B's main LAN