[asterisk-bugs] [Asterisk 0012713]: SIP Protocol Violation when REFER rejected in sip_transfer (Cisco CCM, post answer), and Transfer application misclaims success.

noreply at bugs.digium.com noreply at bugs.digium.com
Wed Jun 4 10:49:37 CDT 2008


A NOTE has been added to this issue. 
====================================================================== 
http://bugs.digium.com/view.php?id=12713 
====================================================================== 
Reported By:                davidw
Assigned To:                
====================================================================== 
Project:                    Asterisk
Issue ID:                   12713
Category:                   Channels/chan_sip/Transfers
Reproducibility:            always
Severity:                   minor
Priority:                   normal
Status:                     new
Asterisk Version:           1.4.20 
SVN Branch (only for SVN checkouts, not tarball releases): N/A 
SVN Revision (number only!):  
Disclaimer on File?:        N/A 
Request Review:              
====================================================================== 
Date Submitted:             05-23-2008 12:59 CDT
Last Modified:              06-04-2008 10:49 CDT
====================================================================== 
Summary:                    SIP Protocol Violation when REFER rejected in
sip_transfer (Cisco CCM, post answer), and Transfer application misclaims
success.
Description: 
A call from Cisco CCM was answered and then transferred back to a different
extension on the Cisco.

Asterisk first reported a successful TRANSFERSTATUS, then tried to use a
REFER method.  This was rejected as unsupported.  Asterisk responded with
BYE, which the Cisco accepted.  However it continued to try to send REFERs,
which the Cisco, of course, rejected, because the session reference had
been deleted by the BYE!
======================================================================
Relationships       ID      Summary
----------------------------------------------------------------------
related to          0010052 NOTIFY race condition when state change...
related to          0011848 Incorrect dialog matching and requests ...
====================================================================== 

---------------------------------------------------------------------- 
 davidw - 06-04-08 10:49  
---------------------------------------------------------------------- 
The sip history is as you say.  You can avoid the protocol violation by
adding a wait after the transfer, but this just tends to highlight that the
transfer application shouldn't be returning until it knows that the
transfer either definitely failed, or it has lost control of the call.

If you wait long enough to be sure that the transfer has failed, you can
even use a fallback Dial command, but its an unreasonable wait and chan_sip
knows sooner.

This is from before the wait was added:

  * SIP Call
1. Rx              INVITE / 101 INVITE / sip:6177 at 192.168.130.116:5060
2. NewChan         Channel SIP/192.168.10.10-0a0ee5f0 - from
42bcc700-1de1504f-9
db
3. TxResp          SIP/2.0 / 101 INVITE - 100 Trying
4. TxRespRel       SIP/2.0 / 101 INVITE - 200 OK
5. TxReqRel        REFER / 102 REFER - -UNKNOWN-
6. Hangup          Cause Unknown
7. SchedDestroy    32000 ms
8. CancelDestroy   
9. Rx              ACK / 101 ACK / sip:6177 at 192.168.130.116:5060
10. TxReqRel        BYE / 103 BYE - -UNKNOWN-
11. SchedDestroy    32000 ms
12. Rx              SIP/2.0 / 102 REFER / 405 Method Not Allowed
13. Ignore          Ignoring this retransmit
14. Rx              SIP/2.0 / 103 BYE / 200 OK
15. ReTx            1000 REFER sip:3002 at 192.168.10.10:5061 SIP/2.0
16. Rx              SIP/2.0 / 102 REFER / 481 Call Leg/Transaction Does
Not Exis
t
17. Ignore          Ignoring this retransmit
18. ReTx            2000 REFER sip:3002 at 192.168.10.10:5061 SIP/2.0
19. Rx              SIP/2.0 / 102 REFER / 481 Call Leg/Transaction Does
Not Exis
t
20. Ignore          Ignoring this retransmit
21. ReTx            4000 REFER sip:3002 at 192.168.10.10:5061 SIP/2.0
22. Rx              SIP/2.0 / 102 REFER / 481 Call Leg/Transaction Does
Not Exis
t
23. Ignore          Ignoring this retransmit
24. ReTx            4000 REFER sip:3002 at 192.168.10.10:5061 SIP/2.0
25. Rx              SIP/2.0 / 102 REFER / 481 Call Leg/Transaction Does
Not Exis 

Issue History 
Date Modified   Username       Field                    Change               
====================================================================== 
06-04-08 10:49  davidw         Note Added: 0087811                          
======================================================================




More information about the asterisk-bugs mailing list