[asterisk-bugs] [Asterisk 0011024]: Calls Looping back into call groups cause confusion or overload.

noreply at bugs.digium.com noreply at bugs.digium.com
Tue Oct 30 07:53:23 CDT 2007


A NOTE has been added to this issue. 
====================================================================== 
http://bugs.digium.com/view.php?id=11024 
====================================================================== 
Reported By:                ruffle
Assigned To:                putnopvut
====================================================================== 
Project:                    Asterisk
Issue ID:                   11024
Category:                   Core/PBX
Reproducibility:            always
Severity:                   major
Priority:                   normal
Status:                     ready for testing
Asterisk Version:           1.4.13  
SVN Branch (only for SVN checkouts, not tarball releases): N/A  
SVN Revision (number only!):  
Disclaimer on File?:        N/A 
Request Review:              
====================================================================== 
Date Submitted:             10-18-2007 08:11 CDT
Last Modified:              10-30-2007 07:53 CDT
====================================================================== 
Summary:                    Calls Looping back into call groups cause confusion
or overload.
Description: 
If one has a call or ringing group implemented by a Dial command:

exten => 140,1,Dial(SIP/112&SIP/113&SIP/116)

and one of the SIP phones in that Dial command sets call forwarding to the
group exten (ie SIP/113 sets call forward always to 140), then any calls to
the group (140) results in multiple calls taking place that (with enough
phones involved) can bring the entire Asterisk system to its knees.

There are similar problems with queues getting deluged by these looping
calls.

====================================================================== 

---------------------------------------------------------------------- 
 ruffle - 10-30-07 07:53  
---------------------------------------------------------------------- 
Well it's kind of an improvement :-)   I've been testing on a smallish
system before I unleash things on a 100 user site - kind of glad I did :-;

Here's a simplified Dialplan.

exten => 202,1,Dial("Sip/116&Sip/112&Sip/114",20,wkt)
exten => 202,n,NoOp(DIALSTATUS was ${DIALSTATUS})
exten => 202,n,Playback(why-no-answer-mystery)
exten => 202,n,Hangup

With no SIP forwarding set, dialing 202 from a.n.other phone rings Sip
Phones 116, 112 & 114 as expected for 20 seconds then the caller hears the
"why-no-answer-mystery" recording. Great; that's as expected.

Setting SIP/116 to "Call Forward Always" to 202 and calling 202 from
a.n.other phone, causes the Dial to generate 'half' a ring on the phones,
the DIALSTATUS of the original call returns "CHANUNAVAIL" and the caller
gets the "why-no-answer-mystery" announcement.

That's not good :-(

Here's the console output from such a call (Sip/116 forwarding to 202):


asterisk*CLI> set verbose 10
Verbosity was 0 and is now 10
    -- Executing [202 at from-sip:1] Dial("SIP/117-b4c32fd0",
""Sip/116&Sip/112&Sip/114"|20|wkt") in new stack
 Extension Changed 116 new state Ringing for Notify User 112
    -- Called 116
    -- Called 112
 Extension Changed 114 new state Ringing for Notify User 113
 Extension Changed 114 new state Ringing for Notify User 112
    -- Called 114
    -- Got SIP response 302 "Moved Temporarily" back from 192.168.1.23
    -- Now forwarding SIP/117-b4c32fd0 to 'Local/202 at from-sip' (thanks to
SIP/116-00719fd0)
 Extension Changed 116 new state Idle for Notify User 112
    -- Executing [202 at from-sip:1] Dial("Local/202 at from-sip-dc77,2",
""Sip/116&Sip/112&Sip/114"|20|wkt") in new stack
  == Everyone is busy/congested at this time (0:0/0/0)
    -- Executing [202 at from-sip:2] NoOp("Local/202 at from-sip-dc77,2",
"DIALSTATUS was CHANUNAVAIL") in new stack
    -- Executing [202 at from-sip:3] Playback("Local/202 at from-sip-dc77,2",
"why-no-answer-mystery") in new stack
    -- Local/202 at from-sip-dc77,1 answered SIP/117-b4c32fd0
    -- <Local/202 at from-sip-dc77,2> Playing 'why-no-answer-mystery'
(language 'en')
 Extension Changed 114 new state InUse for Notify User 113
 Extension Changed 114 new state InUse for Notify User 112
    -- Executing [202 at from-sip:4] Hangup("Local/202 at from-sip-dc77,2", "")
in new stack
  == Spawn extension (from-sip, 202, 4) exited non-zero on
'Local/202 at from-sip-dc77,2'
  == Spawn extension (from-sip, 202, 1) exited non-zero on
'SIP/117-b4c32fd0'
asterisk*CLI> set verbose 0
Verbosity is now OFF

(the subscription notifications got upset as you can see; 114 was not
InUse)


I also did some playing with Queues with this forwarding in place and
noticed that each time the queue made it's periodic announcement, the
"calls taken" count for SIP/116 (as shown by CLI> show queues) incremented
by one. I guess that was caused by each iteration through the forwarding
loop.

So, even though these changes stop the 'call storms' it's not a fix. Sorry
:-( 

Issue History 
Date Modified   Username       Field                    Change               
====================================================================== 
10-30-07 07:53  ruffle         Note Added: 0072710                          
======================================================================




More information about the asterisk-bugs mailing list