[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