[OpenSIPS-Users] Rewrite Username in URI when using userloc

2011-05-19 Thread Spencer Thomason
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
Users@lists.opensips.org
http://lists.opensips.org/cgi-bin/mailman/listinfo/users


Re: [OpenSIPS-Users] Rewrite Username in URI when using userloc

2011-05-19 Thread Dave Singer
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
 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
> Users@lists.opensips.org
> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>

___
Users mailing list
Users@lists.opensips.org
http://lists.opensips.org/cgi-bin/mailman/listinfo/users


Re: [OpenSIPS-Users] Rewrite Username in URI when using userloc

2011-05-20 Thread Spencer Thomason
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
>  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
>> Users@lists.opensips.org
>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>> 
> 
> ___
> Users mailing list
> Users@lists.opensips.org
> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
> 


___
Users mailing list
Users@lists.opensips.org
http://lists.opensips.org/cgi-bin/mailman/listinfo/users