Hello list, Hope you all doing well! Recently, I had an issue with a FastAGI PHP script, which under some specific situation would run into an infinity loop, consuming all CPU resources. This also was preventing Asterisk to terminated the call properly because it was waiting for the AGI to return... The application uses AGIspeedy to process the AGI calls, not sure if this can be affecting this situation somehow.... Due to this problem I started looking for some option to timeout the AGI call and return to the dialplan after XYZ seconds and so this would protect Asterisk preventing the dialplan to get stuck due to some external script problem that is actually outside of Asterisk control. Does Asterisk provide some control of this sort? I searched around and could not find any..... Any idea is appreciated! Kind regards Patrick Wakano -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.digium.com/pipermail/asterisk-users/attachments/20180914/0bd1f571/attachment.html>
Hello; I’ve been using AGISpeedy for Perl for years. I just works, and it works really well. I’m a Perl programmer, not a PHP programmer, but it seems to me that you need the PHP equivalent of Perl’s ‘alarm’ command. Just a thought. Regards; John V. From: asterisk-users [mailto:asterisk-users-bounces at lists.digium.com] On Behalf Of Patrick Wakano Sent: Thursday, September 13, 2018 09:05 PM To: Asterisk Users Mailing List - Non-Commercial Discussion <asterisk-users at lists.digium.com> Subject: [asterisk-users] AGI timeout option Hello list, Hope you all doing well! Recently, I had an issue with a FastAGI PHP script, which under some specific situation would run into an infinity loop, consuming all CPU resources. This also was preventing Asterisk to terminated the call properly because it was waiting for the AGI to return... The application uses AGIspeedy to process the AGI calls, not sure if this can be affecting this situation somehow.... Due to this problem I started looking for some option to timeout the AGI call and return to the dialplan after XYZ seconds and so this would protect Asterisk preventing the dialplan to get stuck due to some external script problem that is actually outside of Asterisk control. Does Asterisk provide some control of this sort? I searched around and could not find any..... Any idea is appreciated! Kind regards Patrick Wakano -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.digium.com/pipermail/asterisk-users/attachments/20180914/e5639aa5/attachment.html>
On 9/13/2018 8:04 PM, Patrick Wakano wrote:> Hello list, > Hope you all doing well! > > Recently, I had an issue with a FastAGI PHP script, which under some > specific situation would run into an infinity loop, consuming all CPU > resources. This also was preventing Asterisk to terminated the call > properly because it was waiting for the AGI to return... The > application uses AGIspeedy to process the AGI calls, not sure if this > can be affecting this situation somehow.... > Due to this problem I started looking for some option to timeout the > AGI call and return to the dialplan after XYZ seconds and so this > would protect Asterisk preventing the dialplan to get stuck due to > some external script problem that is actually outside of Asterisk > control. Does Asterisk provide some control of this sort? I searched > around and could not find any..... > Any idea is appreciated! > > Kind regards > Patrick Wakano >I think this is what you may be looking for: http://php.net/manual/en/function.set-time-limit.php -- Telecomunicaciones Abiertas de México S.A. de C.V. Carlos Chávez +52 (55)8116-9161
I don't know AGIspeedy, but I have some PHP scripts where I set a connect timeout using streams. Example using https, but should be easily adaptable to non-s http.: $pbxsh_bin = @file_get_contents("https://blah.blah.blah", FALSE, @stream_context_create(array('https' => array('timeout' => 5, "verify_peer"=>false, "verify_peer_name"=>false)))); On 09/14/2018 01:40 PM, Carlos Chavez wrote:> On 9/13/2018 8:04 PM, Patrick Wakano wrote: > >> Hello list, >> Hope you all doing well! >> >> Recently, I had an issue with a FastAGI PHP script, which under some >> specific situation would run into an infinity loop, consuming all CPU >> resources. This also was preventing Asterisk to terminated the call >> properly because it was waiting for the AGI to return... The >> application uses AGIspeedy to process the AGI calls, not sure if this >> can be affecting this situation somehow.... >> Due to this problem I started looking for some option to timeout the >> AGI call and return to the dialplan after XYZ seconds and so this >> would protect Asterisk preventing the dialplan to get stuck due to >> some external script problem that is actually outside of Asterisk >> control. Does Asterisk provide some control of this sort? I searched >> around and could not find any..... >> Any idea is appreciated! >> >> Kind regards >> Patrick Wakano >> > > I think this is what you may be looking for: > > http://php.net/manual/en/function.set-time-limit.php >-- http://help.nyigc.net/