Summary: | ASTERISK-16041: atxfer *2 channel dahdi FXS no hangup | ||
Reporter: | grecco (grecco) | Labels: | |
Date Opened: | 2010-05-01 17:06:20 | Date Closed: | 2011-01-18 12:17:10.000-0600 |
Priority: | Major | Regression? | No |
Status: | Closed/Complete | Components: | Channels/chan_dahdi |
Versions: | Frequency of Occurrence | ||
Related Issues: | |||
Environment: | Attachments: | ( 0) debug.txt | |
Description: | Attended transfer *2 (feature atxfer=*2), channel dahdi port FXS. A call B B aswered A B *2 (atxfer) call C C rining (no aswer) B hangup B it keeps calling, getting blocked ****** ADDITIONAL INFORMATION ****** Tested? asterisk-1.4.30 asterisk-1.6.2.6 asterisk-1.6.2.7-rc3 | ||
Comments: | By: Paul Belanger (pabelanger) 2010-05-03 09:29:27 We are lacking information here (see below). Are all the phones DAHDI? We will need traces, debug output and dialplans. http://svn.digium.com/svn/asterisk/trunk/doc/HOWTO_collect_debug_information.txt --- Thank you for taking the time to report this bug and helping to make Asterisk better. Unfortunately, we cannot work on this bug because your description did not include enough information. You may find it helpful to read the Asterisk Issue Guidelines http://www.asterisk.org/developers/bug-guidelines. We\'d be grateful if you would then provide a more complete description of the problem. At a minimum, we need: 1. the specific steps or actions you took that caused you to encounter the problem, 2. the behavior you expected, and 3. the behavior you actually encountered (in as much detail as possible). This likely includes output from the console with debug level logging, a SIP trace (if this is SIP related), and configuration information such as dialplan (e.g. extensions.conf) and channel configuration (e.g. sip.conf). Thanks! By: grecco (grecco) 2010-05-03 20:56:53 Comments: I got the call, port FXO number 4: ================================== [May 3 21:12:07] DEBUG[3079] chan_dahdi.c: Monitor doohicky got event Polarity Reversal on channel 4 [May 3 21:12:07] VERBOSE[3079] logger.c: == Starting post polarity CID detection on channel 4 [May 3 21:12:07] DEBUG[3079] dsp.c: dsp busy pattern set to 0,0 [May 3 21:12:07] VERBOSE[3116] logger.c: -- Starting simple switch on 'DAHDI/4-1' [May 3 21:12:07] DEBUG[3116] chan_dahdi.c: Receiving DTMF cid on channel DAHDI/4-1 [May 3 21:12:07] DEBUG[3116] chan_dahdi.c: DTMF digit: A on DAHDI/4-1 Answered port 3 FXS: ==================== [May 3 21:12:14] DEBUG[3025] devicestate.c: Changing state for DAHDI/3 - state 2 (In use) [May 3 21:12:14] VERBOSE[3116] logger.c: -- DAHDI/3-1 answered DAHDI/4-1 [May 3 21:12:14] DEBUG[3073] app_queue.c: Device 'DAHDI/3' changed to state '2' (In use) Transfer call * (atxfer) ======================== [May 3 21:12:17] DEBUG[3116] chan_dahdi.c: DTMF digit: * on DAHDI/3-1 [May 3 21:12:17] DTMF[3116] channel.c: DTMF end '*' received on DAHDI/3-1, duration 0 ms [May 3 21:12:17] DTMF[3116] channel.c: DTMF begin emulation of '*' with duration 100 queued on DAHDI/3-1 [May 3 21:12:17] DEBUG[3116] channel.c: Got DTMF begin on channel (DAHDI/3-1) [May 3 21:12:17] DEBUG[3116] chan_dahdi.c: Requested indication 20 on channel DAHDI/4-1 [May 3 21:12:17] DEBUG[3116] chan_dahdi.c: Requested indication 20 on channel DAHDI/3-1 [May 3 21:12:17] DEBUG[3116] channel.c: Bridge stops bridging channels DAHDI/4-1 and DAHDI/3-1 [May 3 21:12:17] DEBUG[3116] chan_dahdi.c: Requested indication 20 on channel DAHDI/4-1 [May 3 21:12:17] DEBUG[3116] chan_dahdi.c: Requested indication 20 on channel DAHDI/3-1 In the 2 ringing, I put the phone down (dahdi/3). No running the hangup of channel 3 (dahdi/3). Locking (dahdi/3) up the call by the channel 2 (Dahdi-2). occurs in versions of Asterisk: asterisk-1.4.30; asterisk-1.4.31-rc2; asterisk-1.6.2.6; asterisk-1.6.2.7-rc3; If needed, I can send more information. By: Francesco Romano (francesco_r) 2010-05-04 10:41:44 I think that is the same bug of ASTERISK-1685096. By: Paul Belanger (pabelanger) 2010-05-04 10:45:20 grecco: The debug information looks good, but I am having a hard time understanding the issue. --- A call B B answered A B *2 (atxfer) call C C ringing (no answer) B hangup B it keeps calling, getting blocked --- I don't understand 'it keeps calling, getting blocked'. Are you saying when you hang up B, Asterisk is not detecting the hangup and C keeps ringing? By: Paul Belanger (pabelanger) 2010-05-04 13:24:36 francesco_r: I believe so too, I just wanted to confirm with the reporter. By: grecco (grecco) 2010-05-04 14:46:28 Exactly, A call B B answered A B *2 (atxfer) call C C ringing (no answer) B hangup (I put on the hook),I am picking up the phone. I can hear the ringing (B ringing C). Correct, disconnect B (free) and connect A call (ringing) C. Thread C (no answer), call (ringing) B. Sorry, my English is google. I am Brazilian. By: Paul Belanger (pabelanger) 2010-05-04 15:03:32 Going to close this bug as a duplicate. Please follow along with ASTERISK-1685096. By: Richard Mudgett (rmudgett) 2010-12-02 21:38:54.000-0600 Please follow issue ASTERISK-17040 as it has the same root cause as this issue. Issue ASTERISK-15876 is not a duplicate of this issue. By: Digium Subversion (svnbot) 2011-01-18 12:04:45.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:20.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:48.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:09.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 |