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-0600 | Date Closed: | 2011-06-07 14:08:28 |
Priority: | Minor | Regression? | No |
Status: | Closed/Complete | Components: | 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. |