[Kamailio-Users] Passing REGISTERs up stream

Daniel Corbe daniel.junkmail at gmail.com
Sun Nov 2 09:27:14 CET 2008


Is there a way to save the contact binding on the reply?  save("location")
throws an error that says it cannot be used in reply blocks.
Thanks.

-Daniel

Nov  2 02:21:27 [61791] CRITICAL:core:yyerror: parse error in config file,
line 417, column 10-11: Command cannot be used in the block

onreply_route[2]
{
        if (status =~ "2[0-9][0-9]")
        {
                save("location");
        };
}

If I can't use the save("location") in the onreply block, then how do I
cache the contact binding?

Is there a way to do it from within a module?  I might consider coding
something up if that is the case.  What module does the save command live
in?

On Fri, Oct 31, 2008 at 1:47 AM, Daniel-Constantin Mierla <miconda at gmail.com
> wrote:

> 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
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.kamailio.org/pipermail/users/attachments/20081102/0e920a39/attachment.htm 


More information about the Users mailing list