[SR-Users] Kamailio and several Asterisk - Realtime DB Integration (solved)

Alejandro Rios P. alerios at debian.org
Mon Apr 11 17:49:23 CEST 2011


Hi Daniel

You may want to kill me but I'll be honest, I'm actually using kamailio's
1.5 UAC module on an Opensips 1.6.2   :$   so I don't know if the problem
could be related to that.  Anyway, here is the bad register message when
using only $uac_req(ruri)="sip:8.14.80.37:5061".   Note that the SIP part
itself its correct, but the UDP destination port is wrong:


Internet Protocol, Src: 8.14.80.16 (8.14.80.16), Dst: 8.14.80.37
(8.14.80.37)
User Datagram Protocol, Src Port: sip-tls (5061), Dst Port: sip (5060)
C%E@@PP%
REGISTER sip:8.14.80.37:5061 SIP/2.0
Via: SIP/2.0/UDP 8.14.80.16:5061;branch=z9hG4bK9b35.3e435b31.0
To: sip:LV-SKRUPPA at 8.14.80.37
From: <sip:LV-SKRUPPA at 8.14.80.37>;tag=a649c0188a5a7b7f4a4dfeaea88004c3-b5bd
CSeq: 10 REGISTER
Call-ID: 52d42e13484b4229-29572 at 8.14.80.16
Content-Length: 0
User-Agent: OpenSIPS (1.6.2-notls (x86_64/linux))
Contact: <sip:LV-SKRUPPA at 8.14.80.16:5061>
Expires: 60


I hope this can be of any help.

Kind regards,


Alejandro Rios Peña
<alerios at debian.org>

DISCLAIMER: The opinions expressed are my own, and not necessarily those of
my employer.

<http://www.avatar.com.co>


2011/4/11 Daniel-Constantin Mierla <miconda at gmail.com>

>  Hello,
>
>
> On 4/8/11 6:14 PM, Alejandro Rios P. wrote:
>
> Hello Daniel
>
> Thanks for pointing out to the SIP traces. I found out that it if the
> request is to be sent to a destination using a port other than 5060, it is
> required to add the $uac_req(ouri) parameter too:
>
> $uac_req(ouri)="sip:" + $var(asterisk_ip) + ":" + $var(asterisk_port);
> ....
>
> $uac_req(ouri)="sip:" + $var(asterisk2_ip) + ":" + $var(asterisk2_port);
>
> Interesting, it should work when changing the 'ruri' attribute as well. Can
> you send a sip trace with changed r-uri for the two requests that go to
> wrong destination?
>
> Thanks,
> Daniel
>
>
>
> Thanks!
>
> Alejandro Rios Peña
>
>
> DISCLAIMER: The opinions expressed are my own, and not necessarily those of
> my employer.
>
>  <http://www.avatar.com.co>
>
>
> 2011/4/8 Daniel-Constantin Mierla <miconda at gmail.com>
>
>> Hello,
>>
>>
>> On 4/8/11 12:28 AM, Alejandro Rios P. wrote:
>>
>>>
>>> Hi all,
>>>
>>> I am testing the scenario described here:
>>> http://kb.asipto.com/asterisk:realtime:kamailio-3.1.x-asterisk-1.6.2-astdb
>>>
>>> It works great with one instance of Asterisk, but now that I'm testing
>>> with two Asterisk instances to load balance, and I see a problem regarding
>>> the registration forwarding to the second Asterisk.
>>>
>>> I tried adding a second "uac_req_send()" bellow the first one, but
>>> Kamailio only sends the first request and the REGISTER never gets to the
>>> second Asterisk:
>>>
>>> # Forward REGISTER to Asterisk
>>> route[REGFWD]  {
>>>        if(!is_method("REGISTER"))
>>>        {
>>>                return;
>>>        }
>>>        $var(rip)  =  $sel(cfg_get.asterisk.bindip);
>>>        $uac_req(method)="REGISTER";
>>>        $uac_req(ruri)="sip:"  +  $var(rip)  +  ":"  +
>>>  $sel(cfg_get.asterisk.bindport);
>>>        $uac_req(furi)="sip:"  +  $au+  "@"  +  $var(rip);
>>>        $uac_req(turi)="sip:"  +  $au+  "@"  +  $var(rip);
>>>        $uac_req(hdrs)="Contact:<sip:"  +  $au+  "@"
>>>                                +  $sel(cfg_get.kamailio.bindip)
>>>                                +  ":"  +  $sel(cfg_get.kamailio.bindport)
>>>  +  ">\r\n";
>>>        if($sel(contact.expires)  !=  $null)
>>>                $uac_req(hdrs)=  $uac_req(hdrs)  +  "Expires:"  +
>>>  $sel(contact.expires)  +  "\r\n";
>>>        else
>>>                $uac_req(hdrs)=  $uac_req(hdrs)  +  "Expires:"  +
>>>  $hdr(Expires)  +  "\r\n";
>>>        uac_req_send();
>>>
>>>         $uac_req(all) = null;
>>>
>>>        $var(rip2)  =  $sel(cfg_get.asterisk2.bindip);
>>>        $uac_req(method)="REGISTER";
>>>        $uac_req(ruri)="sip:"  +  $var(rip2)  +  ":"  +
>>>  $sel(cfg_get.asterisk2.bindport);
>>>        $uac_req(furi)="sip:"  +  $au+  "@"  +  $var(rip2);
>>>        $uac_req(turi)="sip:"  +  $au+  "@"  +  $var(rip2);
>>>        $uac_req(hdrs)="Contact:<sip:"  +  $au+  "@"
>>>                                +  $sel(cfg_get.kamailio.bindip)
>>>                                +  ":"  +  $sel(cfg_get.kamailio.bindport)
>>>  +  ">\r\n";
>>>        if($sel(contact.expires)  !=  $null)
>>>                $uac_req(hdrs)=  $uac_req(hdrs)  +  "Expires:"  +
>>>  $sel(contact.expires)  +  "\r\n";
>>>        else
>>>                $uac_req(hdrs)=  $uac_req(hdrs)  +  "Expires:"  +
>>>  $hdr(Expires)  +  "\r\n";
>>>        uac_req_send();
>>>
>>> }
>>>
>>> I also tried appending another branch and sending the second
>>>  uac_req_send() from there, but it is not being sent.
>>>
>>> How can I use uac_req_send() several times for the same request or in
>>> parallel?
>>>
>>  it should work one after the other. append_branch() does not affect
>> uac_req_send() at all, this is a separate request built from scratch.
>>
>> Do you get any error message in the syslog? Can you watch the traffic on
>> all interfaces 'ngrep -d any -qt -W byline port 5060' ?
>>
>> I see you assign '$uac_req(all) = null;', it should be '$uac_req(all) =
>> $null;' - but I guess it was a copy&paste thing.
>>
>> Cheers,
>> Daniel
>>
>> --
>> Daniel-Constantin Mierla
>> http://www.asipto.com
>>
>>
>
> _______________________________________________
> SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing listsr-users at lists.sip-router.orghttp://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
>
>
> --
> Daniel-Constantin Mierlahttp://www.asipto.com
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.sip-router.org/pipermail/sr-users/attachments/20110411/95e5de59/attachment-0001.htm>


More information about the sr-users mailing list