[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Linphone-developers] ACK construction not compliant to RFC 3261
From: |
Ramon Poca |
Subject: |
Re: [Linphone-developers] ACK construction not compliant to RFC 3261 |
Date: |
Tue, 5 Jun 2012 13:03:23 +0200 |
Beware: You are reading the rules for an ACK to a NON-200 response.
The paragraph preceeding the one you cite states clearly:
This section specifies the construction of ACK requests sent within
the client transaction. A UAC core that generates an ACK for 2xx
MUST instead follow the rules described in Section 13.
So you must follow the rules in Section 13 for the ACK. I had trouble
with it last week so had this bit fresh on my mind.
:)
On Tue, Jun 5, 2012 at 12:31 PM, Rick van Rein <address@hidden> wrote:
> 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
>
>
>
> _______________________________________________
> Linphone-developers mailing list
> address@hidden
> https://lists.nongnu.org/mailman/listinfo/linphone-developers
--
Ramon Poca
address@hidden
Numancia 73, 5º-A. 08029 Barcelona
Telèfon directe: +34 93 184 52 84
Centraleta: +34 93 184 52 80
Fax: +34 93 419 69 31
www.androme.es