linphone-developers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Linphone-developers] ACK construction not compliant to RFC 3261


From: Rick van Rein
Subject: [Linphone-developers] ACK construction not compliant to RFC 3261
Date: Tue, 5 Jun 2012 12:31:08 +0200
User-agent: Mutt/1.5.20 (2009-06-14)

Hello,

I ran into a problem with SIP that ended up being a flaw in LinPhone.

Version:        linphone 3.3.2
Variation:      console, linphonec (linphone-nox)
Platform:       Debian Squeeze
Transport:      UDP over IPv6

The ACK constructed in response to a "200 OK" contains a Request-URI that
seems to originate from the Contact: header.  This is incompatible with
RFC 3621 which states:

   The ACK request constructed by the client transaction MUST contain
   values for the Call-ID, From, and Request-URI that are equal to the
   values of those header fields in the request passed to the transport
   by the client transaction (call this the "original request").

As far as I can tell, the rest of the ACK construction is correct,
only the Request-URI is incompatible.  I am enclosing a trace.

As you can see from the route sets in the traces, I am passing the traffic
through an IPv4/IPv6 translator of my own design,
        http://devel.0cpm.org/sipproxy64/
and my first instinct was to check if that was false.  But the RFC stated
otherwise.

I hope this is useful.  Thanks for making Linphone!


Cheers,
 -Rick

    ------- 8< ------- 8< ------- 8< ------- 8< ------- 8< -------

1. linphone 2001:db8::200 -> opensips 2001:db8::11

        INVITE sip:address@hidden:5080 SIP/2.0
        Via: SIP/2.0/UDP [2001:db8::200]:5080;branch=z9hG4bK1847014067
        From: <sip:address@hidden>;tag=1669548454
        To: <sip:address@hidden:5080>
        Call-ID: 1701848931
        CSeq: 20 INVITE
        Contact: <sip:address@hidden:db8::200]:5080>
        Content-Type: application/sdp
        Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY, MESSAGE, 
SUBSCRIBE, INFO
        Max-Forwards: 70
        User-Agent: Linphone/3.3.2 (eXosip2/3.3.0)
        Subject: Phone call
        Content-Length:   427
        
        v=0
        o=3153xxxxxxx 123456 654321 IN IP6 2001:db8::200
        s=A conversation
        c=IN IP6 2001:db8::200
        t=0 0
        m=audio 7078 RTP/AVP 112 111 110 3 0 8 101
        a=rtpmap:112 speex/32000/1
        a=fmtp:112 vbr=on
        a=rtpmap:111 speex/16000/1
        a=fmtp:111 vbr=on
        a=rtpmap:110 speex/8000/1
        a=fmtp:110 vbr=on
        a=rtpmap:3 GSM/8000/1
        a=rtpmap:0 PCMU/8000/1
        a=rtpmap:8 PCMA/8000/1
        a=rtpmap:101 telephone-event/8000/1
        a=fmtp:101 0-11

2. opensips 2001:db8::11 -> linphone 2001:db8::200 (after 100 and 183 messages)

        SIP/2.0 200 OK
        Via: SIP/2.0/UDP 
[2001:db8::200]:5080;received=2001:db8::200;branch=z9hG4bK1847014067
        Record-Route: <sip:83.143.188.165;lr=on;ftag=1669548454>
        Record-Route: <sip:10.0.0.11;lr>
        Record-Route: <sip:10.0.0.12:5060;lr>
        Record-Route: <sip:[2001:db8::12]:5060;lr>;received=2001:db8::11
        Record-Route: <sip:[2001:db8::11];r2=on;lr>
        Record-Route: <sip:[2001:db8::11]:5080;r2=on;lr>
        From: <sip:address@hidden>;tag=1669548454
        To: <sip:address@hidden:5080>;tag=1490130588
        Call-ID: 1701848931
        CSeq: 20 INVITE
        Contact: <sip:address@hidden:db8::12]:63493;bnat=yes>
        Content-Type: application/sdp
        Allow: INVITE
        Allow: ACK
        Allow: CANCEL
        Allow: BYE
        Allow: OPTIONS
        Allow: INFO
        Allow: REFER
        Allow: SUBSCRIBE
        Allow: NOTIFY
        Supported: replaces
        allow-events: message-summary
        allow-events: refer
        Max-Forwards: 70
        Content-Length:   231
        
        v=0
        o=31534782239 5020 48 IN IP4 83.143.188.165
        s=Mapping
        c=IN IP6 2001:db8::12
        t=0 0
        m=audio 14008 RTP/AVP 0 101
        a=rtpmap:0 PCMU/8000
        a=rtpmap:101 telephone-event/8000
        a=fmtp:101 0-16
        a=sendrecv
        a=nortpproxy:yes

3. linphone 2001:db8::200 -> opensips 2001:db8::11

        ACK sip:address@hidden:db8::12]:63493;bnat=yes SIP/2.0
        Via: SIP/2.0/UDP [2001:db8::200]:5080;branch=z9hG4bK1932446024
        Route: <sip:[2001:db8::11]:5080;r2=on;lr>
        Route: <sip:[2001:db8::11];r2=on;lr>
        Route: <sip:[2001:db8::12]:5060;lr>;received=2001:db8::11
        Route: <sip:10.0.0.12:5060;lr>
        Route: <sip:10.0.0.11;lr>
        Route: <sip:83.143.188.165;lr=on;ftag=1669548454>
        From: <sip:address@hidden>;tag=1669548454
        To: <sip:address@hidden:5080>;tag=1490130588
        Call-ID: 1701848931
        CSeq: 20 ACK
        Contact: <sip:address@hidden:db8::200]:5080>
        Max-Forwards: 70
        User-Agent: Linphone/3.3.2 (eXosip2/3.3.0)
        Content-Length: 0





reply via email to

[Prev in Thread] Current Thread [Next in Thread]