[OpenSIPS-Users] Unexpected loose_route() behavior

Matthew Lehner mlehner at gmail.com
Tue Jun 8 05:34:13 CEST 2010

I am setting up opensips to act as a proxy between a SIP trunk
provider and more than one asterisk server. I am using alias_db to
determine which asterisk server a particular DID/user should be
relayed to. I am also using record_route() to ensure my proxy stays in
the entire dialog of the call.

The initial requests go through just fine, but subsequent requests in
the same dialog from the SIP provider are not getting routed properly
because of loose_route().

When the request from the SIP provider arrives, it hits loose_route()
and the RURI gets changed to sip:;lr=on which does not
contain a username and so alias_db can no longer match the call
details and route the request to the proper asterisk server.

The way I understood loose_route() was supposed to work is.. it checks
the top-most Route header to see if it is the local proxy.. if it is
it removes that Route and if there is another Route below it.. it will
change the RURI to that.

If I just don't do loose_route() on requests from the SIP provider,
everything works as expected.. but this does not seem like the right
solution to the problem.

I have included debug output from opensips, along with some of my own logging.

333.333.333.x is the SIP provider
222.222.222.x is my opensips proxy


-------------- next part --------------
A non-text attachment was scrubbed...
Name: opensips-debug
Type: application/octet-stream
Size: 6304 bytes
Desc: not available
Url : http://lists.opensips.org/pipermail/users/attachments/20100607/75f77c15/attachment.obj 

More information about the Users mailing list