[asterisk-users] Running System() after call completion, not in 'h'?

Steve Edwards asterisk.org at sedwards.com
Tue Aug 31 10:11:22 CDT 2010


On Tue, 31 Aug 2010, Tim Nelson wrote:

> I have some dialplan code on an Asterisk 1.2.x box that basically dials 
> a call, then after call completion, runs a command via System(). 
> However, I'm finding that roughly 5% of the time, the System() command 
> never executes and seems to be on specific destinations. 
> Simplified/paraphrased example:
>
> exten => 1,1,Set(VARIABLE=SOMEVALUE)
> exten => > 1,n,Dial(SIP/somepeer/1234567980)
> exten => 1,n,System(/bin/bash > /root/bin/somescript.sh ${VARIABLE}
>
> It almost seems to be related to how fast the destination 'hangs up' and 
> whether or not the dialplan has time to run the System command before 
> jumping to 'h'.
>
> I have to believe there is a better way to do this, possibly using 
> DeadAGI?

I think you're on the right track -- moving from system() to [dead]agi().

I think you should be using agi() instead of deadagi() since the call 
isn't "dead" yet. IMO, trapping HUP is a prerequisite for a "well written 
AGI."

-- 
Thanks in advance,
-------------------------------------------------------------------------
Steve Edwards       sedwards at sedwards.com      Voice: +1-760-468-3867 PST
Newline                                              Fax: +1-760-731-3000



More information about the asterisk-users mailing list