With the latest CVS build of OSER, when an INVITE is sent followed by a CANCEL, before OSER has finished processing the initial INVITE, the outbound call is not torn down, and SER routes the CANCEL message to itself.
Below is an ngrep trace of the exchange.
I have a development cluster of mediaproxy servers setup and one of them was taken offline but left in the loop which increased the time it took for a message to be processed which is how i came across this situation (it took some seconds before the INVITE was able to be transmitted to the nexthop_proxy)
--
# U 2005/10/04 01:44:43.134010 SIP_UAC:5070 -> OSER_PROXY:15061 INVITE sip:6046946333@OSER_PROXY:15061 SIP/2.0. Via: SIP/2.0/UDP 192.168.99.66:5070;branch=z9hG4bK-34d67b8f. From: tavis sip:200110005334@OSER_PROXY:15061;tag=6e3e1f53c3f352efo0. To: sip:6046946333@OSER_PROXY:15061. Call-ID: ec5b9223-f98ffe5f@192.168.99.66. CSeq: 101 INVITE. Max-Forwards: 70. Contact: tavis sip:200110005334@192.168.99.66:5070. Expires: 240. User-Agent: Sipura/SPA3000-3.1.5(GWb). Content-Length: 287. Allow: ACK, BYE, CANCEL, INFO, INVITE, NOTIFY, OPTIONS, REFER. Supported: x-sipura. Content-Type: application/sdp. . v=0. o=- 25915303 25915303 IN IP4 192.168.99.66. s=-. c=IN IP4 192.168.99.66. t=0 0. m=audio 16410 RTP/AVP 18 0 4 8 101. a=rtpmap:18 G729a/8000. a=rtpmap:0 PCMU/8000. a=rtpmap:4 G723/8000. a=rtpmap:8 PCMA/8000. a=rtpmap:101 telephone-event/8000. a=fmtp:101 0-15. a=ptime:20. a=sendrecv.
# U 2005/10/04 01:44:43.135736 OSER_PROXY:15061 -> SIP_UAC:5070 SIP/2.0 407 Proxy Authentication Required. Via: SIP/2.0/UDP 192.168.99.66:5070;branch=z9hG4bK-34d67b8f;rport=5070;received=SIP_UAC. From: tavis sip:200110005334@OSER_PROXY:15061;tag=6e3e1f53c3f352efo0. To: sip:6046946333@OSER_PROXY:15061;tag=688bd636d693eb2ab143ccbaf0db2c7a.8474. Call-ID: ec5b9223-f98ffe5f@192.168.99.66. CSeq: 101 INVITE. Proxy-Authenticate: Digest realm="hq.galnet.ca", nonce="4341dfb7e0cfaa398a6f425c02262325f943b20e", qop="auth". Content-Length: 0. .
# U 2005/10/04 01:44:43.147960 SIP_UAC:5070 -> OSER_PROXY:15061 ACK sip:6046946333@OSER_PROXY:15061 SIP/2.0. Via: SIP/2.0/UDP 192.168.99.66:5070;branch=z9hG4bK-34d67b8f. From: tavis sip:200110005334@OSER_PROXY:15061;tag=6e3e1f53c3f352efo0. To: sip:6046946333@OSER_PROXY:15061;tag=688bd636d693eb2ab143ccbaf0db2c7a.8474. Call-ID: ec5b9223-f98ffe5f@192.168.99.66. CSeq: 101 ACK. Max-Forwards: 70. Contact: tavis sip:200110005334@192.168.99.66:5070. User-Agent: Sipura/SPA3000-3.1.5(GWb). Content-Length: 0. .
# U 2005/10/04 01:44:43.154728 SIP_UAC:5070 -> OSER_PROXY:15061 INVITE sip:6046946333@OSER_PROXY:15061 SIP/2.0. Via: SIP/2.0/UDP 192.168.99.66:5070;branch=z9hG4bK-249e2787. From: tavis sip:200110005334@OSER_PROXY:15061;tag=6e3e1f53c3f352efo0. To: sip:6046946333@OSER_PROXY:15061. Call-ID: ec5b9223-f98ffe5f@192.168.99.66. CSeq: 102 INVITE. Max-Forwards: 70. Proxy-Authorization: Digest username="200110005334",realm="hq.galnet.ca",nonce="4341dfb7e0cfaa398a6f425c02262325f943b20e",uri="sip:6046946333@OSER_PROXY:15061",algorithm=MD5,response="6867ef34181ba7cedbcbf8dd869f53ab",qop=auth,nc=00000001,cnonce="750e43e5". Contact: tavis sip:200110005334@192.168.99.66:5070. Expires: 240. User-Agent: Sipura/SPA3000-3.1.5(GWb). Content-Length: 287. Allow: ACK, BYE, CANCEL, INFO, INVITE, NOTIFY, OPTIONS, REFER. Supported: x-sipura. Content-Type: application/sdp. . v=0. o=- 25915303 25915303 IN IP4 192.168.99.66. s=-. c=IN IP4 192.168.99.66. t=0 0. m=audio 16410 RTP/AVP 18 0 4 8 101. a=rtpmap:18 G729a/8000. a=rtpmap:0 PCMU/8000. a=rtpmap:4 G723/8000. a=rtpmap:8 PCMA/8000. a=rtpmap:101 telephone-event/8000. a=fmtp:101 0-15. a=ptime:20. a=sendrecv.
# U 2005/10/04 01:44:43.648366 SIP_UAC:5070 -> OSER_PROXY:15061 INVITE sip:6046946333@OSER_PROXY:15061 SIP/2.0. Via: SIP/2.0/UDP 192.168.99.66:5070;branch=z9hG4bK-249e2787. From: tavis sip:200110005334@OSER_PROXY:15061;tag=6e3e1f53c3f352efo0. To: sip:6046946333@OSER_PROXY:15061. Call-ID: ec5b9223-f98ffe5f@192.168.99.66. CSeq: 102 INVITE. Max-Forwards: 70. Proxy-Authorization: Digest username="200110005334",realm="hq.galnet.ca",nonce="4341dfb7e0cfaa398a6f425c02262325f943b20e",uri="sip:6046946333@OSER_PROXY:15061",algorithm=MD5,response="6867ef34181ba7cedbcbf8dd869f53ab",qop=auth,nc=00000001,cnonce="750e43e5". Contact: tavis sip:200110005334@192.168.99.66:5070. Expires: 240. User-Agent: Sipura/SPA3000-3.1.5(GWb). Content-Length: 287. Allow: ACK, BYE, CANCEL, INFO, INVITE, NOTIFY, OPTIONS, REFER. Supported: x-sipura. Content-Type: application/sdp. . v=0. o=- 25915303 25915303 IN IP4 192.168.99.66. s=-. c=IN IP4 192.168.99.66. t=0 0. m=audio 16410 RTP/AVP 18 0 4 8 101. a=rtpmap:18 G729a/8000. a=rtpmap:0 PCMU/8000. a=rtpmap:4 G723/8000. a=rtpmap:8 PCMA/8000. a=rtpmap:101 telephone-event/8000. a=fmtp:101 0-15. a=ptime:20. a=sendrecv.
# U 2005/10/04 01:44:44.155113 SIP_UAC:5070 -> OSER_PROXY:15061 CANCEL sip:6046946333@OSER_PROXY:15061 SIP/2.0. Via: SIP/2.0/UDP 192.168.99.66:5070;branch=z9hG4bK-249e2787. From: tavis sip:200110005334@OSER_PROXY:15061;tag=6e3e1f53c3f352efo0. To: sip:6046946333@OSER_PROXY:15061. Call-ID: ec5b9223-f98ffe5f@192.168.99.66. CSeq: 102 CANCEL. Max-Forwards: 70. Proxy-Authorization: Digest username="200110005334",realm="hq.galnet.ca",nonce="4341dfb7e0cfaa398a6f425c02262325f943b20e",uri="sip:6046946333@OSER_PROXY:15061",algorithm=MD5,response="512097281b4fba990adf2cc6c273f033",qop=auth,nc=00000002,cnonce="750e43e5". User-Agent: Sipura/SPA3000-3.1.5(GWb). Content-Length: 0. .
# U 2005/10/04 01:44:44.285994 OSER_PROXY:15061 -> SIP_UAC:5070 SIP/2.0 483 Too many hops. Via: SIP/2.0/UDP 192.168.99.66:5070;rport=5070;received=SIP_UAC;branch=z9hG4bK-249e2787. From: tavis sip:200110005334@OSER_PROXY:15061;tag=6e3e1f53c3f352efo0. To: sip:6046946333@OSER_PROXY:15061;tag=688bd636d693eb2ab143ccbaf0db2c7a.32f9. Call-ID: ec5b9223-f98ffe5f@192.168.99.66. CSeq: 102 CANCEL. Content-Length: 0. .
# U 2005/10/04 01:44:44.648305 SIP_UAC:5070 -> OSER_PROXY:15061 INVITE sip:6046946333@OSER_PROXY:15061 SIP/2.0. Via: SIP/2.0/UDP 192.168.99.66:5070;branch=z9hG4bK-249e2787. From: tavis sip:200110005334@OSER_PROXY:15061;tag=6e3e1f53c3f352efo0. To: sip:6046946333@OSER_PROXY:15061. Call-ID: ec5b9223-f98ffe5f@192.168.99.66. CSeq: 102 INVITE. Max-Forwards: 70. Proxy-Authorization: Digest username="200110005334",realm="hq.galnet.ca",nonce="4341dfb7e0cfaa398a6f425c02262325f943b20e",uri="sip:6046946333@OSER_PROXY:15061",algorithm=MD5,response="11a15f9ef4fdb1c9ab05566cad92d67e",qop=auth,nc=00000002,cnonce="750e43e5". Contact: tavis sip:200110005334@192.168.99.66:5070. Expires: 240. User-Agent: Sipura/SPA3000-3.1.5(GWb). Content-Length: 287. Allow: ACK, BYE, CANCEL, INFO, INVITE, NOTIFY, OPTIONS, REFER. Supported: x-sipura. Content-Type: application/sdp. . v=0. o=- 25915303 25915303 IN IP4 192.168.99.66. s=-. c=IN IP4 192.168.99.66. t=0 0. m=audio 16410 RTP/AVP 18 0 4 8 101. a=rtpmap:18 G729a/8000. a=rtpmap:0 PCMU/8000. a=rtpmap:4 G723/8000. a=rtpmap:8 PCMA/8000. a=rtpmap:101 telephone-event/8000. a=fmtp:101 0-15. a=ptime:20. a=sendrecv.
# U 2005/10/04 01:44:44.688471 OSER_PROXY:15061 -> SIP_UAC:5070 SIP/2.0 100 trying -- your call is important to us. Via: SIP/2.0/UDP 192.168.99.66:5070;branch=z9hG4bK-249e2787;rport=5070;received=SIP_UAC. From: tavis sip:200110005334@OSER_PROXY:15061;tag=6e3e1f53c3f352efo0. To: sip:6046946333@OSER_PROXY:15061. Call-ID: ec5b9223-f98ffe5f@192.168.99.66. CSeq: 102 INVITE. Content-Length: 0. .
# U 2005/10/04 01:44:44.689012 OSER_PROXY:15061 -> NEXTHOP_PROXY:5060 INVITE sip:16046946333@NEXTHOP_PROXY SIP/2.0. Record-Route: sip:OSER_PROXY:15061;ftag=6e3e1f53c3f352efo0;lr=on. Via: SIP/2.0/UDP OSER_PROXY:15061;branch=z9hG4bK11ea.6c311116.0. Via: SIP/2.0/UDP 192.168.99.66:5070;rport=5070;received=SIP_UAC;branch=z9hG4bK-249e2787. From: tavis sip:200110005334@OSER_PROXY:15061;tag=6e3e1f53c3f352efo0. To: sip:6046946333@OSER_PROXY:15061. Call-ID: ec5b9223-f98ffe5f@192.168.99.66. CSeq: 102 INVITE. Max-Forwards: 15. Contact: tavis sip:200110005334@SIP_UAC:5070. Expires: 240. User-Agent: Sipura/SPA3000-3.1.5(GWb). Content-Length: 288. Allow: ACK, BYE, CANCEL, INFO, INVITE, NOTIFY, OPTIONS, REFER. Supported: x-sipura. Content-Type: application/sdp. . v=0. o=- 25915303 25915303 IN IP4 192.168.99.66. s=-. c=IN IP4 OSER_PROXY. t=0 0. m=audio 35328 RTP/AVP 18 0 4 8 101. a=rtpmap:18 G729a/8000. a=rtpmap:0 PCMU/8000. a=rtpmap:4 G723/8000. a=rtpmap:8 PCMA/8000. a=rtpmap:101 telephone-event/8000. a=fmtp:101 0-15. a=ptime:20. a=sendrecv.
# U 2005/10/04 01:44:45.396833 OSER_PROXY:15061 -> NEXTHOP_PROXY:5060 INVITE sip:16046946333@NEXTHOP_PROXY SIP/2.0. Record-Route: sip:OSER_PROXY:15061;ftag=6e3e1f53c3f352efo0;lr=on. Via: SIP/2.0/UDP OSER_PROXY:15061;branch=z9hG4bK11ea.6c311116.0. Via: SIP/2.0/UDP 192.168.99.66:5070;rport=5070;received=SIP_UAC;branch=z9hG4bK-249e2787. From: tavis sip:200110005334@OSER_PROXY:15061;tag=6e3e1f53c3f352efo0. To: sip:6046946333@OSER_PROXY:15061. Call-ID: ec5b9223-f98ffe5f@192.168.99.66. CSeq: 102 INVITE. Max-Forwards: 15. Contact: tavis sip:200110005334@SIP_UAC:5070. Expires: 240. User-Agent: Sipura/SPA3000-3.1.5(GWb). Content-Length: 288. Allow: ACK, BYE, CANCEL, INFO, INVITE, NOTIFY, OPTIONS, REFER. Supported: x-sipura. Content-Type: application/sdp. . v=0. o=- 25915303 25915303 IN IP4 192.168.99.66. s=-. c=IN IP4 OSER_PROXY. t=0 0. m=audio 35328 RTP/AVP 18 0 4 8 101. a=rtpmap:18 G729a/8000. a=rtpmap:0 PCMU/8000. a=rtpmap:4 G723/8000. a=rtpmap:8 PCMA/8000. a=rtpmap:101 telephone-event/8000. a=fmtp:101 0-15. a=ptime:20. a=sendrecv.
# U 2005/10/04 01:44:46.090526 NEXTHOP_PROXY:5060 -> OSER_PROXY:15061 SIP/2.0 183 Inband Information. Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, REFER, NOTIFY, REGISTER. Via: SIP/2.0/UDP OSER_PROXY:15061;branch=z9hG4bK11ea.6c311116.0. Via: SIP/2.0/UDP 192.168.99.66:5070;rport=5070;received=SIP_UAC;branch=z9hG4bK-249e2787. Record-Route: sip:OSER_PROXY:15061;ftag=6e3e1f53c3f352efo0;lr=on. To: sip:6046946333@OSER_PROXY:15061;tag=40032033. From: tavis sip:200110005334@OSER_PROXY:15061;tag=6e3e1f53c3f352efo0. Call-ID: ec5b9223-f98ffe5f@192.168.99.66. X-SHOUT-Channel: INBOUND 1:15:21:1. CSeq: 102 INVITE. Contact: sip:anonymous@NEXTHOP_PROXY. User-Agent: SHOUT 3.3.1p3v71. Content-Type: application/sdp. Content-Length: 174. . v=0. o=- 0 0 IN IP4 NEXTHOP_PROXY. s=SIP call via SHOUT. c=IN IP4 NEXTHOP_PROXY. t=0 0. m=audio 19004 RTP/AVP 18 101. a=rtpmap:18 G729/8000. a=rtpmap:101 telephone-event/8000.
# U 2005/10/04 01:44:46.104387 OSER_PROXY:15061 -> SIP_UAC:5070 SIP/2.0 183 Inband Information. Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, REFER, NOTIFY, REGISTER. Via: SIP/2.0/UDP 192.168.99.66:5070;rport=5070;received=SIP_UAC;branch=z9hG4bK-249e2787. Record-Route: sip:OSER_PROXY:15061;ftag=6e3e1f53c3f352efo0;lr=on. To: sip:6046946333@OSER_PROXY:15061;tag=40032033. From: tavis sip:200110005334@OSER_PROXY:15061;tag=6e3e1f53c3f352efo0. Call-ID: ec5b9223-f98ffe5f@192.168.99.66. X-SHOUT-Channel: INBOUND 1:15:21:1. CSeq: 102 INVITE. Contact: sip:anonymous@NEXTHOP_PROXY. User-Agent: SHOUT 3.3.1p3v71. Content-Type: application/sdp. Content-Length: 176. . v=0. o=- 0 0 IN IP4 NEXTHOP_PROXY. s=SIP call via SHOUT. c=IN IP4 OSER_PROXY. t=0 0. m=audio 35328 RTP/AVP 18 101. a=rtpmap:18 G729/8000. a=rtpmap:101 telephone-event/8000.
# U 2005/10/04 01:44:46.190376 OSER_PROXY:15061 -> SIP_UAC:5070 SIP/2.0 183 Inband Information. Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, REFER, NOTIFY, REGISTER. Via: SIP/2.0/UDP 192.168.99.66:5070;rport=5070;received=SIP_UAC;branch=z9hG4bK-249e2787. Record-Route: sip:OSER_PROXY:15061;ftag=6e3e1f53c3f352efo0;lr=on. To: sip:6046946333@OSER_PROXY:15061;tag=40032033. From: tavis sip:200110005334@OSER_PROXY:15061;tag=6e3e1f53c3f352efo0. Call-ID: ec5b9223-f98ffe5f@192.168.99.66. X-SHOUT-Channel: INBOUND 1:15:21:1. CSeq: 102 INVITE. Contact: sip:anonymous@NEXTHOP_PROXY. User-Agent: SHOUT 3.3.1p3v71. Content-Type: application/sdp. Content-Length: 176. . v=0. o=- 0 0 IN IP4 NEXTHOP_PROXY. s=SIP call via SHOUT. c=IN IP4 OSER_PROXY. t=0 0. m=audio 35328 RTP/AVP 18 101. a=rtpmap:18 G729/8000. a=rtpmap:101 telephone-event/8000.
## U 2005/10/04 01:44:46.702880 OSER_PROXY:15061 -> SIP_UAC:5070 SIP/2.0 183 Inband Information. Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, REFER, NOTIFY, REGISTER. Via: SIP/2.0/UDP 192.168.99.66:5070;rport=5070;received=SIP_UAC;branch=z9hG4bK-249e2787. Record-Route: sip:OSER_PROXY:15061;ftag=6e3e1f53c3f352efo0;lr=on. To: sip:6046946333@OSER_PROXY:15061;tag=40032033. From: tavis sip:200110005334@OSER_PROXY:15061;tag=6e3e1f53c3f352efo0. Call-ID: ec5b9223-f98ffe5f@192.168.99.66. X-SHOUT-Channel: INBOUND 1:15:21:1. CSeq: 102 INVITE. Contact: sip:anonymous@NEXTHOP_PROXY. User-Agent: SHOUT 3.3.1p3v71. Content-Type: application/sdp. Content-Length: 176. . v=0. o=- 0 0 IN IP4 NEXTHOP_PROXY. s=SIP call via SHOUT. c=IN IP4 OSER_PROXY. t=0 0. m=audio 35328 RTP/AVP 18 101. a=rtpmap:18 G729/8000. a=rtpmap:101 telephone-event/8000.
Tavis P wrote:
With the latest CVS build of OSER, when an INVITE is sent followed by a CANCEL, before OSER has finished processing the initial INVITE, the outbound call is not torn down, and SER routes the CANCEL message to
AFAIK this may happen with all versions of ser/openser.
btw: Your SIPURA is broken: 1. It sends a CANCEL although it has not received a response yet. According tot the standard the UAC must withheld the CANCEL until a provisional response is received.
2. It sends an INVITE right after the CANCEL. Weird.
regards klaus
itself.
Below is an ngrep trace of the exchange.
I have a development cluster of mediaproxy servers setup and one of them was taken offline but left in the loop which increased the time it took for a message to be processed which is how i came across this situation (it took some seconds before the INVITE was able to be transmitted to the nexthop_proxy)
--
# U 2005/10/04 01:44:43.134010 SIP_UAC:5070 -> OSER_PROXY:15061 INVITE sip:6046946333@OSER_PROXY:15061 SIP/2.0. Via: SIP/2.0/UDP 192.168.99.66:5070;branch=z9hG4bK-34d67b8f. From: tavis sip:200110005334@OSER_PROXY:15061;tag=6e3e1f53c3f352efo0. To: sip:6046946333@OSER_PROXY:15061. Call-ID: ec5b9223-f98ffe5f@192.168.99.66. CSeq: 101 INVITE. Max-Forwards: 70. Contact: tavis sip:200110005334@192.168.99.66:5070. Expires: 240. User-Agent: Sipura/SPA3000-3.1.5(GWb). Content-Length: 287. Allow: ACK, BYE, CANCEL, INFO, INVITE, NOTIFY, OPTIONS, REFER. Supported: x-sipura. Content-Type: application/sdp. . v=0. o=- 25915303 25915303 IN IP4 192.168.99.66. s=-. c=IN IP4 192.168.99.66. t=0 0. m=audio 16410 RTP/AVP 18 0 4 8 101. a=rtpmap:18 G729a/8000. a=rtpmap:0 PCMU/8000. a=rtpmap:4 G723/8000. a=rtpmap:8 PCMA/8000. a=rtpmap:101 telephone-event/8000. a=fmtp:101 0-15. a=ptime:20. a=sendrecv.
# U 2005/10/04 01:44:43.135736 OSER_PROXY:15061 -> SIP_UAC:5070 SIP/2.0 407 Proxy Authentication Required. Via: SIP/2.0/UDP 192.168.99.66:5070;branch=z9hG4bK-34d67b8f;rport=5070;received=SIP_UAC. From: tavis sip:200110005334@OSER_PROXY:15061;tag=6e3e1f53c3f352efo0. To: sip:6046946333@OSER_PROXY:15061;tag=688bd636d693eb2ab143ccbaf0db2c7a.8474. Call-ID: ec5b9223-f98ffe5f@192.168.99.66. CSeq: 101 INVITE. Proxy-Authenticate: Digest realm="hq.galnet.ca", nonce="4341dfb7e0cfaa398a6f425c02262325f943b20e", qop="auth". Content-Length: 0. .
# U 2005/10/04 01:44:43.147960 SIP_UAC:5070 -> OSER_PROXY:15061 ACK sip:6046946333@OSER_PROXY:15061 SIP/2.0. Via: SIP/2.0/UDP 192.168.99.66:5070;branch=z9hG4bK-34d67b8f. From: tavis sip:200110005334@OSER_PROXY:15061;tag=6e3e1f53c3f352efo0. To: sip:6046946333@OSER_PROXY:15061;tag=688bd636d693eb2ab143ccbaf0db2c7a.8474. Call-ID: ec5b9223-f98ffe5f@192.168.99.66. CSeq: 101 ACK. Max-Forwards: 70. Contact: tavis sip:200110005334@192.168.99.66:5070. User-Agent: Sipura/SPA3000-3.1.5(GWb). Content-Length: 0. .
# U 2005/10/04 01:44:43.154728 SIP_UAC:5070 -> OSER_PROXY:15061 INVITE sip:6046946333@OSER_PROXY:15061 SIP/2.0. Via: SIP/2.0/UDP 192.168.99.66:5070;branch=z9hG4bK-249e2787. From: tavis sip:200110005334@OSER_PROXY:15061;tag=6e3e1f53c3f352efo0. To: sip:6046946333@OSER_PROXY:15061. Call-ID: ec5b9223-f98ffe5f@192.168.99.66. CSeq: 102 INVITE. Max-Forwards: 70. Proxy-Authorization: Digest username="200110005334",realm="hq.galnet.ca",nonce="4341dfb7e0cfaa398a6f425c02262325f943b20e",uri="sip:6046946333@OSER_PROXY:15061",algorithm=MD5,response="6867ef34181ba7cedbcbf8dd869f53ab",qop=auth,nc=00000001,cnonce="750e43e5". Contact: tavis sip:200110005334@192.168.99.66:5070. Expires: 240. User-Agent: Sipura/SPA3000-3.1.5(GWb). Content-Length: 287. Allow: ACK, BYE, CANCEL, INFO, INVITE, NOTIFY, OPTIONS, REFER. Supported: x-sipura. Content-Type: application/sdp. . v=0. o=- 25915303 25915303 IN IP4 192.168.99.66. s=-. c=IN IP4 192.168.99.66. t=0 0. m=audio 16410 RTP/AVP 18 0 4 8 101. a=rtpmap:18 G729a/8000. a=rtpmap:0 PCMU/8000. a=rtpmap:4 G723/8000. a=rtpmap:8 PCMA/8000. a=rtpmap:101 telephone-event/8000. a=fmtp:101 0-15. a=ptime:20. a=sendrecv.
# U 2005/10/04 01:44:43.648366 SIP_UAC:5070 -> OSER_PROXY:15061 INVITE sip:6046946333@OSER_PROXY:15061 SIP/2.0. Via: SIP/2.0/UDP 192.168.99.66:5070;branch=z9hG4bK-249e2787. From: tavis sip:200110005334@OSER_PROXY:15061;tag=6e3e1f53c3f352efo0. To: sip:6046946333@OSER_PROXY:15061. Call-ID: ec5b9223-f98ffe5f@192.168.99.66. CSeq: 102 INVITE. Max-Forwards: 70. Proxy-Authorization: Digest username="200110005334",realm="hq.galnet.ca",nonce="4341dfb7e0cfaa398a6f425c02262325f943b20e",uri="sip:6046946333@OSER_PROXY:15061",algorithm=MD5,response="6867ef34181ba7cedbcbf8dd869f53ab",qop=auth,nc=00000001,cnonce="750e43e5". Contact: tavis sip:200110005334@192.168.99.66:5070. Expires: 240. User-Agent: Sipura/SPA3000-3.1.5(GWb). Content-Length: 287. Allow: ACK, BYE, CANCEL, INFO, INVITE, NOTIFY, OPTIONS, REFER. Supported: x-sipura. Content-Type: application/sdp. . v=0. o=- 25915303 25915303 IN IP4 192.168.99.66. s=-. c=IN IP4 192.168.99.66. t=0 0. m=audio 16410 RTP/AVP 18 0 4 8 101. a=rtpmap:18 G729a/8000. a=rtpmap:0 PCMU/8000. a=rtpmap:4 G723/8000. a=rtpmap:8 PCMA/8000. a=rtpmap:101 telephone-event/8000. a=fmtp:101 0-15. a=ptime:20. a=sendrecv.
# U 2005/10/04 01:44:44.155113 SIP_UAC:5070 -> OSER_PROXY:15061 CANCEL sip:6046946333@OSER_PROXY:15061 SIP/2.0. Via: SIP/2.0/UDP 192.168.99.66:5070;branch=z9hG4bK-249e2787. From: tavis sip:200110005334@OSER_PROXY:15061;tag=6e3e1f53c3f352efo0. To: sip:6046946333@OSER_PROXY:15061. Call-ID: ec5b9223-f98ffe5f@192.168.99.66. CSeq: 102 CANCEL. Max-Forwards: 70. Proxy-Authorization: Digest username="200110005334",realm="hq.galnet.ca",nonce="4341dfb7e0cfaa398a6f425c02262325f943b20e",uri="sip:6046946333@OSER_PROXY:15061",algorithm=MD5,response="512097281b4fba990adf2cc6c273f033",qop=auth,nc=00000002,cnonce="750e43e5". User-Agent: Sipura/SPA3000-3.1.5(GWb). Content-Length: 0. .
# U 2005/10/04 01:44:44.285994 OSER_PROXY:15061 -> SIP_UAC:5070 SIP/2.0 483 Too many hops. Via: SIP/2.0/UDP 192.168.99.66:5070;rport=5070;received=SIP_UAC;branch=z9hG4bK-249e2787. From: tavis sip:200110005334@OSER_PROXY:15061;tag=6e3e1f53c3f352efo0. To: sip:6046946333@OSER_PROXY:15061;tag=688bd636d693eb2ab143ccbaf0db2c7a.32f9. Call-ID: ec5b9223-f98ffe5f@192.168.99.66. CSeq: 102 CANCEL. Content-Length: 0. .
# U 2005/10/04 01:44:44.648305 SIP_UAC:5070 -> OSER_PROXY:15061 INVITE sip:6046946333@OSER_PROXY:15061 SIP/2.0. Via: SIP/2.0/UDP 192.168.99.66:5070;branch=z9hG4bK-249e2787. From: tavis sip:200110005334@OSER_PROXY:15061;tag=6e3e1f53c3f352efo0. To: sip:6046946333@OSER_PROXY:15061. Call-ID: ec5b9223-f98ffe5f@192.168.99.66. CSeq: 102 INVITE. Max-Forwards: 70. Proxy-Authorization: Digest username="200110005334",realm="hq.galnet.ca",nonce="4341dfb7e0cfaa398a6f425c02262325f943b20e",uri="sip:6046946333@OSER_PROXY:15061",algorithm=MD5,response="11a15f9ef4fdb1c9ab05566cad92d67e",qop=auth,nc=00000002,cnonce="750e43e5". Contact: tavis sip:200110005334@192.168.99.66:5070. Expires: 240. User-Agent: Sipura/SPA3000-3.1.5(GWb). Content-Length: 287. Allow: ACK, BYE, CANCEL, INFO, INVITE, NOTIFY, OPTIONS, REFER. Supported: x-sipura. Content-Type: application/sdp. . v=0. o=- 25915303 25915303 IN IP4 192.168.99.66. s=-. c=IN IP4 192.168.99.66. t=0 0. m=audio 16410 RTP/AVP 18 0 4 8 101. a=rtpmap:18 G729a/8000. a=rtpmap:0 PCMU/8000. a=rtpmap:4 G723/8000. a=rtpmap:8 PCMA/8000. a=rtpmap:101 telephone-event/8000. a=fmtp:101 0-15. a=ptime:20. a=sendrecv.
# U 2005/10/04 01:44:44.688471 OSER_PROXY:15061 -> SIP_UAC:5070 SIP/2.0 100 trying -- your call is important to us. Via: SIP/2.0/UDP 192.168.99.66:5070;branch=z9hG4bK-249e2787;rport=5070;received=SIP_UAC. From: tavis sip:200110005334@OSER_PROXY:15061;tag=6e3e1f53c3f352efo0. To: sip:6046946333@OSER_PROXY:15061. Call-ID: ec5b9223-f98ffe5f@192.168.99.66. CSeq: 102 INVITE. Content-Length: 0. .
# U 2005/10/04 01:44:44.689012 OSER_PROXY:15061 -> NEXTHOP_PROXY:5060 INVITE sip:16046946333@NEXTHOP_PROXY SIP/2.0. Record-Route: sip:OSER_PROXY:15061;ftag=6e3e1f53c3f352efo0;lr=on. Via: SIP/2.0/UDP OSER_PROXY:15061;branch=z9hG4bK11ea.6c311116.0. Via: SIP/2.0/UDP 192.168.99.66:5070;rport=5070;received=SIP_UAC;branch=z9hG4bK-249e2787. From: tavis sip:200110005334@OSER_PROXY:15061;tag=6e3e1f53c3f352efo0. To: sip:6046946333@OSER_PROXY:15061. Call-ID: ec5b9223-f98ffe5f@192.168.99.66. CSeq: 102 INVITE. Max-Forwards: 15. Contact: tavis sip:200110005334@SIP_UAC:5070. Expires: 240. User-Agent: Sipura/SPA3000-3.1.5(GWb). Content-Length: 288. Allow: ACK, BYE, CANCEL, INFO, INVITE, NOTIFY, OPTIONS, REFER. Supported: x-sipura. Content-Type: application/sdp. . v=0. o=- 25915303 25915303 IN IP4 192.168.99.66. s=-. c=IN IP4 OSER_PROXY. t=0 0. m=audio 35328 RTP/AVP 18 0 4 8 101. a=rtpmap:18 G729a/8000. a=rtpmap:0 PCMU/8000. a=rtpmap:4 G723/8000. a=rtpmap:8 PCMA/8000. a=rtpmap:101 telephone-event/8000. a=fmtp:101 0-15. a=ptime:20. a=sendrecv.
# U 2005/10/04 01:44:45.396833 OSER_PROXY:15061 -> NEXTHOP_PROXY:5060 INVITE sip:16046946333@NEXTHOP_PROXY SIP/2.0. Record-Route: sip:OSER_PROXY:15061;ftag=6e3e1f53c3f352efo0;lr=on. Via: SIP/2.0/UDP OSER_PROXY:15061;branch=z9hG4bK11ea.6c311116.0. Via: SIP/2.0/UDP 192.168.99.66:5070;rport=5070;received=SIP_UAC;branch=z9hG4bK-249e2787. From: tavis sip:200110005334@OSER_PROXY:15061;tag=6e3e1f53c3f352efo0. To: sip:6046946333@OSER_PROXY:15061. Call-ID: ec5b9223-f98ffe5f@192.168.99.66. CSeq: 102 INVITE. Max-Forwards: 15. Contact: tavis sip:200110005334@SIP_UAC:5070. Expires: 240. User-Agent: Sipura/SPA3000-3.1.5(GWb). Content-Length: 288. Allow: ACK, BYE, CANCEL, INFO, INVITE, NOTIFY, OPTIONS, REFER. Supported: x-sipura. Content-Type: application/sdp. . v=0. o=- 25915303 25915303 IN IP4 192.168.99.66. s=-. c=IN IP4 OSER_PROXY. t=0 0. m=audio 35328 RTP/AVP 18 0 4 8 101. a=rtpmap:18 G729a/8000. a=rtpmap:0 PCMU/8000. a=rtpmap:4 G723/8000. a=rtpmap:8 PCMA/8000. a=rtpmap:101 telephone-event/8000. a=fmtp:101 0-15. a=ptime:20. a=sendrecv.
# U 2005/10/04 01:44:46.090526 NEXTHOP_PROXY:5060 -> OSER_PROXY:15061 SIP/2.0 183 Inband Information. Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, REFER, NOTIFY, REGISTER. Via: SIP/2.0/UDP OSER_PROXY:15061;branch=z9hG4bK11ea.6c311116.0. Via: SIP/2.0/UDP 192.168.99.66:5070;rport=5070;received=SIP_UAC;branch=z9hG4bK-249e2787. Record-Route: sip:OSER_PROXY:15061;ftag=6e3e1f53c3f352efo0;lr=on. To: sip:6046946333@OSER_PROXY:15061;tag=40032033. From: tavis sip:200110005334@OSER_PROXY:15061;tag=6e3e1f53c3f352efo0. Call-ID: ec5b9223-f98ffe5f@192.168.99.66. X-SHOUT-Channel: INBOUND 1:15:21:1. CSeq: 102 INVITE. Contact: sip:anonymous@NEXTHOP_PROXY. User-Agent: SHOUT 3.3.1p3v71. Content-Type: application/sdp. Content-Length: 174. . v=0. o=- 0 0 IN IP4 NEXTHOP_PROXY. s=SIP call via SHOUT. c=IN IP4 NEXTHOP_PROXY. t=0 0. m=audio 19004 RTP/AVP 18 101. a=rtpmap:18 G729/8000. a=rtpmap:101 telephone-event/8000.
# U 2005/10/04 01:44:46.104387 OSER_PROXY:15061 -> SIP_UAC:5070 SIP/2.0 183 Inband Information. Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, REFER, NOTIFY, REGISTER. Via: SIP/2.0/UDP 192.168.99.66:5070;rport=5070;received=SIP_UAC;branch=z9hG4bK-249e2787. Record-Route: sip:OSER_PROXY:15061;ftag=6e3e1f53c3f352efo0;lr=on. To: sip:6046946333@OSER_PROXY:15061;tag=40032033. From: tavis sip:200110005334@OSER_PROXY:15061;tag=6e3e1f53c3f352efo0. Call-ID: ec5b9223-f98ffe5f@192.168.99.66. X-SHOUT-Channel: INBOUND 1:15:21:1. CSeq: 102 INVITE. Contact: sip:anonymous@NEXTHOP_PROXY. User-Agent: SHOUT 3.3.1p3v71. Content-Type: application/sdp. Content-Length: 176. . v=0. o=- 0 0 IN IP4 NEXTHOP_PROXY. s=SIP call via SHOUT. c=IN IP4 OSER_PROXY. t=0 0. m=audio 35328 RTP/AVP 18 101. a=rtpmap:18 G729/8000. a=rtpmap:101 telephone-event/8000.
# U 2005/10/04 01:44:46.190376 OSER_PROXY:15061 -> SIP_UAC:5070 SIP/2.0 183 Inband Information. Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, REFER, NOTIFY, REGISTER. Via: SIP/2.0/UDP 192.168.99.66:5070;rport=5070;received=SIP_UAC;branch=z9hG4bK-249e2787. Record-Route: sip:OSER_PROXY:15061;ftag=6e3e1f53c3f352efo0;lr=on. To: sip:6046946333@OSER_PROXY:15061;tag=40032033. From: tavis sip:200110005334@OSER_PROXY:15061;tag=6e3e1f53c3f352efo0. Call-ID: ec5b9223-f98ffe5f@192.168.99.66. X-SHOUT-Channel: INBOUND 1:15:21:1. CSeq: 102 INVITE. Contact: sip:anonymous@NEXTHOP_PROXY. User-Agent: SHOUT 3.3.1p3v71. Content-Type: application/sdp. Content-Length: 176. . v=0. o=- 0 0 IN IP4 NEXTHOP_PROXY. s=SIP call via SHOUT. c=IN IP4 OSER_PROXY. t=0 0. m=audio 35328 RTP/AVP 18 101. a=rtpmap:18 G729/8000. a=rtpmap:101 telephone-event/8000.
## U 2005/10/04 01:44:46.702880 OSER_PROXY:15061 -> SIP_UAC:5070 SIP/2.0 183 Inband Information. Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, REFER, NOTIFY, REGISTER. Via: SIP/2.0/UDP 192.168.99.66:5070;rport=5070;received=SIP_UAC;branch=z9hG4bK-249e2787. Record-Route: sip:OSER_PROXY:15061;ftag=6e3e1f53c3f352efo0;lr=on. To: sip:6046946333@OSER_PROXY:15061;tag=40032033. From: tavis sip:200110005334@OSER_PROXY:15061;tag=6e3e1f53c3f352efo0. Call-ID: ec5b9223-f98ffe5f@192.168.99.66. X-SHOUT-Channel: INBOUND 1:15:21:1. CSeq: 102 INVITE. Contact: sip:anonymous@NEXTHOP_PROXY. User-Agent: SHOUT 3.3.1p3v71. Content-Type: application/sdp. Content-Length: 176. . v=0. o=- 0 0 IN IP4 NEXTHOP_PROXY. s=SIP call via SHOUT. c=IN IP4 OSER_PROXY. t=0 0. m=audio 35328 RTP/AVP 18 101. a=rtpmap:18 G729/8000. a=rtpmap:101 telephone-event/8000.
Users mailing list Users@openser.org http://openser.org/cgi-bin/mailman/listinfo/users
I really wish all UACs would conform to that section of RFC3261 but i have yet to see a single one that does =(
Actually i've NEVER seen a device that is fully conformant to the spec, sad how that is (although i'm sure there are a few)
Klaus Darilion wrote:
Tavis P wrote:
With the latest CVS build of OSER, when an INVITE is sent followed by a CANCEL, before OSER has finished processing the initial INVITE, the outbound call is not torn down, and SER routes the CANCEL message to
AFAIK this may happen with all versions of ser/openser.
btw: Your SIPURA is broken:
- It sends a CANCEL although it has not received a response yet.
According tot the standard the UAC must withheld the CANCEL until a provisional response is received.
- It sends an INVITE right after the CANCEL. Weird.
regards klaus
itself. Below is an ngrep trace of the exchange.
I have a development cluster of mediaproxy servers setup and one of them was taken offline but left in the loop which increased the time it took for a message to be processed which is how i came across this situation (it took some seconds before the INVITE was able to be transmitted to the nexthop_proxy)
--
# U 2005/10/04 01:44:43.134010 SIP_UAC:5070 -> OSER_PROXY:15061 INVITE sip:6046946333@OSER_PROXY:15061 SIP/2.0. Via: SIP/2.0/UDP 192.168.99.66:5070;branch=z9hG4bK-34d67b8f. From: tavis sip:200110005334@OSER_PROXY:15061;tag=6e3e1f53c3f352efo0. To: sip:6046946333@OSER_PROXY:15061. Call-ID: ec5b9223-f98ffe5f@192.168.99.66. CSeq: 101 INVITE. Max-Forwards: 70. Contact: tavis sip:200110005334@192.168.99.66:5070. Expires: 240. User-Agent: Sipura/SPA3000-3.1.5(GWb). Content-Length: 287. Allow: ACK, BYE, CANCEL, INFO, INVITE, NOTIFY, OPTIONS, REFER. Supported: x-sipura. Content-Type: application/sdp. . v=0. o=- 25915303 25915303 IN IP4 192.168.99.66. s=-. c=IN IP4 192.168.99.66. t=0 0. m=audio 16410 RTP/AVP 18 0 4 8 101. a=rtpmap:18 G729a/8000. a=rtpmap:0 PCMU/8000. a=rtpmap:4 G723/8000. a=rtpmap:8 PCMA/8000. a=rtpmap:101 telephone-event/8000. a=fmtp:101 0-15. a=ptime:20. a=sendrecv.
# U 2005/10/04 01:44:43.135736 OSER_PROXY:15061 -> SIP_UAC:5070 SIP/2.0 407 Proxy Authentication Required. Via: SIP/2.0/UDP 192.168.99.66:5070;branch=z9hG4bK-34d67b8f;rport=5070;received=SIP_UAC. From: tavis sip:200110005334@OSER_PROXY:15061;tag=6e3e1f53c3f352efo0. To: sip:6046946333@OSER_PROXY:15061;tag=688bd636d693eb2ab143ccbaf0db2c7a.8474.
Call-ID: ec5b9223-f98ffe5f@192.168.99.66. CSeq: 101 INVITE. Proxy-Authenticate: Digest realm="hq.galnet.ca", nonce="4341dfb7e0cfaa398a6f425c02262325f943b20e", qop="auth". Content-Length: 0. .
# U 2005/10/04 01:44:43.147960 SIP_UAC:5070 -> OSER_PROXY:15061 ACK sip:6046946333@OSER_PROXY:15061 SIP/2.0. Via: SIP/2.0/UDP 192.168.99.66:5070;branch=z9hG4bK-34d67b8f. From: tavis sip:200110005334@OSER_PROXY:15061;tag=6e3e1f53c3f352efo0. To: sip:6046946333@OSER_PROXY:15061;tag=688bd636d693eb2ab143ccbaf0db2c7a.8474.
Call-ID: ec5b9223-f98ffe5f@192.168.99.66. CSeq: 101 ACK. Max-Forwards: 70. Contact: tavis sip:200110005334@192.168.99.66:5070. User-Agent: Sipura/SPA3000-3.1.5(GWb). Content-Length: 0. .
# U 2005/10/04 01:44:43.154728 SIP_UAC:5070 -> OSER_PROXY:15061 INVITE sip:6046946333@OSER_PROXY:15061 SIP/2.0. Via: SIP/2.0/UDP 192.168.99.66:5070;branch=z9hG4bK-249e2787. From: tavis sip:200110005334@OSER_PROXY:15061;tag=6e3e1f53c3f352efo0. To: sip:6046946333@OSER_PROXY:15061. Call-ID: ec5b9223-f98ffe5f@192.168.99.66. CSeq: 102 INVITE. Max-Forwards: 70. Proxy-Authorization: Digest username="200110005334",realm="hq.galnet.ca",nonce="4341dfb7e0cfaa398a6f425c02262325f943b20e",uri="sip:6046946333@OSER_PROXY:15061",algorithm=MD5,response="6867ef34181ba7cedbcbf8dd869f53ab",qop=auth,nc=00000001,cnonce="750e43e5".
Contact: tavis sip:200110005334@192.168.99.66:5070. Expires: 240. User-Agent: Sipura/SPA3000-3.1.5(GWb). Content-Length: 287. Allow: ACK, BYE, CANCEL, INFO, INVITE, NOTIFY, OPTIONS, REFER. Supported: x-sipura. Content-Type: application/sdp. . v=0. o=- 25915303 25915303 IN IP4 192.168.99.66. s=-. c=IN IP4 192.168.99.66. t=0 0. m=audio 16410 RTP/AVP 18 0 4 8 101. a=rtpmap:18 G729a/8000. a=rtpmap:0 PCMU/8000. a=rtpmap:4 G723/8000. a=rtpmap:8 PCMA/8000. a=rtpmap:101 telephone-event/8000. a=fmtp:101 0-15. a=ptime:20. a=sendrecv.
# U 2005/10/04 01:44:43.648366 SIP_UAC:5070 -> OSER_PROXY:15061 INVITE sip:6046946333@OSER_PROXY:15061 SIP/2.0. Via: SIP/2.0/UDP 192.168.99.66:5070;branch=z9hG4bK-249e2787. From: tavis sip:200110005334@OSER_PROXY:15061;tag=6e3e1f53c3f352efo0. To: sip:6046946333@OSER_PROXY:15061. Call-ID: ec5b9223-f98ffe5f@192.168.99.66. CSeq: 102 INVITE. Max-Forwards: 70. Proxy-Authorization: Digest username="200110005334",realm="hq.galnet.ca",nonce="4341dfb7e0cfaa398a6f425c02262325f943b20e",uri="sip:6046946333@OSER_PROXY:15061",algorithm=MD5,response="6867ef34181ba7cedbcbf8dd869f53ab",qop=auth,nc=00000001,cnonce="750e43e5".
Contact: tavis sip:200110005334@192.168.99.66:5070. Expires: 240. User-Agent: Sipura/SPA3000-3.1.5(GWb). Content-Length: 287. Allow: ACK, BYE, CANCEL, INFO, INVITE, NOTIFY, OPTIONS, REFER. Supported: x-sipura. Content-Type: application/sdp. . v=0. o=- 25915303 25915303 IN IP4 192.168.99.66. s=-. c=IN IP4 192.168.99.66. t=0 0. m=audio 16410 RTP/AVP 18 0 4 8 101. a=rtpmap:18 G729a/8000. a=rtpmap:0 PCMU/8000. a=rtpmap:4 G723/8000. a=rtpmap:8 PCMA/8000. a=rtpmap:101 telephone-event/8000. a=fmtp:101 0-15. a=ptime:20. a=sendrecv.
# U 2005/10/04 01:44:44.155113 SIP_UAC:5070 -> OSER_PROXY:15061 CANCEL sip:6046946333@OSER_PROXY:15061 SIP/2.0. Via: SIP/2.0/UDP 192.168.99.66:5070;branch=z9hG4bK-249e2787. From: tavis sip:200110005334@OSER_PROXY:15061;tag=6e3e1f53c3f352efo0. To: sip:6046946333@OSER_PROXY:15061. Call-ID: ec5b9223-f98ffe5f@192.168.99.66. CSeq: 102 CANCEL. Max-Forwards: 70. Proxy-Authorization: Digest username="200110005334",realm="hq.galnet.ca",nonce="4341dfb7e0cfaa398a6f425c02262325f943b20e",uri="sip:6046946333@OSER_PROXY:15061",algorithm=MD5,response="512097281b4fba990adf2cc6c273f033",qop=auth,nc=00000002,cnonce="750e43e5".
User-Agent: Sipura/SPA3000-3.1.5(GWb). Content-Length: 0. .
# U 2005/10/04 01:44:44.285994 OSER_PROXY:15061 -> SIP_UAC:5070 SIP/2.0 483 Too many hops. Via: SIP/2.0/UDP 192.168.99.66:5070;rport=5070;received=SIP_UAC;branch=z9hG4bK-249e2787. From: tavis sip:200110005334@OSER_PROXY:15061;tag=6e3e1f53c3f352efo0. To: sip:6046946333@OSER_PROXY:15061;tag=688bd636d693eb2ab143ccbaf0db2c7a.32f9.
Call-ID: ec5b9223-f98ffe5f@192.168.99.66. CSeq: 102 CANCEL. Content-Length: 0. .
# U 2005/10/04 01:44:44.648305 SIP_UAC:5070 -> OSER_PROXY:15061 INVITE sip:6046946333@OSER_PROXY:15061 SIP/2.0. Via: SIP/2.0/UDP 192.168.99.66:5070;branch=z9hG4bK-249e2787. From: tavis sip:200110005334@OSER_PROXY:15061;tag=6e3e1f53c3f352efo0. To: sip:6046946333@OSER_PROXY:15061. Call-ID: ec5b9223-f98ffe5f@192.168.99.66. CSeq: 102 INVITE. Max-Forwards: 70. Proxy-Authorization: Digest username="200110005334",realm="hq.galnet.ca",nonce="4341dfb7e0cfaa398a6f425c02262325f943b20e",uri="sip:6046946333@OSER_PROXY:15061",algorithm=MD5,response="11a15f9ef4fdb1c9ab05566cad92d67e",qop=auth,nc=00000002,cnonce="750e43e5".
Contact: tavis sip:200110005334@192.168.99.66:5070. Expires: 240. User-Agent: Sipura/SPA3000-3.1.5(GWb). Content-Length: 287. Allow: ACK, BYE, CANCEL, INFO, INVITE, NOTIFY, OPTIONS, REFER. Supported: x-sipura. Content-Type: application/sdp. . v=0. o=- 25915303 25915303 IN IP4 192.168.99.66. s=-. c=IN IP4 192.168.99.66. t=0 0. m=audio 16410 RTP/AVP 18 0 4 8 101. a=rtpmap:18 G729a/8000. a=rtpmap:0 PCMU/8000. a=rtpmap:4 G723/8000. a=rtpmap:8 PCMA/8000. a=rtpmap:101 telephone-event/8000. a=fmtp:101 0-15. a=ptime:20. a=sendrecv.
# U 2005/10/04 01:44:44.688471 OSER_PROXY:15061 -> SIP_UAC:5070 SIP/2.0 100 trying -- your call is important to us. Via: SIP/2.0/UDP 192.168.99.66:5070;branch=z9hG4bK-249e2787;rport=5070;received=SIP_UAC. From: tavis sip:200110005334@OSER_PROXY:15061;tag=6e3e1f53c3f352efo0. To: sip:6046946333@OSER_PROXY:15061. Call-ID: ec5b9223-f98ffe5f@192.168.99.66. CSeq: 102 INVITE. Content-Length: 0. .
# U 2005/10/04 01:44:44.689012 OSER_PROXY:15061 -> NEXTHOP_PROXY:5060 INVITE sip:16046946333@NEXTHOP_PROXY SIP/2.0. Record-Route: sip:OSER_PROXY:15061;ftag=6e3e1f53c3f352efo0;lr=on. Via: SIP/2.0/UDP OSER_PROXY:15061;branch=z9hG4bK11ea.6c311116.0. Via: SIP/2.0/UDP 192.168.99.66:5070;rport=5070;received=SIP_UAC;branch=z9hG4bK-249e2787. From: tavis sip:200110005334@OSER_PROXY:15061;tag=6e3e1f53c3f352efo0. To: sip:6046946333@OSER_PROXY:15061. Call-ID: ec5b9223-f98ffe5f@192.168.99.66. CSeq: 102 INVITE. Max-Forwards: 15. Contact: tavis sip:200110005334@SIP_UAC:5070. Expires: 240. User-Agent: Sipura/SPA3000-3.1.5(GWb). Content-Length: 288. Allow: ACK, BYE, CANCEL, INFO, INVITE, NOTIFY, OPTIONS, REFER. Supported: x-sipura. Content-Type: application/sdp. . v=0. o=- 25915303 25915303 IN IP4 192.168.99.66. s=-. c=IN IP4 OSER_PROXY. t=0 0. m=audio 35328 RTP/AVP 18 0 4 8 101. a=rtpmap:18 G729a/8000. a=rtpmap:0 PCMU/8000. a=rtpmap:4 G723/8000. a=rtpmap:8 PCMA/8000. a=rtpmap:101 telephone-event/8000. a=fmtp:101 0-15. a=ptime:20. a=sendrecv.
# U 2005/10/04 01:44:45.396833 OSER_PROXY:15061 -> NEXTHOP_PROXY:5060 INVITE sip:16046946333@NEXTHOP_PROXY SIP/2.0. Record-Route: sip:OSER_PROXY:15061;ftag=6e3e1f53c3f352efo0;lr=on. Via: SIP/2.0/UDP OSER_PROXY:15061;branch=z9hG4bK11ea.6c311116.0. Via: SIP/2.0/UDP 192.168.99.66:5070;rport=5070;received=SIP_UAC;branch=z9hG4bK-249e2787. From: tavis sip:200110005334@OSER_PROXY:15061;tag=6e3e1f53c3f352efo0. To: sip:6046946333@OSER_PROXY:15061. Call-ID: ec5b9223-f98ffe5f@192.168.99.66. CSeq: 102 INVITE. Max-Forwards: 15. Contact: tavis sip:200110005334@SIP_UAC:5070. Expires: 240. User-Agent: Sipura/SPA3000-3.1.5(GWb). Content-Length: 288. Allow: ACK, BYE, CANCEL, INFO, INVITE, NOTIFY, OPTIONS, REFER. Supported: x-sipura. Content-Type: application/sdp. . v=0. o=- 25915303 25915303 IN IP4 192.168.99.66. s=-. c=IN IP4 OSER_PROXY. t=0 0. m=audio 35328 RTP/AVP 18 0 4 8 101. a=rtpmap:18 G729a/8000. a=rtpmap:0 PCMU/8000. a=rtpmap:4 G723/8000. a=rtpmap:8 PCMA/8000. a=rtpmap:101 telephone-event/8000. a=fmtp:101 0-15. a=ptime:20. a=sendrecv.
# U 2005/10/04 01:44:46.090526 NEXTHOP_PROXY:5060 -> OSER_PROXY:15061 SIP/2.0 183 Inband Information. Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, REFER, NOTIFY, REGISTER. Via: SIP/2.0/UDP OSER_PROXY:15061;branch=z9hG4bK11ea.6c311116.0. Via: SIP/2.0/UDP 192.168.99.66:5070;rport=5070;received=SIP_UAC;branch=z9hG4bK-249e2787. Record-Route: sip:OSER_PROXY:15061;ftag=6e3e1f53c3f352efo0;lr=on. To: sip:6046946333@OSER_PROXY:15061;tag=40032033. From: tavis sip:200110005334@OSER_PROXY:15061;tag=6e3e1f53c3f352efo0. Call-ID: ec5b9223-f98ffe5f@192.168.99.66. X-SHOUT-Channel: INBOUND 1:15:21:1. CSeq: 102 INVITE. Contact: sip:anonymous@NEXTHOP_PROXY. User-Agent: SHOUT 3.3.1p3v71. Content-Type: application/sdp. Content-Length: 174. . v=0. o=- 0 0 IN IP4 NEXTHOP_PROXY. s=SIP call via SHOUT. c=IN IP4 NEXTHOP_PROXY. t=0 0. m=audio 19004 RTP/AVP 18 101. a=rtpmap:18 G729/8000. a=rtpmap:101 telephone-event/8000.
# U 2005/10/04 01:44:46.104387 OSER_PROXY:15061 -> SIP_UAC:5070 SIP/2.0 183 Inband Information. Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, REFER, NOTIFY, REGISTER. Via: SIP/2.0/UDP 192.168.99.66:5070;rport=5070;received=SIP_UAC;branch=z9hG4bK-249e2787. Record-Route: sip:OSER_PROXY:15061;ftag=6e3e1f53c3f352efo0;lr=on. To: sip:6046946333@OSER_PROXY:15061;tag=40032033. From: tavis sip:200110005334@OSER_PROXY:15061;tag=6e3e1f53c3f352efo0. Call-ID: ec5b9223-f98ffe5f@192.168.99.66. X-SHOUT-Channel: INBOUND 1:15:21:1. CSeq: 102 INVITE. Contact: sip:anonymous@NEXTHOP_PROXY. User-Agent: SHOUT 3.3.1p3v71. Content-Type: application/sdp. Content-Length: 176. . v=0. o=- 0 0 IN IP4 NEXTHOP_PROXY. s=SIP call via SHOUT. c=IN IP4 OSER_PROXY. t=0 0. m=audio 35328 RTP/AVP 18 101. a=rtpmap:18 G729/8000. a=rtpmap:101 telephone-event/8000.
# U 2005/10/04 01:44:46.190376 OSER_PROXY:15061 -> SIP_UAC:5070 SIP/2.0 183 Inband Information. Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, REFER, NOTIFY, REGISTER. Via: SIP/2.0/UDP 192.168.99.66:5070;rport=5070;received=SIP_UAC;branch=z9hG4bK-249e2787. Record-Route: sip:OSER_PROXY:15061;ftag=6e3e1f53c3f352efo0;lr=on. To: sip:6046946333@OSER_PROXY:15061;tag=40032033. From: tavis sip:200110005334@OSER_PROXY:15061;tag=6e3e1f53c3f352efo0. Call-ID: ec5b9223-f98ffe5f@192.168.99.66. X-SHOUT-Channel: INBOUND 1:15:21:1. CSeq: 102 INVITE. Contact: sip:anonymous@NEXTHOP_PROXY. User-Agent: SHOUT 3.3.1p3v71. Content-Type: application/sdp. Content-Length: 176. . v=0. o=- 0 0 IN IP4 NEXTHOP_PROXY. s=SIP call via SHOUT. c=IN IP4 OSER_PROXY. t=0 0. m=audio 35328 RTP/AVP 18 101. a=rtpmap:18 G729/8000. a=rtpmap:101 telephone-event/8000.
## U 2005/10/04 01:44:46.702880 OSER_PROXY:15061 -> SIP_UAC:5070 SIP/2.0 183 Inband Information. Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, REFER, NOTIFY, REGISTER. Via: SIP/2.0/UDP 192.168.99.66:5070;rport=5070;received=SIP_UAC;branch=z9hG4bK-249e2787. Record-Route: sip:OSER_PROXY:15061;ftag=6e3e1f53c3f352efo0;lr=on. To: sip:6046946333@OSER_PROXY:15061;tag=40032033. From: tavis sip:200110005334@OSER_PROXY:15061;tag=6e3e1f53c3f352efo0. Call-ID: ec5b9223-f98ffe5f@192.168.99.66. X-SHOUT-Channel: INBOUND 1:15:21:1. CSeq: 102 INVITE. Contact: sip:anonymous@NEXTHOP_PROXY. User-Agent: SHOUT 3.3.1p3v71. Content-Type: application/sdp. Content-Length: 176. . v=0. o=- 0 0 IN IP4 NEXTHOP_PROXY. s=SIP call via SHOUT. c=IN IP4 OSER_PROXY. t=0 0. m=audio 35328 RTP/AVP 18 101. a=rtpmap:18 G729/8000. a=rtpmap:101 telephone-event/8000.
Users mailing list Users@openser.org http://openser.org/cgi-bin/mailman/listinfo/users
Just wanted to post an update on this issue, someone posted a link to a "t_check_trans()" function (its in the openser cookbook) that could be used to determine if the CANCEL had a corresponding transaction.
If the transaction was not found it could be ignored by OpenSER leading the UAC to resend the CANCEL.
After a few seconds OpenSER finishes processing the INVITE, creates a transaction and that matches one of the retransmitted CANCEL messages and the call is torn down properly
This has resolved the issue I came across, just in case anyone was curious
eg.
if ( is_method("CANCEL") ) { # If the transaction this message belongs to isn't known about by # the proxy, then silently discard it if ( !t_check_trans() ) { log(1, "Route{0}: There was a CANCEL that DIDN't match a transaction.."); exit; } log(1, "Route{0}: There was a CANCEL that matched a transaction.."); }
Klaus Darilion wrote:
Tavis P wrote:
With the latest CVS build of OSER, when an INVITE is sent followed by a CANCEL, before OSER has finished processing the initial INVITE, the outbound call is not torn down, and SER routes the CANCEL message to
AFAIK this may happen with all versions of ser/openser.
btw: Your SIPURA is broken:
- It sends a CANCEL although it has not received a response yet.
According tot the standard the UAC must withheld the CANCEL until a provisional response is received.
- It sends an INVITE right after the CANCEL. Weird.
regards klaus
itself. Below is an ngrep trace of the exchange.
I have a development cluster of mediaproxy servers setup and one of them was taken offline but left in the loop which increased the time it took for a message to be processed which is how i came across this situation (it took some seconds before the INVITE was able to be transmitted to the nexthop_proxy)
--
# U 2005/10/04 01:44:43.134010 SIP_UAC:5070 -> OSER_PROXY:15061 INVITE sip:6046946333@OSER_PROXY:15061 SIP/2.0. Via: SIP/2.0/UDP 192.168.99.66:5070;branch=z9hG4bK-34d67b8f. From: tavis sip:200110005334@OSER_PROXY:15061;tag=6e3e1f53c3f352efo0. To: sip:6046946333@OSER_PROXY:15061. Call-ID: ec5b9223-f98ffe5f@192.168.99.66. CSeq: 101 INVITE. Max-Forwards: 70. Contact: tavis sip:200110005334@192.168.99.66:5070. Expires: 240. User-Agent: Sipura/SPA3000-3.1.5(GWb). Content-Length: 287. Allow: ACK, BYE, CANCEL, INFO, INVITE, NOTIFY, OPTIONS, REFER. Supported: x-sipura. Content-Type: application/sdp. . v=0. o=- 25915303 25915303 IN IP4 192.168.99.66. s=-. c=IN IP4 192.168.99.66. t=0 0. m=audio 16410 RTP/AVP 18 0 4 8 101. a=rtpmap:18 G729a/8000. a=rtpmap:0 PCMU/8000. a=rtpmap:4 G723/8000. a=rtpmap:8 PCMA/8000. a=rtpmap:101 telephone-event/8000. a=fmtp:101 0-15. a=ptime:20. a=sendrecv.
# U 2005/10/04 01:44:43.135736 OSER_PROXY:15061 -> SIP_UAC:5070 SIP/2.0 407 Proxy Authentication Required. Via: SIP/2.0/UDP 192.168.99.66:5070;branch=z9hG4bK-34d67b8f;rport=5070;received=SIP_UAC. From: tavis sip:200110005334@OSER_PROXY:15061;tag=6e3e1f53c3f352efo0. To: sip:6046946333@OSER_PROXY:15061;tag=688bd636d693eb2ab143ccbaf0db2c7a.8474.
Call-ID: ec5b9223-f98ffe5f@192.168.99.66. CSeq: 101 INVITE. Proxy-Authenticate: Digest realm="hq.galnet.ca", nonce="4341dfb7e0cfaa398a6f425c02262325f943b20e", qop="auth". Content-Length: 0. .
# U 2005/10/04 01:44:43.147960 SIP_UAC:5070 -> OSER_PROXY:15061 ACK sip:6046946333@OSER_PROXY:15061 SIP/2.0. Via: SIP/2.0/UDP 192.168.99.66:5070;branch=z9hG4bK-34d67b8f. From: tavis sip:200110005334@OSER_PROXY:15061;tag=6e3e1f53c3f352efo0. To: sip:6046946333@OSER_PROXY:15061;tag=688bd636d693eb2ab143ccbaf0db2c7a.8474.
Call-ID: ec5b9223-f98ffe5f@192.168.99.66. CSeq: 101 ACK. Max-Forwards: 70. Contact: tavis sip:200110005334@192.168.99.66:5070. User-Agent: Sipura/SPA3000-3.1.5(GWb). Content-Length: 0. .
# U 2005/10/04 01:44:43.154728 SIP_UAC:5070 -> OSER_PROXY:15061 INVITE sip:6046946333@OSER_PROXY:15061 SIP/2.0. Via: SIP/2.0/UDP 192.168.99.66:5070;branch=z9hG4bK-249e2787. From: tavis sip:200110005334@OSER_PROXY:15061;tag=6e3e1f53c3f352efo0. To: sip:6046946333@OSER_PROXY:15061. Call-ID: ec5b9223-f98ffe5f@192.168.99.66. CSeq: 102 INVITE. Max-Forwards: 70. Proxy-Authorization: Digest username="200110005334",realm="hq.galnet.ca",nonce="4341dfb7e0cfaa398a6f425c02262325f943b20e",uri="sip:6046946333@OSER_PROXY:15061",algorithm=MD5,response="6867ef34181ba7cedbcbf8dd869f53ab",qop=auth,nc=00000001,cnonce="750e43e5".
Contact: tavis sip:200110005334@192.168.99.66:5070. Expires: 240. User-Agent: Sipura/SPA3000-3.1.5(GWb). Content-Length: 287. Allow: ACK, BYE, CANCEL, INFO, INVITE, NOTIFY, OPTIONS, REFER. Supported: x-sipura. Content-Type: application/sdp. . v=0. o=- 25915303 25915303 IN IP4 192.168.99.66. s=-. c=IN IP4 192.168.99.66. t=0 0. m=audio 16410 RTP/AVP 18 0 4 8 101. a=rtpmap:18 G729a/8000. a=rtpmap:0 PCMU/8000. a=rtpmap:4 G723/8000. a=rtpmap:8 PCMA/8000. a=rtpmap:101 telephone-event/8000. a=fmtp:101 0-15. a=ptime:20. a=sendrecv.
# U 2005/10/04 01:44:43.648366 SIP_UAC:5070 -> OSER_PROXY:15061 INVITE sip:6046946333@OSER_PROXY:15061 SIP/2.0. Via: SIP/2.0/UDP 192.168.99.66:5070;branch=z9hG4bK-249e2787. From: tavis sip:200110005334@OSER_PROXY:15061;tag=6e3e1f53c3f352efo0. To: sip:6046946333@OSER_PROXY:15061. Call-ID: ec5b9223-f98ffe5f@192.168.99.66. CSeq: 102 INVITE. Max-Forwards: 70. Proxy-Authorization: Digest username="200110005334",realm="hq.galnet.ca",nonce="4341dfb7e0cfaa398a6f425c02262325f943b20e",uri="sip:6046946333@OSER_PROXY:15061",algorithm=MD5,response="6867ef34181ba7cedbcbf8dd869f53ab",qop=auth,nc=00000001,cnonce="750e43e5".
Contact: tavis sip:200110005334@192.168.99.66:5070. Expires: 240. User-Agent: Sipura/SPA3000-3.1.5(GWb). Content-Length: 287. Allow: ACK, BYE, CANCEL, INFO, INVITE, NOTIFY, OPTIONS, REFER. Supported: x-sipura. Content-Type: application/sdp. . v=0. o=- 25915303 25915303 IN IP4 192.168.99.66. s=-. c=IN IP4 192.168.99.66. t=0 0. m=audio 16410 RTP/AVP 18 0 4 8 101. a=rtpmap:18 G729a/8000. a=rtpmap:0 PCMU/8000. a=rtpmap:4 G723/8000. a=rtpmap:8 PCMA/8000. a=rtpmap:101 telephone-event/8000. a=fmtp:101 0-15. a=ptime:20. a=sendrecv.
# U 2005/10/04 01:44:44.155113 SIP_UAC:5070 -> OSER_PROXY:15061 CANCEL sip:6046946333@OSER_PROXY:15061 SIP/2.0. Via: SIP/2.0/UDP 192.168.99.66:5070;branch=z9hG4bK-249e2787. From: tavis sip:200110005334@OSER_PROXY:15061;tag=6e3e1f53c3f352efo0. To: sip:6046946333@OSER_PROXY:15061. Call-ID: ec5b9223-f98ffe5f@192.168.99.66. CSeq: 102 CANCEL. Max-Forwards: 70. Proxy-Authorization: Digest username="200110005334",realm="hq.galnet.ca",nonce="4341dfb7e0cfaa398a6f425c02262325f943b20e",uri="sip:6046946333@OSER_PROXY:15061",algorithm=MD5,response="512097281b4fba990adf2cc6c273f033",qop=auth,nc=00000002,cnonce="750e43e5".
User-Agent: Sipura/SPA3000-3.1.5(GWb). Content-Length: 0. .
# U 2005/10/04 01:44:44.285994 OSER_PROXY:15061 -> SIP_UAC:5070 SIP/2.0 483 Too many hops. Via: SIP/2.0/UDP 192.168.99.66:5070;rport=5070;received=SIP_UAC;branch=z9hG4bK-249e2787. From: tavis sip:200110005334@OSER_PROXY:15061;tag=6e3e1f53c3f352efo0. To: sip:6046946333@OSER_PROXY:15061;tag=688bd636d693eb2ab143ccbaf0db2c7a.32f9.
Call-ID: ec5b9223-f98ffe5f@192.168.99.66. CSeq: 102 CANCEL. Content-Length: 0. .
# U 2005/10/04 01:44:44.648305 SIP_UAC:5070 -> OSER_PROXY:15061 INVITE sip:6046946333@OSER_PROXY:15061 SIP/2.0. Via: SIP/2.0/UDP 192.168.99.66:5070;branch=z9hG4bK-249e2787. From: tavis sip:200110005334@OSER_PROXY:15061;tag=6e3e1f53c3f352efo0. To: sip:6046946333@OSER_PROXY:15061. Call-ID: ec5b9223-f98ffe5f@192.168.99.66. CSeq: 102 INVITE. Max-Forwards: 70. Proxy-Authorization: Digest username="200110005334",realm="hq.galnet.ca",nonce="4341dfb7e0cfaa398a6f425c02262325f943b20e",uri="sip:6046946333@OSER_PROXY:15061",algorithm=MD5,response="11a15f9ef4fdb1c9ab05566cad92d67e",qop=auth,nc=00000002,cnonce="750e43e5".
Contact: tavis sip:200110005334@192.168.99.66:5070. Expires: 240. User-Agent: Sipura/SPA3000-3.1.5(GWb). Content-Length: 287. Allow: ACK, BYE, CANCEL, INFO, INVITE, NOTIFY, OPTIONS, REFER. Supported: x-sipura. Content-Type: application/sdp. . v=0. o=- 25915303 25915303 IN IP4 192.168.99.66. s=-. c=IN IP4 192.168.99.66. t=0 0. m=audio 16410 RTP/AVP 18 0 4 8 101. a=rtpmap:18 G729a/8000. a=rtpmap:0 PCMU/8000. a=rtpmap:4 G723/8000. a=rtpmap:8 PCMA/8000. a=rtpmap:101 telephone-event/8000. a=fmtp:101 0-15. a=ptime:20. a=sendrecv.
# U 2005/10/04 01:44:44.688471 OSER_PROXY:15061 -> SIP_UAC:5070 SIP/2.0 100 trying -- your call is important to us. Via: SIP/2.0/UDP 192.168.99.66:5070;branch=z9hG4bK-249e2787;rport=5070;received=SIP_UAC. From: tavis sip:200110005334@OSER_PROXY:15061;tag=6e3e1f53c3f352efo0. To: sip:6046946333@OSER_PROXY:15061. Call-ID: ec5b9223-f98ffe5f@192.168.99.66. CSeq: 102 INVITE. Content-Length: 0. .
# U 2005/10/04 01:44:44.689012 OSER_PROXY:15061 -> NEXTHOP_PROXY:5060 INVITE sip:16046946333@NEXTHOP_PROXY SIP/2.0. Record-Route: sip:OSER_PROXY:15061;ftag=6e3e1f53c3f352efo0;lr=on. Via: SIP/2.0/UDP OSER_PROXY:15061;branch=z9hG4bK11ea.6c311116.0. Via: SIP/2.0/UDP 192.168.99.66:5070;rport=5070;received=SIP_UAC;branch=z9hG4bK-249e2787. From: tavis sip:200110005334@OSER_PROXY:15061;tag=6e3e1f53c3f352efo0. To: sip:6046946333@OSER_PROXY:15061. Call-ID: ec5b9223-f98ffe5f@192.168.99.66. CSeq: 102 INVITE. Max-Forwards: 15. Contact: tavis sip:200110005334@SIP_UAC:5070. Expires: 240. User-Agent: Sipura/SPA3000-3.1.5(GWb). Content-Length: 288. Allow: ACK, BYE, CANCEL, INFO, INVITE, NOTIFY, OPTIONS, REFER. Supported: x-sipura. Content-Type: application/sdp. . v=0. o=- 25915303 25915303 IN IP4 192.168.99.66. s=-. c=IN IP4 OSER_PROXY. t=0 0. m=audio 35328 RTP/AVP 18 0 4 8 101. a=rtpmap:18 G729a/8000. a=rtpmap:0 PCMU/8000. a=rtpmap:4 G723/8000. a=rtpmap:8 PCMA/8000. a=rtpmap:101 telephone-event/8000. a=fmtp:101 0-15. a=ptime:20. a=sendrecv.
# U 2005/10/04 01:44:45.396833 OSER_PROXY:15061 -> NEXTHOP_PROXY:5060 INVITE sip:16046946333@NEXTHOP_PROXY SIP/2.0. Record-Route: sip:OSER_PROXY:15061;ftag=6e3e1f53c3f352efo0;lr=on. Via: SIP/2.0/UDP OSER_PROXY:15061;branch=z9hG4bK11ea.6c311116.0. Via: SIP/2.0/UDP 192.168.99.66:5070;rport=5070;received=SIP_UAC;branch=z9hG4bK-249e2787. From: tavis sip:200110005334@OSER_PROXY:15061;tag=6e3e1f53c3f352efo0. To: sip:6046946333@OSER_PROXY:15061. Call-ID: ec5b9223-f98ffe5f@192.168.99.66. CSeq: 102 INVITE. Max-Forwards: 15. Contact: tavis sip:200110005334@SIP_UAC:5070. Expires: 240. User-Agent: Sipura/SPA3000-3.1.5(GWb). Content-Length: 288. Allow: ACK, BYE, CANCEL, INFO, INVITE, NOTIFY, OPTIONS, REFER. Supported: x-sipura. Content-Type: application/sdp. . v=0. o=- 25915303 25915303 IN IP4 192.168.99.66. s=-. c=IN IP4 OSER_PROXY. t=0 0. m=audio 35328 RTP/AVP 18 0 4 8 101. a=rtpmap:18 G729a/8000. a=rtpmap:0 PCMU/8000. a=rtpmap:4 G723/8000. a=rtpmap:8 PCMA/8000. a=rtpmap:101 telephone-event/8000. a=fmtp:101 0-15. a=ptime:20. a=sendrecv.
# U 2005/10/04 01:44:46.090526 NEXTHOP_PROXY:5060 -> OSER_PROXY:15061 SIP/2.0 183 Inband Information. Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, REFER, NOTIFY, REGISTER. Via: SIP/2.0/UDP OSER_PROXY:15061;branch=z9hG4bK11ea.6c311116.0. Via: SIP/2.0/UDP 192.168.99.66:5070;rport=5070;received=SIP_UAC;branch=z9hG4bK-249e2787. Record-Route: sip:OSER_PROXY:15061;ftag=6e3e1f53c3f352efo0;lr=on. To: sip:6046946333@OSER_PROXY:15061;tag=40032033. From: tavis sip:200110005334@OSER_PROXY:15061;tag=6e3e1f53c3f352efo0. Call-ID: ec5b9223-f98ffe5f@192.168.99.66. X-SHOUT-Channel: INBOUND 1:15:21:1. CSeq: 102 INVITE. Contact: sip:anonymous@NEXTHOP_PROXY. User-Agent: SHOUT 3.3.1p3v71. Content-Type: application/sdp. Content-Length: 174. . v=0. o=- 0 0 IN IP4 NEXTHOP_PROXY. s=SIP call via SHOUT. c=IN IP4 NEXTHOP_PROXY. t=0 0. m=audio 19004 RTP/AVP 18 101. a=rtpmap:18 G729/8000. a=rtpmap:101 telephone-event/8000.
# U 2005/10/04 01:44:46.104387 OSER_PROXY:15061 -> SIP_UAC:5070 SIP/2.0 183 Inband Information. Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, REFER, NOTIFY, REGISTER. Via: SIP/2.0/UDP 192.168.99.66:5070;rport=5070;received=SIP_UAC;branch=z9hG4bK-249e2787. Record-Route: sip:OSER_PROXY:15061;ftag=6e3e1f53c3f352efo0;lr=on. To: sip:6046946333@OSER_PROXY:15061;tag=40032033. From: tavis sip:200110005334@OSER_PROXY:15061;tag=6e3e1f53c3f352efo0. Call-ID: ec5b9223-f98ffe5f@192.168.99.66. X-SHOUT-Channel: INBOUND 1:15:21:1. CSeq: 102 INVITE. Contact: sip:anonymous@NEXTHOP_PROXY. User-Agent: SHOUT 3.3.1p3v71. Content-Type: application/sdp. Content-Length: 176. . v=0. o=- 0 0 IN IP4 NEXTHOP_PROXY. s=SIP call via SHOUT. c=IN IP4 OSER_PROXY. t=0 0. m=audio 35328 RTP/AVP 18 101. a=rtpmap:18 G729/8000. a=rtpmap:101 telephone-event/8000.
# U 2005/10/04 01:44:46.190376 OSER_PROXY:15061 -> SIP_UAC:5070 SIP/2.0 183 Inband Information. Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, REFER, NOTIFY, REGISTER. Via: SIP/2.0/UDP 192.168.99.66:5070;rport=5070;received=SIP_UAC;branch=z9hG4bK-249e2787. Record-Route: sip:OSER_PROXY:15061;ftag=6e3e1f53c3f352efo0;lr=on. To: sip:6046946333@OSER_PROXY:15061;tag=40032033. From: tavis sip:200110005334@OSER_PROXY:15061;tag=6e3e1f53c3f352efo0. Call-ID: ec5b9223-f98ffe5f@192.168.99.66. X-SHOUT-Channel: INBOUND 1:15:21:1. CSeq: 102 INVITE. Contact: sip:anonymous@NEXTHOP_PROXY. User-Agent: SHOUT 3.3.1p3v71. Content-Type: application/sdp. Content-Length: 176. . v=0. o=- 0 0 IN IP4 NEXTHOP_PROXY. s=SIP call via SHOUT. c=IN IP4 OSER_PROXY. t=0 0. m=audio 35328 RTP/AVP 18 101. a=rtpmap:18 G729/8000. a=rtpmap:101 telephone-event/8000.
## U 2005/10/04 01:44:46.702880 OSER_PROXY:15061 -> SIP_UAC:5070 SIP/2.0 183 Inband Information. Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, REFER, NOTIFY, REGISTER. Via: SIP/2.0/UDP 192.168.99.66:5070;rport=5070;received=SIP_UAC;branch=z9hG4bK-249e2787. Record-Route: sip:OSER_PROXY:15061;ftag=6e3e1f53c3f352efo0;lr=on. To: sip:6046946333@OSER_PROXY:15061;tag=40032033. From: tavis sip:200110005334@OSER_PROXY:15061;tag=6e3e1f53c3f352efo0. Call-ID: ec5b9223-f98ffe5f@192.168.99.66. X-SHOUT-Channel: INBOUND 1:15:21:1. CSeq: 102 INVITE. Contact: sip:anonymous@NEXTHOP_PROXY. User-Agent: SHOUT 3.3.1p3v71. Content-Type: application/sdp. Content-Length: 176. . v=0. o=- 0 0 IN IP4 NEXTHOP_PROXY. s=SIP call via SHOUT. c=IN IP4 OSER_PROXY. t=0 0. m=audio 35328 RTP/AVP 18 101. a=rtpmap:18 G729/8000. a=rtpmap:101 telephone-event/8000.
Users mailing list Users@openser.org http://openser.org/cgi-bin/mailman/listinfo/users
Hi Tavis,
this is similar with an idea suggested by Juha some days ago. Just to improve the CANCEL processing, right after "
log(1, "Route{0}: There was a CANCEL that matched a transaction..");
just to: t_relay(); exit;
regards, bogdan
Tavis P wrote:
Just wanted to post an update on this issue, someone posted a link to a "t_check_trans()" function (its in the openser cookbook) that could be used to determine if the CANCEL had a corresponding transaction.
If the transaction was not found it could be ignored by OpenSER leading the UAC to resend the CANCEL.
After a few seconds OpenSER finishes processing the INVITE, creates a transaction and that matches one of the retransmitted CANCEL messages and the call is torn down properly
This has resolved the issue I came across, just in case anyone was curious
eg.
if ( is_method("CANCEL") ) { # If the transaction this message belongs to isn't known
about by # the proxy, then silently discard it if ( !t_check_trans() ) { log(1, "Route{0}: There was a CANCEL that DIDN't match a transaction.."); exit; } log(1, "Route{0}: There was a CANCEL that matched a transaction.."); }
Klaus Darilion wrote:
Tavis P wrote:
With the latest CVS build of OSER, when an INVITE is sent followed by a CANCEL, before OSER has finished processing the initial INVITE, the outbound call is not torn down, and SER routes the CANCEL message to
AFAIK this may happen with all versions of ser/openser.
btw: Your SIPURA is broken:
- It sends a CANCEL although it has not received a response yet.
According tot the standard the UAC must withheld the CANCEL until a provisional response is received.
- It sends an INVITE right after the CANCEL. Weird.
regards klaus
Hi Tavis,
please see my inline comments.
regards, bogdan
Tavis P wrote:
With the latest CVS build of OSER, when an INVITE is sent followed by a CANCEL, before OSER has finished processing the initial INVITE, the outbound call is not torn down, and SER routes the CANCEL message to itself.
this is more a logical problem and not sure how it can be fixed (if it can be fixed). The only idea it come into my mind is to delay the CANCEL that does not match a transaction....but is quite ugly.
I have a development cluster of mediaproxy servers setup and one of them was taken offline but left in the loop which increased the time it took for a message to be processed which is how i came across this situation (it took some seconds before the INVITE was able to be transmitted to the nexthop_proxy)
what you can do is to force transaction creation before any time-consuming operations (use t_newtran to create the transaction) - but be very, very carefully - you will have to use exclusively statefull functions and what is more important, all later changes over the message will not be saved into transaction.
.....and coming back to the idea: create the transaction, do all time-consuming operations and forward. If in the mean while you get a CANCEL, it will match the transaction, but it will not be forwarded since there is no branch (no forward done); but once you get a reply for the INVITE, OpenSER will remember that it was CANCEL and generate one - this is a new feature of this release ;)
hope it will help, bogdan
Bogdan-Andrei Iancu wrote:
Hi Tavis,
please see my inline comments.
regards, bogdan
Tavis P wrote:
With the latest CVS build of OSER, when an INVITE is sent followed by a CANCEL, before OSER has finished processing the initial INVITE, the outbound call is not torn down, and SER routes the CANCEL message to itself.
this is more a logical problem and not sure how it can be fixed (if it can be fixed). The only idea it come into my mind is to delay the CANCEL that does not match a transaction....but is quite ugly.
What about forwarding the CANCEL and keept in in memory. For every incoming INVITE we will first check if there is already a CANCEL for this.
I have a development cluster of mediaproxy servers setup and one of them was taken offline but left in the loop which increased the time it took for a message to be processed which is how i came across this situation (it took some seconds before the INVITE was able to be transmitted to the nexthop_proxy)
what you can do is to force transaction creation before any time-consuming operations (use t_newtran to create the transaction) - but be very, very carefully - you will have to use exclusively statefull functions and what is more important, all later changes over the message will not be saved into transaction.
.....and coming back to the idea: create the transaction, do all time-consuming operations and forward. If in the mean while you get a CANCEL, it will match the transaction, but it will not be forwarded since there is no branch (no forward done); but once you get a reply for the INVITE, OpenSER will remember that it was CANCEL and generate one - this is a new feature of this release ;)
ugly
regards klaus
Hi Klaus,
that was a second idea :).
actually you do not have to do anything special to keep the CANCEL in memory - it will be kept as transaction if you forward it statefully. what I do not like in this approach is that for each INVITE you have to search for a potential previous CANCEL - which is quite consuming... I would prefer an approach with minimum impact on the performance.
regards, bogdan
Klaus Darilion wrote:
With the latest CVS build of OSER, when an INVITE is sent followed by a CANCEL, before OSER has finished processing the initial INVITE, the outbound call is not torn down, and SER routes the CANCEL message to itself.
this is more a logical problem and not sure how it can be fixed (if it can be fixed). The only idea it come into my mind is to delay the CANCEL that does not match a transaction....but is quite ugly.
What about forwarding the CANCEL and keept in in memory. For every incoming INVITE we will first check if there is already a CANCEL for this.
Bogdan-Andrei Iancu wrote:
Hi Klaus,
that was a second idea :).
actually you do not have to do anything special to keep the CANCEL in memory - it will be kept as transaction if you forward it statefully. what I do not like in this approach is that for each INVITE you have to search for a potential previous CANCEL - which is quite consuming... I would prefer an approach with minimum impact on the performance.
Hi Bogdan!
One one hand we care about fast transaction handling/matching, on the other hand we have problem with external lookups which take a long time (db, radius, DNS ...) compared to opensers internal processing.
For example: 4 clients send an INVITE to a domain with a broken delegation. Thus, all threads are busy doing DNS. Thus, a SIP proxy which can handle 1000000000 requests per second is oversized in real life scenarios, were the external processing is the bottleneck (unless we start 1000000000 threads).
Of course I'm happy that openser peforms quite well, but in my scenarios performance problems are always external. And I really would like a working INVITE/CANCEL which deals with these problems.
regards klaus
regards, bogdan
Klaus Darilion wrote:
With the latest CVS build of OSER, when an INVITE is sent followed by a CANCEL, before OSER has finished processing the initial INVITE, the outbound call is not torn down, and SER routes the CANCEL message to itself.
this is more a logical problem and not sure how it can be fixed (if it can be fixed). The only idea it come into my mind is to delay the CANCEL that does not match a transaction....but is quite ugly.
What about forwarding the CANCEL and keept in in memory. For every incoming INVITE we will first check if there is already a CANCEL for this.
Hi Klaus,
Klaus Darilion wrote:
Bogdan-Andrei Iancu wrote:
Hi Klaus,
that was a second idea :).
actually you do not have to do anything special to keep the CANCEL in memory - it will be kept as transaction if you forward it statefully. what I do not like in this approach is that for each INVITE you have to search for a potential previous CANCEL - which is quite consuming... I would prefer an approach with minimum impact on the performance.
Hi Bogdan!
One one hand we care about fast transaction handling/matching, on the other hand we have problem with external lookups which take a long time (db, radius, DNS ...) compared to opensers internal processing.
I'm aware of these problems - the idea is to try to reduce their effect, depending of their specific.
For example: 4 clients send an INVITE to a domain with a broken delegation. Thus, all threads are busy doing DNS. Thus, a SIP proxy which can handle 1000000000 requests per second is oversized in real life scenarios, were the external processing is the bottleneck (unless we start 1000000000 threads).
for DNS, for example - try to reduce the timeout on your DNS server; also we consider having DNS cache for OpenSER - some contribution ;)
Of course I'm happy that openser peforms quite well, but in my scenarios performance problems are always external. And I really would like a working INVITE/CANCEL which deals with these problems.
I will keep this is mind (if not, please remind me) and I will try to fix it after the release ...in a way or another.
regards, bogdan