Thanks Dave,
What I ended up with was setting a flag in the userloc related block and then 
if that flag is set I set $rU=$oU in the branch route as well.  That solved it 
:-)


On May 19, 2011, at 9:24 PM, Dave Singer wrote:

> Spencer,
> Looks like you just need to move $rU=$oU; into branch_route[2]
> Note that in failure route it will be reset to what it was before
> changes done in branch route so you may want to do it in main route
> and in branch route.
> 
> Dave
> 
> On Thu, May 19, 2011 at 4:02 PM, Spencer Thomason
> <[email protected]> wrote:
>> Hello all,
>> I'm using Opensips in between several Freeswitch and Asterisk boxes (each 
>> with multiple DIDs) and my ITSP's proxies.  The local IP PBXs register to 
>> Opensips and inbound routing is done via the userloc module.  The problem I 
>> have is that I need to send in incoming INVITE to the original username, not 
>> the registered contact so the PBXs can perform the proper routing.  
>> Currently I set $rU=$Ou in the request route which works perfectly if there 
>> is only one contact registered.  If there is more than one contact 
>> registered, the INVITE is sent to the registered contact and then the PBX 
>> doesn't know how to route the call since it hits a default contact.  Is 
>> there a better way to do this?  I'm fairly new to Opensips and would 
>> appreciate any help. :-)
>> 
>> A snippet from my script:
>> route {
>>        ...
>>        if (!lookup("location","m")) {
>>                switch ($retcode) {
>>                        case -1:
>>                        case -3:
>>                                t_newtran();
>>                                t_reply("404", "Not Found");
>>                                exit;
>>                        case -2:
>>                                sl_send_reply("405", "Method Not Allowed");
>>                                exit;
>>                }
>>        }
>> 
>>        $rU=$oU;
>>        route(1);
>> }
>> 
>> 
>> route[1] {
>>        if (is_method("INVITE")) {
>>                t_on_branch("2");
>>                t_on_reply("2");
>>                t_on_failure("1");
>>        }
>> 
>>        if (!t_relay()) {
>>                sl_reply_error();
>>        };
>>        exit;
>> }
>> 
>> 
>> branch_route[2] {
>>        xlog("new branch at $ru\n");
>> }
>> 
>> 
>> onreply_route[2] {
>>        xlog("incoming reply\n");
>> }
>> 
>> 
>> failure_route[1] {
>>        if (t_was_cancelled()) {
>>                exit;
>>        }
>> 
>>        if (t_check_status("3[0-9][0-9]")) {
>>        t_reply("404","Not found");
>>                exit;
>>        }
>> }
>> 
>> 
>> 
>> Thanks,
>> Spencer
>> 
>> 
>> 
>> _______________________________________________
>> Users mailing list
>> [email protected]
>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>> 
> 
> _______________________________________________
> Users mailing list
> [email protected]
> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
> 


_______________________________________________
Users mailing list
[email protected]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users

Reply via email to