[asterisk-bugs] [Asterisk 0017214]: Exceptionally long voice queuing when using chan\Local to playback Extensions

Asterisk Bug Tracker noreply at bugs.digium.com
Tue Apr 27 13:44:16 CDT 2010


A NOTE has been added to this issue. 
====================================================================== 
https://issues.asterisk.org/view.php?id=17214 
====================================================================== 
Reported By:                timothy055
Assigned To:                
====================================================================== 
Project:                    Asterisk
Issue ID:                   17214
Category:                   Channels/chan_local
Reproducibility:            always
Severity:                   minor
Priority:                   normal
Status:                     feedback
Asterisk Version:           1.6.2.6 
JIRA:                        
Regression:                 No 
Reviewboard Link:            
SVN Branch (only for SVN checkouts, not tarball releases): N/A 
SVN Revision (number only!):  
Request Review:              
====================================================================== 
Date Submitted:             2010-04-20 12:35 CDT
Last Modified:              2010-04-27 13:44 CDT
====================================================================== 
Summary:                    Exceptionally long voice queuing when using
chan\Local to playback Extensions
Description: 
I've been building a conferencing app leveraging AMI, local channels, and
the ConfBridge app that plays pre-recorded media into a conference.

To playback, I've been creating a local channel to a playback app
(carrying the file name as a channel variable) and then setting the
exten to the ConfBridge via AMI. However, I've noticed if I do enough
playbacks (especially one after the other) I get the following error:

WARNING[5918]: channel.c:1038 __ast_queue_frame: Exceptionally long
voice queue length queuing to Local/1 at playback-68a9;1

I'm suspicious it's the use
of local channels to originate the call. Since I'd think this would get
picked up with all the use of asterisk as an IVR.


======================================================================
Relationships       ID      Summary
----------------------------------------------------------------------
related to          0016507 [regression] heavy CPU usage when using...
related to          0015609 [patch] WARNING[23025]: channel.c:952 _...
related to          0017232 Remote dialplan execution stops randoml...
====================================================================== 

---------------------------------------------------------------------- 
 (0121023) timothy055 (reporter) - 2010-04-27 13:44
 https://issues.asterisk.org/view.php?id=17214#c121023 
---------------------------------------------------------------------- 
Sure thing.

First I have a context for creating ConfBridges

[confbridges]
exten => _XXXXX,1,ConfBridge(${EXTEN},q)
exten => _XXXX,1,ConfBridge(${EXTEN},q)
exten => _XXX,1,ConfBridge(${EXTEN},q)
exten => _XX,1,ConfBridge(${EXTEN},q)
exten => _X,1,ConfBridge(${EXTEN},q)

I then issue a originate commands (using asterisk java) to bridge in the
users that look as follows:

Channel: SIP/trunktodialtone/userextension
Context: confbridges
Exten: 1 (or any 1-5 digit number)
Priority: 1

Once the users are dialed into the conference I bridge in a playback
extension to play the file in another context:

[media]
exten => _PLAY.,1,Answer
exten => _PLAY.,2,Playback(${CALLERID(name)})
exten => _PLAY.,3,Hangup

exten => _REC.,1,Answer
exten => _REC.,2,Record(${CALLERID(name)}.ulaw,0)
exten => _REC.,3,Dial(SIP/asterisk1/${CALLERID(num)})

I would do so by setting the Callerid(Name) as the file name and using
another originate action that looked as follows:

Channel: Local/PLAY at media
Context: confbridges
Exten: 1 (or whatever the current confbridge was)
Priority: 1

This would result in erratic playback behavior where the media either
started a few seconds late or ended a few seconds early after a few
playbacks.

I tried a few variations.

1.  I put the playback context and extensions on a separate asterisk
instance and bridged them in over a SIP trunk. (suspecting it was a local
channel issue).
2.  Thinking that I was hammering the specific dialplan entry too many
times (PLAY in this instance) I modified the dialplan to read PLAY. and
issued a sequence number after the extension so the Channel became:
SIP/trunkToAsterisk2/PLAY1 (and 2 and so forth).

Both exhibited the same issues.  At times, it would even crash the initial
asterisk which was running the ConfBridges.

I tried a few different sequences:

1.  Briding in the users and playing back media, allowing it to complete,
and reinitiating.  (If I allowed enough time in between playbacks, this
would seldom cause issue).
2.  Playing the same file into the bridge multiple times.  This would work
very erratically.  (Sometimes you'd hear the file a different spacings, as
you'd expect, other times the file would play, then play again, or it
wouldn't play at all.)
3.  Playing the same or different files into different conference bridges.
 This fell somewhere in between, but on the whole worked erratically as
well.  Files would play, not play, or terminate early. 

Issue History 
Date Modified    Username       Field                    Change               
====================================================================== 
2010-04-27 13:44 timothy055     Note Added: 0121023                          
======================================================================




More information about the asterisk-bugs mailing list