Summary: | ASTERISK-15876: C keeps ringing when hanging A and B after blind transfer using atxfer | ||
Reporter: | gelo (gelo) | Labels: | |
Date Opened: | 2010-03-26 04:35:32 | Date Closed: | 2011-01-18 12:17:08.000-0600 |
Priority: | Minor | Regression? | No |
Status: | Closed/Complete | Components: | Resources/res_features |
Versions: | Frequency of Occurrence | ||
Related Issues: | |||
Environment: | Attachments: | ( 0) 17069.debug.log ( 1) sip-debug-blonde-xfer-KO.txt | |
Description: | The scenario is as follows: 1. A calls B 2. B answers, presses *2 for atxfer 3. While C is ringing, B hangs up At this point, A and C are connected, so if C answers the call, A and C speak without any problem. But, if A hangs up while C is ringing, C keeps on ringing indefinitely ****** ADDITIONAL INFORMATION ****** I'm using attended transfers as blind transfers so that C gets B as CID, for billing purposes. | ||
Comments: | By: gelo (gelo) 2010-03-26 04:52:18 I forgot to point out that it's a SIP only scenario. Haven't tested if this happens also with other technologies. By: Paul Belanger (pabelanger) 2010-03-26 09:35:40 Your bug report lacks information needed to investigate this issue, you will need to provide debugging output. Please review the bug guidelines (http://www.asterisk.org/developers/bug-guidelines) for more information. By: Leif Madsen (lmadsen) 2010-03-26 13:27:38 The term for this type of transfer is "blonde transfer". As mentioned by pabelanger you'll need to follow the bug guidelines. You'll need at the very least a complete SIP console trace. By: Francesco Romano (francesco_r) 2010-03-27 10:43:42 I can confirm this bug using only the Builtin Feature code (*2). Using the native sip atxfer between two hard phones, "blonde transfer" works well. By: gelo (gelo) 2010-03-29 03:21:26 I did read the bug guidelines, but didn't upload a SIP trace, as I don't think it's a SIP problem I've uploaded a console trace, as requested. Please let me know if you need anything else. A = 1236 (10.1.3.15) B = 1234 (10.1.3.16) C = 1235 (10.1.2.16:5061) Asterisk IP = 10.1.2.130 By: Paul Belanger (pabelanger) 2010-04-01 13:13:46 I can confirm this, I just tested it locally. I will try and upload a debug log shortly. By: Paul Belanger (pabelanger) 2010-04-01 13:36:33 Attached debug log. [Apr 1 18:28:15] DEBUG[30267] channel.c: Soft-Hanging up channel 'Local/3002@from-sip-1391,2' Is when I manually hung up phone C. By: Amilcar S Silvestre (amilcar) 2010-04-27 04:35:28 Any news on this? I think it's a blocker for 1.4.31. By: Paul Belanger (pabelanger) 2010-04-27 08:56:41 I don't see this as a block for 1.4.31. The issue is in the queue and will get looked at when a developer resource becomes available. By: grecco (grecco) 2010-07-06 15:36:10 Any fix? Is there a patch? By: Leif Madsen (lmadsen) 2010-07-06 17:34:00 Patches would be attached to this issue at the time they were developed. By: grecco (grecco) 2010-08-24 14:43:47 Good afternoon! Some forecast to fix the problem? Grateful, By: Stefan Schmidt (schmidts) 2010-08-25 13:26:29 have a look at the related issue 0017192 there is allready a review request which will fix the problem in issue 0017192. maybe this could help you too. By: Digium Subversion (svnbot) 2011-01-18 12:04:40.000-0600 Repository: asterisk Revision: 302172 U branches/1.4/res/res_features.c ------------------------------------------------------------------------ r302172 | rmudgett | 2011-01-18 12:04:37 -0600 (Tue, 18 Jan 2011) | 88 lines Issues with DTMF triggered attended transfers. Issue ASTERISK-16684 1) A calls B. B answers. 2) B using DTMF dial *2 (code in features.conf for attended transfer). 3) A hears MOH. B dial number C 4) C ringing. A hears MOH. 5) B hangup. A still hears MOH. C ringing. 6) A hangup. C still ringing until "atxfernoanswertimeout" expires. For v1.4 C will ring forever until C answers the dead line. (Issue ASTERISK-15876) Problem: When A and B hangup, C is still ringing. Issue ASTERISK-17040 SIP call limit of B is 1 1. A call B, B answered 2. B *2(atxfer) call C 3. B hangup, C ringing 4. Timeout waiting for C to answer 5. Recall to B fails because B has reached its call limit. Because B reached its call limit, it cannot do anything until the transfer it started completes. Issue ASTERISK-16041 Same scenario as issue 18395 but party B is an FXS port. Party B cannot do anything until the transfer it started completes. If B goes back off hook before C answers, B hears ringback instead of the expected dialtone. ********** Note for the issue ASTERISK-16041 and ASTERISK-17040 fix: DTMF attended transfer works within the channel bridge. Unfortunately, when either party A or B in the channel bridge hangs up, that channel is not completely hung up until the transfer completes. This is a real problem depending upon the channel technology involved. For chan_dahdi, the channel is crippled until the hangup is complete. Either the channel is not useable (analog) or the protocol disconnect messages are held up (PRI/BRI/SS7) and the media is not released. For chan_sip, a call limit of one is going to block that endpoint from any further calls until the hangup is complete. For party A this is a minor problem. The party A channel will only be in this condition while party B is dialing and when party B and C are conferring. The conversation between party B and C is expected to be a short one. Party B is either asking a question of party C or announcing party A. Also party A does not have much incentive to hangup at this point. For party B this can be a major problem during a blonde transfer. (A blonde transfer is our term for an attended transfer that is converted into a blind transfer. :)) Party B could be the operator. When party B hangs up, he assumes that he is out of the original call entirely. The party B channel will be in this condition while party C is ringing, while attempting to recall party B, and while waiting between call attempts. WARNING: The ATXFER_NULL_TECH conditional is a hack to fix the problem. It will replace the party B channel technology with a NULL channel driver to complete hanging up the party B channel technology. The consequences of this code is that the 'h' extension will not be able to access any channel technology specific information like SIP statistics for the call. ATXFER_NULL_TECH is not defined by default. ********** (closes issue ASTERISK-16684) Reported by: iskatel Tested by: rmudgett JIRA SWP-2246 (closes issue ASTERISK-15876) Reported by: gelo Tested by: rmudgett JIRA SWP-1192 (closes issue ASTERISK-17040) Reported by: shihchuan Tested by: rmudgett (closes issue ASTERISK-16041) Reported by: grecco Tested by: rmudgett Review: https://reviewboard.asterisk.org/r/1047/ ------------------------------------------------------------------------ http://svn.digium.com/view/asterisk?view=rev&revision=302172 By: Digium Subversion (svnbot) 2011-01-18 12:07:17.000-0600 Repository: asterisk Revision: 302173 _U branches/1.6.2/ U branches/1.6.2/main/features.c ------------------------------------------------------------------------ r302173 | rmudgett | 2011-01-18 12:07:16 -0600 (Tue, 18 Jan 2011) | 95 lines Merged revisions 302172 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r302172 | rmudgett | 2011-01-18 12:04:36 -0600 (Tue, 18 Jan 2011) | 88 lines Issues with DTMF triggered attended transfers. Issue ASTERISK-16684 1) A calls B. B answers. 2) B using DTMF dial *2 (code in features.conf for attended transfer). 3) A hears MOH. B dial number C 4) C ringing. A hears MOH. 5) B hangup. A still hears MOH. C ringing. 6) A hangup. C still ringing until "atxfernoanswertimeout" expires. For v1.4 C will ring forever until C answers the dead line. (Issue ASTERISK-15876) Problem: When A and B hangup, C is still ringing. Issue ASTERISK-17040 SIP call limit of B is 1 1. A call B, B answered 2. B *2(atxfer) call C 3. B hangup, C ringing 4. Timeout waiting for C to answer 5. Recall to B fails because B has reached its call limit. Because B reached its call limit, it cannot do anything until the transfer it started completes. Issue ASTERISK-16041 Same scenario as issue 18395 but party B is an FXS port. Party B cannot do anything until the transfer it started completes. If B goes back off hook before C answers, B hears ringback instead of the expected dialtone. ********** Note for the issue ASTERISK-16041 and ASTERISK-17040 fix: DTMF attended transfer works within the channel bridge. Unfortunately, when either party A or B in the channel bridge hangs up, that channel is not completely hung up until the transfer completes. This is a real problem depending upon the channel technology involved. For chan_dahdi, the channel is crippled until the hangup is complete. Either the channel is not useable (analog) or the protocol disconnect messages are held up (PRI/BRI/SS7) and the media is not released. For chan_sip, a call limit of one is going to block that endpoint from any further calls until the hangup is complete. For party A this is a minor problem. The party A channel will only be in this condition while party B is dialing and when party B and C are conferring. The conversation between party B and C is expected to be a short one. Party B is either asking a question of party C or announcing party A. Also party A does not have much incentive to hangup at this point. For party B this can be a major problem during a blonde transfer. (A blonde transfer is our term for an attended transfer that is converted into a blind transfer. :)) Party B could be the operator. When party B hangs up, he assumes that he is out of the original call entirely. The party B channel will be in this condition while party C is ringing, while attempting to recall party B, and while waiting between call attempts. WARNING: The ATXFER_NULL_TECH conditional is a hack to fix the problem. It will replace the party B channel technology with a NULL channel driver to complete hanging up the party B channel technology. The consequences of this code is that the 'h' extension will not be able to access any channel technology specific information like SIP statistics for the call. ATXFER_NULL_TECH is not defined by default. ********** (closes issue ASTERISK-16684) Reported by: iskatel Tested by: rmudgett JIRA SWP-2246 (closes issue ASTERISK-15876) Reported by: gelo Tested by: rmudgett JIRA SWP-1192 (closes issue ASTERISK-17040) Reported by: shihchuan Tested by: rmudgett (closes issue ASTERISK-16041) Reported by: grecco Tested by: rmudgett Review: https://reviewboard.asterisk.org/r/1047/ ........ ------------------------------------------------------------------------ http://svn.digium.com/view/asterisk?view=rev&revision=302173 By: Digium Subversion (svnbot) 2011-01-18 12:11:45.000-0600 Repository: asterisk Revision: 302174 _U branches/1.8/ U branches/1.8/main/features.c ------------------------------------------------------------------------ r302174 | rmudgett | 2011-01-18 12:11:44 -0600 (Tue, 18 Jan 2011) | 102 lines Merged revisions 302173 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.6.2 ................ r302173 | rmudgett | 2011-01-18 12:07:15 -0600 (Tue, 18 Jan 2011) | 95 lines Merged revisions 302172 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r302172 | rmudgett | 2011-01-18 12:04:36 -0600 (Tue, 18 Jan 2011) | 88 lines Issues with DTMF triggered attended transfers. Issue ASTERISK-16684 1) A calls B. B answers. 2) B using DTMF dial *2 (code in features.conf for attended transfer). 3) A hears MOH. B dial number C 4) C ringing. A hears MOH. 5) B hangup. A still hears MOH. C ringing. 6) A hangup. C still ringing until "atxfernoanswertimeout" expires. For v1.4 C will ring forever until C answers the dead line. (Issue ASTERISK-15876) Problem: When A and B hangup, C is still ringing. Issue ASTERISK-17040 SIP call limit of B is 1 1. A call B, B answered 2. B *2(atxfer) call C 3. B hangup, C ringing 4. Timeout waiting for C to answer 5. Recall to B fails because B has reached its call limit. Because B reached its call limit, it cannot do anything until the transfer it started completes. Issue ASTERISK-16041 Same scenario as issue 18395 but party B is an FXS port. Party B cannot do anything until the transfer it started completes. If B goes back off hook before C answers, B hears ringback instead of the expected dialtone. ********** Note for the issue ASTERISK-16041 and ASTERISK-17040 fix: DTMF attended transfer works within the channel bridge. Unfortunately, when either party A or B in the channel bridge hangs up, that channel is not completely hung up until the transfer completes. This is a real problem depending upon the channel technology involved. For chan_dahdi, the channel is crippled until the hangup is complete. Either the channel is not useable (analog) or the protocol disconnect messages are held up (PRI/BRI/SS7) and the media is not released. For chan_sip, a call limit of one is going to block that endpoint from any further calls until the hangup is complete. For party A this is a minor problem. The party A channel will only be in this condition while party B is dialing and when party B and C are conferring. The conversation between party B and C is expected to be a short one. Party B is either asking a question of party C or announcing party A. Also party A does not have much incentive to hangup at this point. For party B this can be a major problem during a blonde transfer. (A blonde transfer is our term for an attended transfer that is converted into a blind transfer. :)) Party B could be the operator. When party B hangs up, he assumes that he is out of the original call entirely. The party B channel will be in this condition while party C is ringing, while attempting to recall party B, and while waiting between call attempts. WARNING: The ATXFER_NULL_TECH conditional is a hack to fix the problem. It will replace the party B channel technology with a NULL channel driver to complete hanging up the party B channel technology. The consequences of this code is that the 'h' extension will not be able to access any channel technology specific information like SIP statistics for the call. ATXFER_NULL_TECH is not defined by default. ********** (closes issue ASTERISK-16684) Reported by: iskatel Tested by: rmudgett JIRA SWP-2246 (closes issue ASTERISK-15876) Reported by: gelo Tested by: rmudgett JIRA SWP-1192 (closes issue ASTERISK-17040) Reported by: shihchuan Tested by: rmudgett (closes issue ASTERISK-16041) Reported by: grecco Tested by: rmudgett Review: https://reviewboard.asterisk.org/r/1047/ ........ ................ ------------------------------------------------------------------------ http://svn.digium.com/view/asterisk?view=rev&revision=302174 By: Digium Subversion (svnbot) 2011-01-18 12:17:06.000-0600 Repository: asterisk Revision: 302178 _U trunk/ U trunk/main/features.c ------------------------------------------------------------------------ r302178 | rmudgett | 2011-01-18 12:17:05 -0600 (Tue, 18 Jan 2011) | 109 lines Merged revisions 302174 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.8 ................ r302174 | rmudgett | 2011-01-18 12:11:43 -0600 (Tue, 18 Jan 2011) | 102 lines Merged revisions 302173 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.6.2 ................ r302173 | rmudgett | 2011-01-18 12:07:15 -0600 (Tue, 18 Jan 2011) | 95 lines Merged revisions 302172 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r302172 | rmudgett | 2011-01-18 12:04:36 -0600 (Tue, 18 Jan 2011) | 88 lines Issues with DTMF triggered attended transfers. Issue ASTERISK-16684 1) A calls B. B answers. 2) B using DTMF dial *2 (code in features.conf for attended transfer). 3) A hears MOH. B dial number C 4) C ringing. A hears MOH. 5) B hangup. A still hears MOH. C ringing. 6) A hangup. C still ringing until "atxfernoanswertimeout" expires. For v1.4 C will ring forever until C answers the dead line. (Issue ASTERISK-15876) Problem: When A and B hangup, C is still ringing. Issue ASTERISK-17040 SIP call limit of B is 1 1. A call B, B answered 2. B *2(atxfer) call C 3. B hangup, C ringing 4. Timeout waiting for C to answer 5. Recall to B fails because B has reached its call limit. Because B reached its call limit, it cannot do anything until the transfer it started completes. Issue ASTERISK-16041 Same scenario as issue 18395 but party B is an FXS port. Party B cannot do anything until the transfer it started completes. If B goes back off hook before C answers, B hears ringback instead of the expected dialtone. ********** Note for the issue ASTERISK-16041 and ASTERISK-17040 fix: DTMF attended transfer works within the channel bridge. Unfortunately, when either party A or B in the channel bridge hangs up, that channel is not completely hung up until the transfer completes. This is a real problem depending upon the channel technology involved. For chan_dahdi, the channel is crippled until the hangup is complete. Either the channel is not useable (analog) or the protocol disconnect messages are held up (PRI/BRI/SS7) and the media is not released. For chan_sip, a call limit of one is going to block that endpoint from any further calls until the hangup is complete. For party A this is a minor problem. The party A channel will only be in this condition while party B is dialing and when party B and C are conferring. The conversation between party B and C is expected to be a short one. Party B is either asking a question of party C or announcing party A. Also party A does not have much incentive to hangup at this point. For party B this can be a major problem during a blonde transfer. (A blonde transfer is our term for an attended transfer that is converted into a blind transfer. :)) Party B could be the operator. When party B hangs up, he assumes that he is out of the original call entirely. The party B channel will be in this condition while party C is ringing, while attempting to recall party B, and while waiting between call attempts. WARNING: The ATXFER_NULL_TECH conditional is a hack to fix the problem. It will replace the party B channel technology with a NULL channel driver to complete hanging up the party B channel technology. The consequences of this code is that the 'h' extension will not be able to access any channel technology specific information like SIP statistics for the call. ATXFER_NULL_TECH is not defined by default. ********** (closes issue ASTERISK-16684) Reported by: iskatel Tested by: rmudgett JIRA SWP-2246 (closes issue ASTERISK-15876) Reported by: gelo Tested by: rmudgett JIRA SWP-1192 (closes issue ASTERISK-17040) Reported by: shihchuan Tested by: rmudgett (closes issue ASTERISK-16041) Reported by: grecco Tested by: rmudgett Review: https://reviewboard.asterisk.org/r/1047/ ........ ................ ................ ------------------------------------------------------------------------ http://svn.digium.com/view/asterisk?view=rev&revision=302178 |