[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