[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