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:222.222.222.227;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 Regards, Matt
opensips-debug
Description: Binary data
_______________________________________________ Users mailing list [email protected] http://lists.opensips.org/cgi-bin/mailman/listinfo/users
