[OpenSIPS-Users] OpenSIPS Perl module branching and logging

Bogdan-Andrei Iancu bogdan at voice-system.ro
Thu May 13 19:09:38 CEST 2010


Hi David,

looking at the message, I see that the ACK is wrongly generated. The 
RURI of the ACK must be the contact received in 200 OK (as received by 
the phone). The 200 OK shows ast02, but the ACK goes to ast01 , which is 
bogus.

Also the UAC seams to ignore the RR indication - according to the RR 
received in 200 OK, the UAC should sent the ACK to sip01 and not to 
ast01 .....

Regards,
Bogdan

David Cunningham wrote:
> Hi Bogdan,
>
> That sounds reasonable, but an ngrep trace on the opensips server is
> showing the ACK from the phone is being forwarded to the wrong
> Asterisk, i.e. not the one that sent the 200 OK.
>
> As I mentioned, we are passing routing of messages through a Perl
> module, and this branches messages to all Asterisk servers. I have
> logged the rewrite_ruri() and append_branch() steps so I know these
> are happening to all Asterisk servers.
> I'm therefore not sure how to determine where the fault is, given the
> discrepancy between the logging in the Perl code, which what we're
> seeing actually happen on the ngrep trace.
>
> Can you give any advice? Much appreciated!
>
>
> I've also copied and pasted in here the 200 OK and the ACK. You can
> see that ast02 sends the 200 OK to sip01, but then sip01 sends the ACK
> on to ast01.
>
>
> U 2010/05/11 08:29:01.674692 (ast02):5060 -> (sip01):5060
> SIP/2.0 200 OK.
> Via: SIP/2.0/UDP (sip01);branch=z9hG4bKd334.32c9cde4.1;received=(sip01).
> Via: SIP/2.0/UDP (unknown other
> IP):5060;rport=5060;received=(phone);branch=z9hG4bKaacc9f8227a7ea553.b59f1ab3b79f7cfcc.
> Record-Route: <sip:(sip01);lr=on;ftag=b9d0d92b6c>.
> From: "User" <sip:(calling number)@(sip01):5060>;tag=b9d0d92b6c.
> To: "**" <sip:**@(sip01):5060>;tag=as1a1f4c27.
> Call-ID: a7366e4855e295af.
> CSeq: 18830 INVITE.
> Server: Enswitch.
> Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO.
> Supported: replaces, timer.
> Contact: <sip:**@(ast02)>.
> Content-Type: application/sdp.
> Content-Length: 314.
> .
> v=0.
> o=root 1399767030 1399767030 IN IP4 (ast02).
> s=Asterisk PBX 1.6.1.12.
> c=IN IP4 (ast02).
> t=0 0.
> m=audio 12876 RTP/AVP 0 8 18 101.
> a=rtpmap:0 PCMU/8000.
> a=rtpmap:8 PCMA/8000.
> a=rtpmap:18 G729/8000.
> a=fmtp:18 annexb=no.
> a=rtpmap:101 telephone-event/8000.
> a=fmtp:101 0-16.
> a=ptime:20.
> a=sendrecv.
>
>
>
> U 2010/05/11 08:29:01.984181 (sip01):5060 -> (ast01):5060
> ACK sip:**@(ast01):5060;transport=udp SIP/2.0.
> Record-Route: <sip:(sip01);lr=on;ftag=b9d0d92b6c>.
> Via: SIP/2.0/UDP (sip01);branch=z9hG4bKd334.32c9cde4.3.
> Via: SIP/2.0/UDP (unknown other
> IP):5060;rport=5060;received=(phone);branch=z9hG4bKc0d1abc8b8ff65c68.d1538fb17483e517f.
> Route: <sip:(sip01);lr=on;ftag=b9d0d92b6c>.
> Proxy-Require: com.nortelnetworks.firewall.
> Max-Forwards: 69.
> From: "User" <sip:(calling number)@(sip01):5060>;tag=b9d0d92b6c.
> To: "**" <sip:**@(sip01):5060>;tag=as1a1f4c27.
> Call-ID: a7366e4855e295af.
> CSeq: 18830 ACK.
> User-Agent: Aastra 57i/2.5.2.30.
> Content-Length: 0.
>
>
> On Wed, May 12, 2010 at 9:59 AM, Bogdan-Andrei Iancu
> <bogdan at voice-system.ro> wrote:
>   
>> In such a case, from SIP point of view, there is a single ACK
>> corresponding to the winning branch (which sent the 200 OK).
>>
>> Regards,
>> Bogdan
>>
>> David Cunningham wrote:
>>     
>>> Hi Bogdan,
>>>
>>> That's correct, the ACK for the 200OK.
>>>
>>> On Wed, May 12, 2010 at 8:46 AM, Bogdan-Andrei Iancu
>>> <bogdan at voice-system.ro> wrote:
>>>
>>>       
>>>> Hi David,
>>>>
>>>> David Cunningham wrote:
>>>>
>>>>         
>>>>> Hello,
>>>>>
>>>>> We are using OpenSIPS with a Perl module which needs to branch SIP
>>>>> messages to multiple Asterisk servers. This is done with a
>>>>> $m->rewrite_ruri() to the first destination, and an
>>>>> $m->append_branch() to each following destination.
>>>>> There's a problem though, that with ACK messages it only seems to
>>>>> arrive at the first Asterisk server.
>>>>>
>>>>>
>>>>>           
>>>> You mean the ACK for 200OK ?
>>>>
>>>> Regards,
>>>> Bogdan
>>>>
>>>>         
>>>>> Does anyone know of a problem using this method to branch ACK messages?
>>>>>
>>>>> Can anyone advise how I can (in the Perl) extract the destination
>>>>> addresses from $m as strings to verify that all the destinations are
>>>>> correct after the final $m->append_branch()?
>>>>>
>>>>> Thanks for your help!
>>>>>
>>>>>
>>>>>
>>>>>           
>>>> --
>>>> Bogdan-Andrei Iancu
>>>> www.voice-system.ro
>>>>
>>>>
>>>> _______________________________________________
>>>> Users mailing list
>>>> Users at lists.opensips.org
>>>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>>>>
>>>>
>>>>         
>>>
>>>
>>>       
>> --
>> Bogdan-Andrei Iancu
>> www.voice-system.ro
>>
>>
>> _______________________________________________
>> Users mailing list
>> Users at lists.opensips.org
>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>>
>>     
>
>
>
>   


-- 
Bogdan-Andrei Iancu
www.voice-system.ro




More information about the Users mailing list