[asterisk-gui] executecommand script
David Kerr
David at kerr.net
Fri Dec 19 09:55:32 CST 2008
Doesn't seam to be related to the command... I have one channel open
on the 'echo' command you use to test that you have write permission
the the config directory! When I get home I'll capture some asterisk
console and linux process info for you to see what I mean.
David.
On 12/18/08, Brandon Kruse <bkruse at digium.com> wrote:
> Interesting.
>
> Could you tell me what commands?
>
> Obviously the channel stays open if the command is still running, but I am
> not sure what command is in that kind of loop.
>
> You rock, and I will look into this tomorrow. Great research!
>
> Let me know if you have any more discoveries.
>
> -Brandon
>
> ----- Original Message -----
> From: "David Kerr" <David at kerr.net>
> To: "Asterisk GUI project discussion" <asterisk-gui at lists.digium.com>
> Sent: Thursday, December 18, 2008 4:53:31 PM GMT -06:00 Central America
> Subject: [asterisk-gui] executecommand script
>
>
> Brandon, et al.
> One issue I have been seeing a lot of is a channel remaining open in the
> asterisk_guitools context, executecommand "extension". Invariably if I look
> at the open channels I will see one or more channels in "Ring" state often
> with a duration in the thousands, if not tens or hundreds of thousands of
> seconds. They just never go away, and clicking on "hangup" in the active
> channels page does nothing.
>
>
> I have been investigating this for some time to try and find a solution, but
> rather than finding a solution I just find one gotcha after another. First
> the context (as built by pbx.js) looks like...
>
>
>
> exten=executecommand,1,System(${command})
>
> exten=executecommand,n,Hangup
>
>
>
> The parameters to the System() call being setup in astman.js. First thing I
> observed is that there is no timeout condition... there is a timeout set on
> the call to the AMI in astman.js (for 60 seconds!) but that timeout is only
> for until control is passed to the context? (
> http://www.voip-info.org/wiki/view/Asterisk+Manager+API+Action+Originate )
> and not a timeout for the System() command inside the context. So I
> considered adding a timeout(absolute) to the script. But find that this only
> works after an Answer (
> http://www.voip-info.org/wiki/view/Asterisk+cmd+AbsoluteTimeout). .. which
> is when I realized that the "call" is never answered... maybe that is why it
> sometimes gets stuck on "Ring". So I tried...
>
>
>
> exten=executecommand,1,Answer
> exten=executecommand,n,Set(TIMEOUT(absolute)=30)
> exten=executecommand,n,System(${command})
> exten=executecommand,n,Hangup
>
> exten=T,1,Hangup
>
>
>
> But on testing this I find that while it works when the command being
> executed is VERY quick, it fails when the command is slow (I'm doing some
> other enhancements that execute a wget, which needs time (1 or 2 seconds) to
> pull results from the network). It fails because as soon as the call is
> "answered" control returns to the callback function set in astman.js...
> which then attempts to read the result from the command (as saved in
> sysinfo_output.html), which may not have completed yet. If I move the Answer
> statement to after the System call, then it works again... but then the
> behavior of Timeout(absolute) is undefined (according to
> http://www.voip-info.org/wiki/view/Asterisk+cmd+AbsoluteTimeout ) which
> states that extension "T" will never get called.
>
>
> So I am in a catch 22 situation.
>
>
> I also tried changing astman.js in the systemCmd() function... rather than
> make a request with a "noop" application, I told it to use "System" and
> passed some data into it (also modifying the context not to call System).
> Same problem... because of the asynchronous nature of the request, control
> passes to the callback before the command I want to execute completes. I
> have not tried making a synchronous request on the asterisk manager API
> because I don't want to hang the user interface while the command executes
> on the server.
>
>
> So... any ideas. I'd like a way to stop these phantom channels remaining
> open?
>
>
> Thanks,
> David
>
>
>
>
>
>
> _______________________________________________
> --Bandwidth and Colocation Provided by http://www.api-digital.com--
>
> asterisk-gui mailing list
> To UNSUBSCRIBE or update options visit:
> http://lists.digium.com/mailman/listinfo/asterisk-gui
>
> --
> ******************************
> Brandon Kruse
> Software Technician
> Digium, Inc.
> 150 West Park Loop, Suite 100
> Huntsville, AL 35806
> Phone: +1-256-428-6115
> 877.546.8963
> 877.linux.me!
> www.digium.com
> www.asterisk.org
> ******************************
>
>
--
Sent from my mobile device
More information about the asterisk-gui
mailing list