[asterisk-users] AGI perl script set timeout within script?

Steve Edwards asterisk.org at sedwards.com
Thu Jan 7 20:22:31 CST 2010


>> On Thu, Jan 7, 2010 at 6:27 PM, JR Richardson <jmr.richardson at gmail.com>
> wrote:
>>> problem I'm running into is if the DNS server is not responding, the 
>>> script hangs and waits for 30 seconds before returning to the Asterisk 
>>> dialplan.  I would like a timeout of 1 second, then return.
>>
> On Thursday 07 January 2010 18:59:24 David Backeberg wrote:
>>
>> * stop using DNS? Problem solved. * put nagios monitoring on your DNS 
>> server? * put in a second DNS server, and tune your DNS timeout to a 
>> very low value in /etc/resolv.conf (read the man page) before jumping 
>> to next server?
>>
>> Or you could use the Perl language feature, which is called 'alarm'. 
>> Google around for some code samples.

On Thu, 7 Jan 2010, Tilghman Lesher wrote:

> Ah, but Perl isn't actually doing the DNS lookup.  If you examine his 
> script, he's merely passing back a name to the Asterisk process, which 
> is then calling inet_aton(), which is the reason why he cannot control 
> it from within the script.  What he'd actually need to do is to start 
> using Net::DNS to do the resolution on that name, first, perhaps even 
> going as far as to connect to the server himself, and relay the channel 
> between the AGI interface and the remote TCP interface.
>
> Then, he could use alarm() or the Time::Hires module to ensure his own 
> timeouts override the builtins.  But as it stands now, it's all 
> Asterisk.

If the DNS lookup is being done by Asterisk to resolve the FastAGI server 
name. If the DNS lookup is for the (assumed) database server in his script 
then the suggestions to use alarm() would do the trick.

I guess we need clarification from the OP.

-- 
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