[Home]

Summary:ASTERISK-10751: Asterisk MUST NOT update Route-Set during in-dialog messages
Reporter:klaus3000 (klaus3000)Labels:
Date Opened:2007-11-13 04:21:35.000-0600Date Closed:2011-06-07 14:08:28
Priority:MinorRegression?No
Status:Closed/CompleteComponents:Channels/chan_sip/General
Versions:Frequency of
Occurrence
Related
Issues:
Environment:Attachments:
Description:Hi!

The Route set MUST NOT be updated during reINVITEs.

Below is a trace from

Client <----> Proxy <---> Asterisk

Asterisk sends reINVITE. The 200 OK to the reINVITE does not have a Record-Route header. Asterisk then updates the Route-Set which is wrong!

****** ADDITIONAL INFORMATION ******

<--- SIP read from 88.198.163.205:5060 --->
INVITE sip:123210043156@deepsec.dyndns.org SIP/2.0
Record-Route: <sip:88.198.163.205;lr=on;ftag=d36c9a0a>
Via: SIP/2.0/UDP 88.198.163.205;branch=z9hG4bKa64d.c4d21df1.0
Via: SIP/2.0/UDP 10.10.0.51:4260;received=83.136.33.3;branch=z9hG4bK-d8754z-bf672a2725340f67-1---d8754z-;rport=4260
Max-Forwards: 69
Contact: <sip:klaus@83.136.33.3:4260;transport=udp>
To: "+43156"<sip:+43156@deepsec.dyndns.org>
From: <sip:klaus@deepsec.dyndns.org>;tag=d36c9a0a
Call-ID: YzNhYTM4NzRlYmI5YzkyYTAzMTBhMGUyODExYzg2ZDg.
CSeq: 1 INVITE
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY, MESSAGE, SUBSCRIBE, INFO
Content-Type: application/sdp
User-Agent: eyeBeam release 1013t stamp 43069
Content-Length: 335

v=0
o=- 8 2 IN IP4 83.136.33.3
s=CounterPath eyeBeam 1.5
c=IN IP4 83.136.33.3
t=0 0
m=audio 3234 RTP/AVP 97 98 8 18 101
a=fmtp:18 annexb=yes
a=fmtp:101 0-15
a=rtpmap:97 SPEEX/8000
a=rtpmap:98 iLBC/8000
a=rtpmap:18 G729/8000
a=rtpmap:101 telephone-event/8000
a=sendrecv
a=x-rtp-session-id:F79D426F934F45CFAB8D266B080D8D35

<------------->
--- (14 headers 14 lines) ---
Sending to 88.198.163.205 : 5060 (no NAT)
Using INVITE request as basis request - YzNhYTM4NzRlYmI5YzkyYTAzMTBhMGUyODExYzg2ZDg.
Found no matching peer or user for '88.198.163.205:5060'
Found RTP audio format 97
Found RTP audio format 98
Found RTP audio format 8
Found RTP audio format 18
Found RTP audio format 101
Peer audio RTP is at port 83.136.33.3:3234
Found description format SPEEX for ID 97
Found description format iLBC for ID 98
Found description format G729 for ID 18
Found description format telephone-event for ID 101
Capabilities: us - 0x8000e (gsm|ulaw|alaw|h263), peer - audio=0x708 (alaw|g729|speex|ilbc)/video=0x0 (nothing), combined - 0x8 (alaw)
Non-codec capabilities (dtmf): us - 0x1 (telephone-event), peer - 0x1 (telephone-event), combined - 0x1 (telephone-event)
Peer audio RTP is at port 83.136.33.3:3234
Looking for 123210043156 in default (domain deepsec.dyndns.org)
list_route: hop: <sip:88.198.163.205;lr=on;ftag=d36c9a0a>

<--- Transmitting (no NAT) to 88.198.163.205:5060 --->
SIP/2.0 100 Trying
Via: SIP/2.0/UDP 88.198.163.205;branch=z9hG4bKa64d.c4d21df1.0;received=88.198.163.205
Via: SIP/2.0/UDP 10.10.0.51:4260;received=83.136.33.3;branch=z9hG4bK-d8754z-bf672a2725340f67-1---d8754z-;rport=4260
From: <sip:klaus@deepsec.dyndns.org>;tag=d36c9a0a
To: "+43156"<sip:+43156@deepsec.dyndns.org>
Call-ID: YzNhYTM4NzRlYmI5YzkyYTAzMTBhMGUyODExYzg2ZDg.
CSeq: 1 INVITE
User-Agent: Asterisk PBX
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY
Supported: replaces
Contact: <sip:123210043156@88.198.163.206>
Content-Length: 0


<--- Transmitting (no NAT) to 88.198.163.205:5060 --->
SIP/2.0 180 Ringing
Via: SIP/2.0/UDP 88.198.163.205;branch=z9hG4bKa64d.c4d21df1.0;received=88.198.163.205
Via: SIP/2.0/UDP 10.10.0.51:4260;received=83.136.33.3;branch=z9hG4bK-d8754z-bf672a2725340f67-1---d8754z-;rport=4260
From: <sip:klaus@deepsec.dyndns.org>;tag=d36c9a0a
To: "+43156"<sip:+43156@deepsec.dyndns.org>;tag=as144a3795
Call-ID: YzNhYTM4NzRlYmI5YzkyYTAzMTBhMGUyODExYzg2ZDg.
CSeq: 1 INVITE
User-Agent: Asterisk PBX
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY
Supported: replaces
Contact: <sip:123210043156@88.198.163.206>
Content-Length: 0


<--- Reliably Transmitting (no NAT) to 88.198.163.205:5060 --->
SIP/2.0 200 OK
Via: SIP/2.0/UDP 88.198.163.205;branch=z9hG4bKa64d.c4d21df1.0;received=88.198.163.205
Via: SIP/2.0/UDP 10.10.0.51:4260;received=83.136.33.3;branch=z9hG4bK-d8754z-bf672a2725340f67-1---d8754z-;rport=4260
Record-Route: <sip:88.198.163.205;lr=on;ftag=d36c9a0a>
From: <sip:klaus@deepsec.dyndns.org>;tag=d36c9a0a
To: "+43156"<sip:+43156@deepsec.dyndns.org>;tag=as144a3795
Call-ID: YzNhYTM4NzRlYmI5YzkyYTAzMTBhMGUyODExYzg2ZDg.
CSeq: 1 INVITE
User-Agent: Asterisk PBX
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY
Supported: replaces
Contact: <sip:123210043156@88.198.163.206>
Content-Type: application/sdp
Content-Length: 242

v=0
o=root 2376 2376 IN IP4 88.198.163.206
s=session
c=IN IP4 88.198.163.206
t=0 0
m=audio 17446 RTP/AVP 8 101
a=rtpmap:8 PCMA/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-16
a=silenceSupp:off - - - -
a=ptime:20
a=sendrecv

<------------>
deepsec-gw*CLI>
<--- SIP read from 88.198.163.205:5060 --->
ACK sip:123210043156@88.198.163.206 SIP/2.0
Via: SIP/2.0/UDP 88.198.163.205;branch=z9hG4bKa64d.c4d21df1.2
Via: SIP/2.0/UDP 10.10.0.51:4260;received=83.136.33.3;branch=z9hG4bK-d8754z-732c30082816c65c-1---d8754z-;rport=4260
Max-Forwards: 69
Contact: <sip:klaus@83.136.33.3:4260;transport=udp>
To: "+43156"<sip:+43156@deepsec.dyndns.org>;tag=as144a3795
From: <sip:klaus@deepsec.dyndns.org>;tag=d36c9a0a
Call-ID: YzNhYTM4NzRlYmI5YzkyYTAzMTBhMGUyODExYzg2ZDg.
CSeq: 1 ACK
User-Agent: eyeBeam release 1013t stamp 43069
Content-Length: 0
P-hint: rr-enforced


###############################
Asterisk sends reINVITE with correct Route
###############################




   -- Native bridging SIP/deepsec.dyndns.org-081e6038 and SIP/iptel.org-081eed38
set_destination: Parsing <sip:88.198.163.205;lr=on;ftag=d36c9a0a> for address/port to send to
set_destination: set destination to 88.198.163.205, port 5060
Audio is at 88.198.163.206 port 17446
Adding codec 0x8 (alaw) to SDP
Adding non-codec 0x1 (telephone-event) to SDP
Reliably Transmitting (no NAT) to 88.198.163.205:5060:
INVITE sip:klaus@83.136.33.3:4260;transport=udp SIP/2.0
Via: SIP/2.0/UDP 88.198.163.206:5060;branch=z9hG4bK1b6d342b;rport
Route: <sip:88.198.163.205;lr=on;ftag=d36c9a0a>
From: "+43156"<sip:+43156@deepsec.dyndns.org>;tag=as144a3795
To: <sip:klaus@deepsec.dyndns.org>;tag=d36c9a0a
Contact: <sip:123210043156@88.198.163.206>
Call-ID: YzNhYTM4NzRlYmI5YzkyYTAzMTBhMGUyODExYzg2ZDg.
CSeq: 102 INVITE
User-Agent: Asterisk PBX
Max-Forwards: 70
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY
Supported: replaces
X-asterisk-Info: SIP re-invite (External RTP bridge)
Content-Type: application/sdp
Content-Length: 238

v=0
o=root 2376 2377 IN IP4 83.136.33.21
s=session
c=IN IP4 83.136.33.21
t=0 0
m=audio 19640 RTP/AVP 8 101
a=rtpmap:8 PCMA/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-16
a=silenceSupp:off - - - -
a=ptime:20
a=sendrecv





#####################################
Asterisk receives 200 OK from reINVITE
Note: there are no Record-Route Headers. This is valid.
Further RFC 3261 states that the ROUTE-SET MUST NOT BE CHANGED
with in-dialog requests
######################################



<--- SIP read from 88.198.163.205:5060 --->
SIP/2.0 200 OK
Via: SIP/2.0/UDP 88.198.163.206:5060;branch=z9hG4bK1b6d342b;rport=5060
Contact: <sip:klaus@83.136.33.3:4260;transport=udp>
To: <sip:klaus@deepsec.dyndns.org>;tag=d36c9a0a
From: "+43156"<sip:+43156@deepsec.dyndns.org>;tag=as144a3795
Call-ID: YzNhYTM4NzRlYmI5YzkyYTAzMTBhMGUyODExYzg2ZDg.
CSeq: 102 INVITE
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY, MESSAGE, SUBSCRIBE, INFO
Content-Type: application/sdp
User-Agent: eyeBeam release 1013t stamp 43069
Content-Length: 234

v=0
o=- 8 3 IN IP4 83.136.33.3
s=CounterPath eyeBeam 1.5
c=IN IP4 83.136.33.3
t=0 0
m=audio 3234 RTP/AVP 8 101
a=fmtp:101 0-15
a=rtpmap:101 telephone-event/8000
a=sendrecv
a=x-rtp-session-id:F79D426F934F45CFAB8D266B080D8D35




#############################
now Asterisk does update the route set which is wrong
Thus, the ACK is sent directly to the client instead of
traversing the proxy: --> BUG
#############################

<------------->
--- (11 headers 10 lines) ---
Found RTP audio format 8
Found RTP audio format 101
Peer audio RTP is at port 83.136.33.3:3234
Found description format telephone-event for ID 101
Capabilities: us - 0x8 (alaw), peer - audio=0x8 (alaw)/video=0x0 (nothing), combined - 0x8 (alaw)
Non-codec capabilities (dtmf): us - 0x1 (telephone-event), peer - 0x1 (telephone-event), combined - 0x1 (telephone-event)
Peer audio RTP is at port 83.136.33.3:3234
list_route: hop: <sip:klaus@83.136.33.3:4260;transport=udp>
set_destination: Parsing <sip:klaus@83.136.33.3:4260;transport=udp> for address/port to send to
set_destination: set destination to 83.136.33.3, port 4260
Transmitting (no NAT) to 83.136.33.3:4260:
ACK sip:klaus@83.136.33.3:4260;transport=udp SIP/2.0
Via: SIP/2.0/UDP 88.198.163.206:5060;branch=z9hG4bK2c4f61e0;rport
From: "+43156"<sip:+43156@deepsec.dyndns.org>;tag=as144a3795
To: <sip:klaus@deepsec.dyndns.org>;tag=d36c9a0a
Contact: <sip:123210043156@88.198.163.206>
Call-ID: YzNhYTM4NzRlYmI5YzkyYTAzMTBhMGUyODExYzg2ZDg.
CSeq: 102 ACK
User-Agent: Asterisk PBX
Max-Forwards: 70
Content-Length: 0


Comments:By: Olle Johansson (oej) 2007-11-15 04:50:13.000-0600

Yes, changing the route-set in mid-dialog is certainly not a feature.

By: Olle Johansson (oej) 2007-12-15 04:09:24.000-0600

Please try the patch in 11326. Thank you!

By: Jason Parker (jparker) 2008-01-15 17:50:14.000-0600

I think oej meant ASTERISK-11033.

Closing in favor of that issue.