Summary: | ASTERISK-17874: [patch] [regression] Revision 315643 app_dial breaks ring groups | ||
Reporter: | Mike Spuhler (mspuhler) | Labels: | |
Date Opened: | 2011-05-17 18:33:00 | Date Closed: | 2011-05-24 20:05:03 |
Priority: | Blocker | Regression? | Yes |
Status: | Closed/Complete | Components: | Applications/app_dial |
Versions: | 1.6.2.18 | Frequency of Occurrence | |
Related Issues: | |||
Environment: | Attachments: | ( 0) issue_17874_appdial_breaks_ringgroups-1.4.42.diff ( 1) issue_19311_no_answer.diff ( 2) ringgroup-cli.txt | |
Description: | This is my first attempt at reporting an issue, so bear with me. Hopefully I can explain the issue clearly. My problem started appearing after Revision 315643 of app_dial. In fact, if I put the code back in the file that was deleted, the issue is resolved. However, the code was deleted to address a bug. To summarize my problem. I have ring group 600 which contains ext 6001. If 6001 doesn't answer after 20 seconds, I have it set to go to another ring group 601 which contains 6001, 6002 and 6003. Prior to 315643, ext 6001 would continue to ring as part when calls would go to ring group 601 after ringing 600. However, after 315643, 6001 would only ring 20 seconds as part of ring group 600. Extensions 6002 and 6003 would only ring as part of ring group 601. The log indicates: [2011-05-17 16:08:03] WARNING[5047] app_dial.c: Skipping dialing interface 'SIP/6001' again since it has already been dialed | ||
Comments: | By: Mike Spuhler (mspuhler) 2011-05-17 19:04:57 I made a slight error above. SVN revision 315258 does not have the issue. Subsequent SVN versions, including 318548 DOES have the issue. By: Michael L. Young (elguero) 2011-05-18 13:36:38 Give that patch a try. What is happening is that a list is created of what has been dialed. The code to clear out that list was moved over to the bridging code to help take care of forwarding loops. By moving this code, what occurs now is that when a call is not answered (timeout, rejected, busy), there was no bridge created and therefore that list is never cleared out. So, when you try to call the same interface again as your next priority in the dial plan, the code sees that this interface already was called and doesn't try to call it again. Not sure if this is the right approach but it seemed to take care of your issue with some testing that I did. Instead of putting back the prior code, I moved it to the area that will only clear the list out if no one picked up the call. By: Leif Madsen (lmadsen) 2011-05-18 14:37:05 r315596 | twilson | 2011-04-26 14:16:10 -0700 (Tue, 26 Apr 2011) | 18 lines Allow transfer loops without allowing forwarding loops We try to avoid the situation where two phones may be forwarded to each other causing an infinite loop by storing each dialed interface in a channel datastore and checking the list before dialing out. This works, but currently breaks situations like A calls B, A transfers B to C, B transfers C to A, and A transfers C to B. Since human interaction is happening here and not an automated forwarding loop, it should be allowed. This patch removes the dialed_interfaces datastore when a call is bridged (a suggestion from the brilliant mmichelson). If a call is being bridged, it should be safe to assume that we aren't stuck in a loop. Since we are now handling this is the bridge code, the previous attempts at handling it in app_dial and app_queue are removed. Review: https://reviewboard.asterisk.org/r/1195/ By: Digium Subversion (svnbot) 2011-05-18 14:58:11 Repository: asterisk Revision: 319527 U branches/1.4/apps/app_dial.c ------------------------------------------------------------------------ r319527 | twilson | 2011-05-18 14:56:08 -0500 (Wed, 18 May 2011) | 10 lines Fix app_dial ring groups Revert part of r315643. We need to remove the datastore here as well. The code in bridging code will catch anything that app_dial might miss. (closes issue ASTERISK-17874) Reported by: mspuhler Patches: issue_19311_no_answer.diff uploaded by elguero (license 37) ------------------------------------------------------------------------ http://svn.digium.com/view/asterisk?view=rev&revision=319527 By: Digium Subversion (svnbot) 2011-05-18 15:02:07 Repository: asterisk Revision: 319528 _U branches/1.6.2/ U branches/1.6.2/apps/app_dial.c ------------------------------------------------------------------------ r319528 | twilson | 2011-05-18 15:02:07 -0500 (Wed, 18 May 2011) | 17 lines Merged revisions 319527 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r319527 | twilson | 2011-05-18 12:56:08 -0700 (Wed, 18 May 2011) | 10 lines Fix app_dial ring groups Revert part of r315643. We need to remove the datastore here as well. The code in bridging code will catch anything that app_dial might miss. (closes issue ASTERISK-17874) Reported by: mspuhler Patches: issue_19311_no_answer.diff uploaded by elguero (license 37) ........ ------------------------------------------------------------------------ http://svn.digium.com/view/asterisk?view=rev&revision=319528 By: Digium Subversion (svnbot) 2011-05-18 15:05:35 Repository: asterisk Revision: 319529 _U branches/1.8/ U branches/1.8/apps/app_dial.c ------------------------------------------------------------------------ r319529 | twilson | 2011-05-18 15:05:34 -0500 (Wed, 18 May 2011) | 24 lines Merged revisions 319528 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.6.2 ................ r319528 | twilson | 2011-05-18 13:02:06 -0700 (Wed, 18 May 2011) | 17 lines Merged revisions 319527 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r319527 | twilson | 2011-05-18 12:56:08 -0700 (Wed, 18 May 2011) | 10 lines Fix app_dial ring groups Revert part of r315643. We need to remove the datastore here as well. The code in bridging code will catch anything that app_dial might miss. (closes issue ASTERISK-17874) Reported by: mspuhler Patches: issue_19311_no_answer.diff uploaded by elguero (license 37) ........ ................ ------------------------------------------------------------------------ http://svn.digium.com/view/asterisk?view=rev&revision=319529 By: Digium Subversion (svnbot) 2011-05-18 15:07:08 Repository: asterisk Revision: 319530 _U trunk/ U trunk/apps/app_dial.c ------------------------------------------------------------------------ r319530 | twilson | 2011-05-18 15:07:08 -0500 (Wed, 18 May 2011) | 31 lines Merged revisions 319529 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.8 ................ r319529 | twilson | 2011-05-18 13:05:34 -0700 (Wed, 18 May 2011) | 24 lines Merged revisions 319528 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.6.2 ................ r319528 | twilson | 2011-05-18 13:02:06 -0700 (Wed, 18 May 2011) | 17 lines Merged revisions 319527 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r319527 | twilson | 2011-05-18 12:56:08 -0700 (Wed, 18 May 2011) | 10 lines Fix app_dial ring groups Revert part of r315643. We need to remove the datastore here as well. The code in bridging code will catch anything that app_dial might miss. (closes issue ASTERISK-17874) Reported by: mspuhler Patches: issue_19311_no_answer.diff uploaded by elguero (license 37) ........ ................ ................ ------------------------------------------------------------------------ http://svn.digium.com/view/asterisk?view=rev&revision=319530 By: Jeff LaCoursiere (lacoursj) 2011-06-13 17:09:27.347-0500 Here is a patch for 1.4.42rc1 that fixed the problem for me... |