Summary: | ASTERISK-15615: [patch] Attended transfer broken in 1.6.2.2 | ||
Reporter: | jamhed (jamhed) | Labels: | |
Date Opened: | 2010-02-12 08:51:26.000-0600 | Date Closed: | 2010-03-01 11:25:58.000-0600 |
Priority: | Blocker | Regression? | No |
Status: | Closed/Complete | Components: | PBX/General |
Versions: | Frequency of Occurrence | ||
Related Issues: | |||
Environment: | Attachments: | ( 0) bug16816.patch | |
Description: | 1. A calls B 2. B picks up and talks to A 3. B does attended transfer to C 4. C picks up, but B still hears ringing 5. A and B are connected again (AT timeout exceeded on console) ****** ADDITIONAL INFORMATION ****** -- Called 31 -- SIP/31-00000021 is ringing -- Local/31@dialplan_1-ab26;1 is ringing -- SIP/31-00000021 answered Local/31@dialplan_1-ab26;2 -- Local/31@dialplan_1-ab26;1 answered SIP/35-00000020 -- Started music on hold, class 'default', on SIP/31-00000021 -- <SIP/35-00000020> Playing 'pbx-transfer.gsm' (language 'en') -- Executing [2951111@dialplan_in_1:1] Set("Local/2951111@dialplan_in_1-a351;2", "CALLERID(num)=2919688") in new stack -- Executing [2951111@dialplan_in_1:2] Dial("Local/2951111@dialplan_in_1-a351;2", "SIP/2951111@2919688") in new stack == Using SIP RTP CoS mark 5 -- Called 2951111@2919688 -- SIP/2919688-00000022 is making progress passing it to Local/2951111@dialplan_in_1-a351;2 -- SIP/2919688-00000022 answered Local/2951111@dialplan_in_1-a351;2 [Feb 12 19:49:16] NOTICE[18352]: features.c:2211 feature_request_and_dial: We exceeded our AT-timeout -- Executing [h@dialplan_in_1:1] AGI("Local/2951111@dialplan_in_1-a351;2", "agi://127.0.0.1/notify/hangup?Local:2919688::ANSWER:Local/2951111@dialplan_in_1-a351;2") in new stack -- Stopped music on hold on SIP/31-00000021 -- <SIP/35-00000020> Playing 'beep.gsm' (language 'en') | ||
Comments: | By: Leif Madsen (lmadsen) 2010-02-12 09:05:15.000-0600 There are several known issues about this reported against 1.6.2.2 if you do a search for them. Please test 1.6.2.3-rc2 as these are likely already fixed. By: jamhed (jamhed) 2010-02-12 11:16:41.000-0600 Yeah, it was fixed in 1.6.2.3-rc2, thanks! By: Arno C (arno) 2010-02-12 18:42:56.000-0600 In branch 1.6.2 revision 246073 (246070) breaks it again. By: Sebastian Gutierrez (sum) 2010-02-16 15:36:58.000-0600 anyone following this issue? I think transfer is a basic critical feature. I can test any patch. By: Bryan Vyhmeister (brycv) 2010-02-21 09:51:28.000-0600 To confirm the other comment, this issue is observed in 1.6.2.4 but rolling back to 1.6.2.3-rc2 did fix it. By: Leif Madsen (lmadsen) 2010-02-22 14:43:33.000-0600 1.6.2.4 is actually a security release based on 1.6.2.2, which means 1.6.2.3-rc2 actually has fixes in it that 1.6.2.4 does not. Looks like I can close this issue as resolved. By: Leif Madsen (lmadsen) 2010-02-22 14:45:18.000-0600 Oh I just noticed someone posted that this was broken again in a revision number. I'm marking this as a blocker to be checked by a developer to determine what happened in the commit mentioned by arno. If anyone can test this with latest 1.6.2 branch to confirm if this is still an issue would help greatly. By: Leif Madsen (lmadsen) 2010-02-22 14:47:56.000-0600 Confirmed by jpeeler this is currently in progress and blocking the next version. By: frawd (frawd) 2010-02-25 16:55:28.000-0600 In latest 1.6.2 rev (248643) I have almost the same situation, except for the last step: 1. A calls B 2. B picks up and talks to A 3. B does attended transfer to C 4. As soon as C picks up B is immediately reconnected to A In my case B is already a Local channel with "bn" options, like so A calls B => A calls Local/xxxx@yyyy/bn. I'll post logs tomorrow if useful, but if I remember well when C picks up it is strangely softhanguped. By: Andrey Solovyev (corruptor) 2010-02-26 05:10:56.000-0600 1.6.0 rev 248953: situation is the same as frawd's After C picks up B I've got warning and then hangup [Feb 26 13:37:18] VERBOSE[1037] logger.c: -- SIP/1107-0000000d answered Local/1107@internal-56b0;2 [Feb 26 13:37:18] WARNING[1037] chan_local.c: New unhandled control frame added!!! and then B reconnected to A. By: frawd (frawd) 2010-02-26 16:17:39.000-0600 That's the log I wanted to paste... corruptor: is B a Local channel like in my case? By: Jeff Peeler (jpeeler) 2010-02-26 17:30:38.000-0600 Uploaded patch narrows modifications made dealing with local channels without losing the corrected behavior reported in 14992, testing is appreciated. By: jamhed (jamhed) 2010-02-27 00:39:02.000-0600 jpeeler: That works for me, I've manually patched Asterisk 1.6.2.3-rc2 because patch you've provided failed to apply to that source tree. I suppose it was meant to look like this: if (other) { if (f->frametype == AST_FRAME_CONTROL && f->subclass == AST_CONTROL_RINGING) { ast_setstate(other, AST_STATE_RINGING); } ast_queue_frame(other, f); ast_channel_unlock(other); } By: Andrey Solovyev (corruptor) 2010-02-27 04:40:02.000-0600 I've applied the patch to SVN 1.6.0 version and attended transfers work. By: Digium Subversion (svnbot) 2010-03-01 11:02:04.000-0600 Repository: asterisk Revision: 249536 U branches/1.4/channels/chan_local.c ------------------------------------------------------------------------ r249536 | jpeeler | 2010-03-01 11:02:03 -0600 (Mon, 01 Mar 2010) | 11 lines Modify queued frames from local channels to not set the other side to up In this case, attended transfers were broken due to ast_feature_request_and_dial detecting the channel being set to up before the answer frame could be read and therefore failing to mark the channel as ready. This fix is a regression fix for 244785, which should continue to work properly as well. (closes issue ASTERISK-15615) Reported by: jamhed Tested by: jamhed, corruptor ------------------------------------------------------------------------ http://svn.digium.com/view/asterisk?view=rev&revision=249536 By: Digium Subversion (svnbot) 2010-03-01 11:11:32.000-0600 Repository: asterisk Revision: 249538 _U trunk/ U trunk/channels/chan_local.c ------------------------------------------------------------------------ r249538 | jpeeler | 2010-03-01 11:11:31 -0600 (Mon, 01 Mar 2010) | 18 lines Merged revisions 249536 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r249536 | jpeeler | 2010-03-01 11:02:03 -0600 (Mon, 01 Mar 2010) | 11 lines Modify queued frames from local channels to not set the other side to up In this case, attended transfers were broken due to ast_feature_request_and_dial detecting the channel being set to up before the answer frame could be read and therefore failing to mark the channel as ready. This fix is a regression fix for 244785, which should continue to work properly as well. (closes issue ASTERISK-15615) Reported by: jamhed Tested by: jamhed, corruptor ........ ------------------------------------------------------------------------ http://svn.digium.com/view/asterisk?view=rev&revision=249538 By: Digium Subversion (svnbot) 2010-03-01 11:13:17.000-0600 Repository: asterisk Revision: 249539 _U branches/1.6.0/ U branches/1.6.0/channels/chan_local.c ------------------------------------------------------------------------ r249539 | jpeeler | 2010-03-01 11:13:16 -0600 (Mon, 01 Mar 2010) | 25 lines Merged revisions 249538 via svnmerge from https://origsvn.digium.com/svn/asterisk/trunk ................ r249538 | jpeeler | 2010-03-01 11:11:31 -0600 (Mon, 01 Mar 2010) | 18 lines Merged revisions 249536 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r249536 | jpeeler | 2010-03-01 11:02:03 -0600 (Mon, 01 Mar 2010) | 11 lines Modify queued frames from local channels to not set the other side to up In this case, attended transfers were broken due to ast_feature_request_and_dial detecting the channel being set to up before the answer frame could be read and therefore failing to mark the channel as ready. This fix is a regression fix for 244785, which should continue to work properly as well. (closes issue ASTERISK-15615) Reported by: jamhed Tested by: jamhed, corruptor ........ ................ ------------------------------------------------------------------------ http://svn.digium.com/view/asterisk?view=rev&revision=249539 By: Digium Subversion (svnbot) 2010-03-01 11:19:08.000-0600 Repository: asterisk Revision: 249548 _U branches/1.6.1/ U branches/1.6.1/channels/chan_local.c ------------------------------------------------------------------------ r249548 | jpeeler | 2010-03-01 11:19:07 -0600 (Mon, 01 Mar 2010) | 25 lines Merged revisions 249538 via svnmerge from https://origsvn.digium.com/svn/asterisk/trunk ................ r249538 | jpeeler | 2010-03-01 11:11:31 -0600 (Mon, 01 Mar 2010) | 18 lines Merged revisions 249536 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r249536 | jpeeler | 2010-03-01 11:02:03 -0600 (Mon, 01 Mar 2010) | 11 lines Modify queued frames from local channels to not set the other side to up In this case, attended transfers were broken due to ast_feature_request_and_dial detecting the channel being set to up before the answer frame could be read and therefore failing to mark the channel as ready. This fix is a regression fix for 244785, which should continue to work properly as well. (closes issue ASTERISK-15615) Reported by: jamhed Tested by: jamhed, corruptor ........ ................ ------------------------------------------------------------------------ http://svn.digium.com/view/asterisk?view=rev&revision=249548 By: Digium Subversion (svnbot) 2010-03-01 11:25:56.000-0600 Repository: asterisk Revision: 249580 _U branches/1.6.2/ U branches/1.6.2/channels/chan_local.c ------------------------------------------------------------------------ r249580 | jpeeler | 2010-03-01 11:25:55 -0600 (Mon, 01 Mar 2010) | 25 lines Merged revisions 249538 via svnmerge from https://origsvn.digium.com/svn/asterisk/trunk ................ r249538 | jpeeler | 2010-03-01 11:11:31 -0600 (Mon, 01 Mar 2010) | 18 lines Merged revisions 249536 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r249536 | jpeeler | 2010-03-01 11:02:03 -0600 (Mon, 01 Mar 2010) | 11 lines Modify queued frames from local channels to not set the other side to up In this case, attended transfers were broken due to ast_feature_request_and_dial detecting the channel being set to up before the answer frame could be read and therefore failing to mark the channel as ready. This fix is a regression fix for 244785, which should continue to work properly as well. (closes issue ASTERISK-15615) Reported by: jamhed Tested by: jamhed, corruptor ........ ................ ------------------------------------------------------------------------ http://svn.digium.com/view/asterisk?view=rev&revision=249580 |