[Home]

Summary:ASTERISK-17874: [patch] [regression] Revision 315643 app_dial breaks ring groups
Reporter:Mike Spuhler (mspuhler)Labels:
Date Opened:2011-05-17 18:33:00Date Closed:2011-05-24 20:05:03
Priority:BlockerRegression?Yes
Status:Closed/CompleteComponents: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...