[asterisk-users] php script in h context makes channel hang : solution ?

Eric Wieling EWieling at nyigc.com
Thu Mar 20 09:40:16 CDT 2014


This is an excerpt from a script I use for post processing received faxes.

You need the PHP process extension, on CentOS that is the php-process package.

....
<end of code which interacts with asterisk>

declare(ticks=1);

// become a daemon so we don't tie up asterisk resources while we process the fax
$pid = pcntl_fork();
if ($pid == -1) {
    die("could not fork");
} else if ($pid) {
    exit(); // we are the parent
}

// we are the child

// detatch from the controlling terminal
if (posix_setsid() == -1) {
    die("could not detach from terminal");
}

// be nice and lower our priority (and the priority of any spawned processes)
proc_nice(10);

<start of code which can be run in the background after the channel went away>
....

-----Original Message-----
From: asterisk-users-bounces at lists.digium.com [mailto:asterisk-users-bounces at lists.digium.com] On Behalf Of Jonas Kellens
Sent: Thursday, March 20, 2014 10:27 AM
To: Asterisk Users Mailing List - Non-Commercial Discussion
Subject: [asterisk-users] php script in h context makes channel hang : solution ?

Hello,

I execute the following php script when a call ends and the h-context is executed :

exten => h,n,System(/usr/bin/php /var/log/asterisk/loggingAST/loggingAST.php /var/log/asterisk/loggingAST/${CHANNEL:4}.csv)

The script loggingAST.php writes some information in a MySQL database on a remote webserver.

I have noticed that when the webserver is unreachable, this channel "hangs" and Asterisk can not clear the channel and rtp ports.


Is there a way to have the channel cleared, even if it takes some time to execute the php script ??


Kind regards,

Jonas.




More information about the asterisk-users mailing list