[OpenSIPS-Users] OpenSIPS with Loose routing

Doug doug at wd.co.za
Tue Aug 24 13:55:40 CEST 2010


  Hi All,

I'm having an issue with loose routing and call setups.

My call flow looks like the following:

192.168.112.110 (ATA) -----> 192.168.110.1:5060 (OpenSIPS) ------> 
192.168.10.1:5080 (Sippy b2bua) -----> 192.168.10.50:5060 (TDM Gateway - 
Audiocodes)

Now, OpenSIPS and Sippy B2bua are on the same server (just different 
listening ports). OpenSIPS is configured with mhomed=1 and listening on 
2x IP Addresses - namely 192.168.110.1 and 192.168.10.2

Now the call gets setup correctly, until the ACK is passed through.

The ATA sends an ACK to OpenSIPS with record routing, and the RURI is 
set as sip:192.168.10.1:5080. Now before, if I called loose_route(), the 
ACK was sent to the 192.168.10.2 IP of opensips, and in this case, it 
just loops endlessly.

So I decided to put a check above loose_route, to check if the method 
was an ACK and then to forward it direct to the RURI instead of having 
the RURI rewritten based on loose_route(). This fixed the problem perfectly.

The issue is now the ATA attempts to do a T.38 switch over, and the same 
issues as the ACK happens.

Is there a better way for me to be doing this. I have to use Sippy b2bua 
due to the billing / radius integration it has - should I disable 
loose_routing altogether?

By the way, the following code block is what was used to fix the ACK issue:

         if (is_method("ACK"))
         {
                 route(16);
         }

         if(loose_route())
         {
...

route 16 simply checks a transaction and then calls t_relay.

Looking forward to the assistance.

Many thanks
Doug




More information about the Users mailing list