[Top][All Lists]
[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
- [Linphone-developers] ACK construction not compliant to RFC 3261,
Rick van Rein <=