This documentation describes the obsolete feature.

It's worth using the following one instead


Client Side


The Sippy Softswitch supports external Routing Groups. An external Routing Group can be created by checking the 'External Group' checkbox and entering URI to access the external routing daemon. The routing works as showed in the following example.


Setup


  1. External group has been created on softswitch at IP 10.0.0.1 with name 'Group 1' and URI 'https://172.16.0.1:7777/'
  2. A non-external routing group has been created on the sofswitch at IP 172.16.0.1 with name 'Group 1'
  3. Softswitch at IP 172.16.0.1 is configured to accept routing requests from 10.0.0.1 (see below).


Call flow


  1. Call is sent to the 10.0.0.1. The routing group 'Group 1' is chosen.
  2. Softswitch at 10.0.0.1 requests the softswitch 172.16.0.1 for routing group 'Group 1' and other routing specific parameters (CLI, CLD, etc)
  3. Softswitch 172.16.0.1 lookus up an appropriate connections and rates and returns them to the 10.0.0.1.
  4. To perform correct billing the 10.0.0.1 uses the vendor with the name 'External Connections (autocreated)'. If this vendor does not exist, it is created automatically.
  5. The external connections are mapped to the corresponding connections under this special vendor. The name of the external connection equals the name of the local connection, if local connection with that name does not exist, it is created automatically.
  6. Routing information is ready and the call is forwarded to the vendor as usual.


External Routing Daemon


The sippy_routed.py daemon by default listens on the local UNIX socket unix:/var/run/sippy_routed.?.sock. To make the daemon to listen on a different socket the -s command line option can be used.

When the daemon listens on HTTP or HTTPS socket the default behavior is to reject clients from all IP addresses. So you have to specify all allowed client IP addresses using the -a option.

!!!WARNING!!! The following steps should be performed by skilled personnel only! If you will make an error in the procedure described below, you can severely damage your system!

The /home/ssp/etc/econfig/sippy_routed.sh file on the 172.16.0.1 contains the following line, which should be changed to allow external routing. 


command_args="/home/ssp/apps/sippy_routed/sippy_routed.${extension} -e %%I_ENVIRONMENT%%"


Lets finish the setup described above. The goal is to make the routed daemon to accept requests on the https://172.16.0.1:7777/ from the 10.0.0.1. This should be done for environment with i_environment = 3 only.

Please note that each environment must listen on own TCP port. TCP ports from different environments must not clash.

We change the /home/ssp/etc/econfig/sippy_routed.sh on the 172.16.0.1 to look like this: 


command_args="/home/ssp/apps/sippy_routed/sippy_routed.${extension} -e %%I_ENVIRONMENT%%"
%%IF_ENV_IN 3
command_args="${command_args} -s https://172.16.0.1:7777 -a 10.0.0.1"
%%ENDIF


WARNING! The changes to the file are applied to the running system automatically so you are strongly recommended to keep this file free of errors and typos! This also means that you don't have to restart anything to apply the changes.