[Kamailio-Users] Passing REGISTERs up stream

Daniel-Constantin Mierla miconda at gmail.com
Fri Oct 31 09:47:29 CET 2008


Hello,

On 10/30/08 01:10, Daniel Corbe wrote:
> Guys,
>
> When attempting to pass REGISTER requests up stream I get the 
> following error messages on the console (below).  This also brings up 
> the question of "what is the best way to simply pass REGISTER requests 
> on to an upstream registrar?"
>
> Thanks for the help.
>
> -Daniel
>
>
> REGISTER: NATed client, enabling NAT
> Oct 29 18:03:58 [48175] ERROR:tm:t_forward_nonack: no branch for 
> forwarding
> Oct 29 18:03:58 [48175] ERROR:tm:w_t_relay: t_forward_nonack failed
> Oct 29 18:03:58 [48175] ERROR:tm:t_forward_nonack: no branch for 
> forwarding
> Oct 29 18:03:58 [48175] ERROR:tm:w_t_relay: t_forward_nonack failed
> Oct 29 18:03:59 [48175] CRITICAL:tm:t_should_relay_response: 
> pick_branch failed (lowest==-1) for code 401
>
> Here's the relevant parts of my ser config;
>
> in route[1]
>
> route[1]
> {
>      ...
>         if (method == "REGISTER")
>         {
>                 route(2);
>         }
>         route(1);
> }
>
> route[2]
> {
>         # Check to see if the UAC is trying to UNREGISTER.  If not test
>         # for NAT.  If NAT is present, we mark it as such before we save()
>         # the location, that way flag 6 is always set for NATed UAs.
>         if (!search("^Contact:[ ]*\*") && nat_uac_test("19")) {
>                 xlog("L_NOTICE", "REGISTER: NATed client, enabling 
> NAT\n");
>                 setflag(6);
>                 fix_nated_register();
>                 force_rport();
>         };
>
>         # We must handle replies for registrations, for caching and 
> location
>         # tracking purposes.
>         t_on_reply("1");
>         t_on_failure("1");
>
>         # Check for digest
>         #if (radius_www_authorize(""))
>         #{
>         #       xlog("L_NOTICE", "REGISTER: No Digest, sending 
> challenge\n");
>         #       www_challenge("", "0");
>         #       exit;
>         #}
>
>         # Digest was good if we get here
>         #save("location");
>
>         # Relay register to porta
>         t_relay("216.151.143.69 <http://216.151.143.69>");
> }
>
> onreply_route[2]
> {
>         if (status =~ "2[0-9][0-9]")
>         {
>         #       save("location");
>         };
> }
you need a line with:

exit;

at the end of route[2]. Also, there seem to be looping in route[1] if 
you handle non-REGISTER.

Cheers,
Daniel

-- 
Daniel-Constantin Mierla
http://www.asipto.com





More information about the sr-users mailing list