[Users] Call not torn down when CANCEL sent before INVITE message is finished being processed

Tavis P tavis.lists at galaxytelecom.net
Tue Nov 1 01:21:19 CET 2005


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:
> 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 at OSER_PROXY:15061 SIP/2.0.
>> Via: SIP/2.0/UDP 192.168.99.66:5070;branch=z9hG4bK-34d67b8f.
>> From: tavis <sip:200110005334 at OSER_PROXY:15061>;tag=6e3e1f53c3f352efo0.
>> To: <sip:6046946333 at OSER_PROXY:15061>.
>> Call-ID: ec5b9223-f98ffe5f at 192.168.99.66.
>> CSeq: 101 INVITE.
>> Max-Forwards: 70.
>> Contact: tavis <sip:200110005334 at 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 at OSER_PROXY:15061>;tag=6e3e1f53c3f352efo0.
>> To:
>> <sip:6046946333 at OSER_PROXY:15061>;tag=688bd636d693eb2ab143ccbaf0db2c7a.8474.
>>
>> Call-ID: ec5b9223-f98ffe5f at 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 at OSER_PROXY:15061 SIP/2.0.
>> Via: SIP/2.0/UDP 192.168.99.66:5070;branch=z9hG4bK-34d67b8f.
>> From: tavis <sip:200110005334 at OSER_PROXY:15061>;tag=6e3e1f53c3f352efo0.
>> To:
>> <sip:6046946333 at OSER_PROXY:15061>;tag=688bd636d693eb2ab143ccbaf0db2c7a.8474.
>>
>> Call-ID: ec5b9223-f98ffe5f at 192.168.99.66.
>> CSeq: 101 ACK.
>> Max-Forwards: 70.
>> Contact: tavis <sip:200110005334 at 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 at OSER_PROXY:15061 SIP/2.0.
>> Via: SIP/2.0/UDP 192.168.99.66:5070;branch=z9hG4bK-249e2787.
>> From: tavis <sip:200110005334 at OSER_PROXY:15061>;tag=6e3e1f53c3f352efo0.
>> To: <sip:6046946333 at OSER_PROXY:15061>.
>> Call-ID: ec5b9223-f98ffe5f at 192.168.99.66.
>> CSeq: 102 INVITE.
>> Max-Forwards: 70.
>> Proxy-Authorization: Digest
>> username="200110005334",realm="hq.galnet.ca",nonce="4341dfb7e0cfaa398a6f425c02262325f943b20e",uri="sip:6046946333 at OSER_PROXY:15061",algorithm=MD5,response="6867ef34181ba7cedbcbf8dd869f53ab",qop=auth,nc=00000001,cnonce="750e43e5".
>>
>> Contact: tavis <sip:200110005334 at 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 at OSER_PROXY:15061 SIP/2.0.
>> Via: SIP/2.0/UDP 192.168.99.66:5070;branch=z9hG4bK-249e2787.
>> From: tavis <sip:200110005334 at OSER_PROXY:15061>;tag=6e3e1f53c3f352efo0.
>> To: <sip:6046946333 at OSER_PROXY:15061>.
>> Call-ID: ec5b9223-f98ffe5f at 192.168.99.66.
>> CSeq: 102 INVITE.
>> Max-Forwards: 70.
>> Proxy-Authorization: Digest
>> username="200110005334",realm="hq.galnet.ca",nonce="4341dfb7e0cfaa398a6f425c02262325f943b20e",uri="sip:6046946333 at OSER_PROXY:15061",algorithm=MD5,response="6867ef34181ba7cedbcbf8dd869f53ab",qop=auth,nc=00000001,cnonce="750e43e5".
>>
>> Contact: tavis <sip:200110005334 at 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 at OSER_PROXY:15061 SIP/2.0.
>> Via: SIP/2.0/UDP 192.168.99.66:5070;branch=z9hG4bK-249e2787.
>> From: tavis <sip:200110005334 at OSER_PROXY:15061>;tag=6e3e1f53c3f352efo0.
>> To: <sip:6046946333 at OSER_PROXY:15061>.
>> Call-ID: ec5b9223-f98ffe5f at 192.168.99.66.
>> CSeq: 102 CANCEL.
>> Max-Forwards: 70.
>> Proxy-Authorization: Digest
>> username="200110005334",realm="hq.galnet.ca",nonce="4341dfb7e0cfaa398a6f425c02262325f943b20e",uri="sip:6046946333 at 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 at OSER_PROXY:15061>;tag=6e3e1f53c3f352efo0.
>> To:
>> <sip:6046946333 at OSER_PROXY:15061>;tag=688bd636d693eb2ab143ccbaf0db2c7a.32f9.
>>
>> Call-ID: ec5b9223-f98ffe5f at 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 at OSER_PROXY:15061 SIP/2.0.
>> Via: SIP/2.0/UDP 192.168.99.66:5070;branch=z9hG4bK-249e2787.
>> From: tavis <sip:200110005334 at OSER_PROXY:15061>;tag=6e3e1f53c3f352efo0.
>> To: <sip:6046946333 at OSER_PROXY:15061>.
>> Call-ID: ec5b9223-f98ffe5f at 192.168.99.66.
>> CSeq: 102 INVITE.
>> Max-Forwards: 70.
>> Proxy-Authorization: Digest
>> username="200110005334",realm="hq.galnet.ca",nonce="4341dfb7e0cfaa398a6f425c02262325f943b20e",uri="sip:6046946333 at OSER_PROXY:15061",algorithm=MD5,response="11a15f9ef4fdb1c9ab05566cad92d67e",qop=auth,nc=00000002,cnonce="750e43e5".
>>
>> Contact: tavis <sip:200110005334 at 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 at OSER_PROXY:15061>;tag=6e3e1f53c3f352efo0.
>> To: <sip:6046946333 at OSER_PROXY:15061>.
>> Call-ID: ec5b9223-f98ffe5f at 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 at 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 at OSER_PROXY:15061>;tag=6e3e1f53c3f352efo0.
>> To: <sip:6046946333 at OSER_PROXY:15061>.
>> Call-ID: ec5b9223-f98ffe5f at 192.168.99.66.
>> CSeq: 102 INVITE.
>> Max-Forwards: 15.
>> Contact: tavis <sip:200110005334 at 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 at 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 at OSER_PROXY:15061>;tag=6e3e1f53c3f352efo0.
>> To: <sip:6046946333 at OSER_PROXY:15061>.
>> Call-ID: ec5b9223-f98ffe5f at 192.168.99.66.
>> CSeq: 102 INVITE.
>> Max-Forwards: 15.
>> Contact: tavis <sip:200110005334 at 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 at OSER_PROXY:15061>;tag=40032033.
>> From: tavis <sip:200110005334 at OSER_PROXY:15061>;tag=6e3e1f53c3f352efo0.
>> Call-ID: ec5b9223-f98ffe5f at 192.168.99.66.
>> X-SHOUT-Channel: INBOUND 1:15:21:1.
>> CSeq: 102 INVITE.
>> Contact: sip:anonymous at 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 at OSER_PROXY:15061>;tag=40032033.
>> From: tavis <sip:200110005334 at OSER_PROXY:15061>;tag=6e3e1f53c3f352efo0.
>> Call-ID: ec5b9223-f98ffe5f at 192.168.99.66.
>> X-SHOUT-Channel: INBOUND 1:15:21:1.
>> CSeq: 102 INVITE.
>> Contact: sip:anonymous at 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 at OSER_PROXY:15061>;tag=40032033.
>> From: tavis <sip:200110005334 at OSER_PROXY:15061>;tag=6e3e1f53c3f352efo0.
>> Call-ID: ec5b9223-f98ffe5f at 192.168.99.66.
>> X-SHOUT-Channel: INBOUND 1:15:21:1.
>> CSeq: 102 INVITE.
>> Contact: sip:anonymous at 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 at OSER_PROXY:15061>;tag=40032033.
>> From: tavis <sip:200110005334 at OSER_PROXY:15061>;tag=6e3e1f53c3f352efo0.
>> Call-ID: ec5b9223-f98ffe5f at 192.168.99.66.
>> X-SHOUT-Channel: INBOUND 1:15:21:1.
>> CSeq: 102 INVITE.
>> Contact: sip:anonymous at 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 at openser.org
>> http://openser.org/cgi-bin/mailman/listinfo/users
>
>
>






More information about the sr-users mailing list