<div dir="ltr"><div dir="ltr">Glancing at the code, Asterisk appears to wait for the pipe between Asterisk and the AGI to be closed before it considers it completed. So, the problem is this pipe is duplicated into the child.<div><br></div><div>Try adding this after setsid:</div><div><div><font face="monospace, monospace">fclose(STDIN);</font></div><div><font face="monospace, monospace">fclose(STDOUT);</font></div><div><font face="monospace, monospace">fclose(STDERR);</font></div><div><font face="monospace, monospace">fopen('/dev/null', 'r'); // set fd/0</font></div><div><font face="monospace, monospace">fopen('/dev/null', 'w'); // set fd/1</font></div><div><font face="monospace, monospace">fopen('php://stdout', 'w'); // a hack to duplicate fd/1 to 2</font></div></div><div><br></div><div>(from <a href="https://andytson.com/blog/2010/05/daemonising-a-php-cli-script-on-a-posix-system/">https://andytson.com/blog/2010/05/daemonising-a-php-cli-script-on-a-posix-system/</a> )</div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, 22 Apr 2019 at 12:28, Dovid Bender <<a href="mailto:dovid@telecurve.com">dovid@telecurve.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div dir="ltr"><div dir="ltr">Eric,<div><br></div><div>As I mentioned before that does not seem to work with PHP<br><br><div>  == Using SIP RTP CoS mark 5</div><div>    -- Executing [my_test_test@from-external:1] NoOp("SIP/fpp-55559999-000009ca", "") in new stack</div><div>    -- Executing [my_test_test@from-external:2] AGI("SIP/fpp-55559999-000009ca", "fast_agi_wrapper,my_test,cnum=10000009&cname=Dovid Bender") in new stack</div><div>    -- Launched AGI Script /opt/dovid/fastagi/fast_agi_wrapper</div><div> fast_agi_wrapper,my_test,cnum=10000009&cname=Dovid Bender: We are the parent. Let's die!</div><div> fast_agi_wrapper,my_test,cnum=10000009&cname=Dovid Bender: We are child here. Taking a nap !</div><div> fast_agi_wrapper,my_test,cnum=10000009&cname=Dovid Bender: That nap was goooood!</div><div>    -- <SIP/fpp-55559999-000009ca>AGI Script /opt/dovid/fastagi/fast_agi_wrapper completed, returning 0</div><div>    -- Executing [my_test_test@from-external:3] Playback("SIP/fpp-55559999-000009ca", "tt-monkeys") in new stack</div><div>    -- <SIP/fpp-55559999-000009ca> Playing 'tt-monkeys.slin' (language 'en')</div><div>    -- Remote UNIX connection</div><div>    -- Remote UNIX connection disconnected</div></div><div><br></div><div><br></div><div>My code:</div><div><div><?PHP</div><div><br></div><div><br></div><div>$pid = pcntl_fork();</div><div>if ($pid != 0) {</div><div>     // we are the parent</div><div>     // do parent stuff</div><div>        $fastagi->verbose("We are the parent. Let's die!");</div><div>     exit;</div><div>}</div><div><br></div><div>// we are the child, detatch from terminal</div><div>$sid = posix_setsid();</div><div>if ($sid < 0) {</div><div>     die;</div><div>}</div><div>// do child stuff</div><div><br></div><div>        $fastagi->verbose("We are child here. Taking a nap !");</div><div>        sleep(5);</div><div>        $fastagi->verbose("That nap was goooood!");</div><div><br></div><div>?></div></div><div><br></div><div><br></div><div><br></div></div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, Apr 19, 2019 at 2:16 PM Eric Wieling <<a href="mailto:ewieling@nyigc.com" target="_blank">ewieling@nyigc.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">In PHP something like:<br>
<br>
$pid = pcntl_fork();<br>
if ($pid != 0) {<br>
     // we are the parent<br>
     // do parent stuff<br>
     exit;<br>
}<br>
<br>
// we are the child, detatch from terminal<br>
$sid = posix_setsid();<br>
if ($sid < 0) {<br>
     die;<br>
}<br>
// do child stuff<br>
<br>
On 04/19/2019 02:00 PM, Mark Wiater wrote:<br>
> On 4/19/2019 1:49 PM, Dovid Bender wrote:<br>
>> Mark,<br>
>><br>
>> I am using PHP agi and when forking the call does not continue util <br>
>> the forked process is done. Am I doing it wrong?<br>
>><br>
>><br>
>> On Wed, Apr 10, 2019 at 4:27 PM Mark Wiater <<a href="mailto:mark.wiater@greybeam.com" target="_blank">mark.wiater@greybeam.com</a> <br>
>> <mailto:<a href="mailto:mark.wiater@greybeam.com" target="_blank">mark.wiater@greybeam.com</a>>> wrote:<br>
>><br>
>>     On 4/10/2019 3:54 PM, Dovid Bender wrote:<br>
>>>     I have an AGI that can sometimes take time complete. I don't want<br>
>>>     the dialplan to be held up by the agi. Is there any way to call<br>
>>>     it and have Asterisk continue with the dialplan?<br>
>>><br>
>><br>
>>     Is there a reason you can't fork in the AGI and just return to the<br>
>>     dialplan in the parent?<br>
>><br>
> Dovid,<br>
> <br>
> I'm not much of a PHP person, but in perl, i check the process id that's <br>
> returned from fork() and exit if it's 1 (parent) and keep processing if <br>
> it's the child (greater than 1).<br>
> <br>
> I think php uses pcntl_fork().<br>
> <br>
> Is that how you're doing it?<br>
> <br>
> <br>
> <br>
<br>
-- <br>
<a href="http://help.nyigc.net/" rel="noreferrer" target="_blank">http://help.nyigc.net/</a><br>
<br>
-- <br>
_____________________________________________________________________<br>
-- Bandwidth and Colocation Provided by <a href="http://www.api-digital.com" rel="noreferrer" target="_blank">http://www.api-digital.com</a> --<br>
<br>
Check out the new Asterisk community forum at: <a href="https://community.asterisk.org/" rel="noreferrer" target="_blank">https://community.asterisk.org/</a><br>
<br>
New to Asterisk? Start here:<br>
      <a href="https://wiki.asterisk.org/wiki/display/AST/Getting+Started" rel="noreferrer" target="_blank">https://wiki.asterisk.org/wiki/display/AST/Getting+Started</a><br>
<br>
asterisk-users mailing list<br>
To UNSUBSCRIBE or update options visit:<br>
   <a href="http://lists.digium.com/mailman/listinfo/asterisk-users" rel="noreferrer" target="_blank">http://lists.digium.com/mailman/listinfo/asterisk-users</a></blockquote></div>
-- <br>
_____________________________________________________________________<br>
-- Bandwidth and Colocation Provided by <a href="http://www.api-digital.com" rel="noreferrer" target="_blank">http://www.api-digital.com</a> --<br>
<br>
Check out the new Asterisk community forum at: <a href="https://community.asterisk.org/" rel="noreferrer" target="_blank">https://community.asterisk.org/</a><br>
<br>
New to Asterisk? Start here:<br>
      <a href="https://wiki.asterisk.org/wiki/display/AST/Getting+Started" rel="noreferrer" target="_blank">https://wiki.asterisk.org/wiki/display/AST/Getting+Started</a><br>
<br>
asterisk-users mailing list<br>
To UNSUBSCRIBE or update options visit:<br>
   <a href="http://lists.digium.com/mailman/listinfo/asterisk-users" rel="noreferrer" target="_blank">http://lists.digium.com/mailman/listinfo/asterisk-users</a></blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr" class="gmail_signature"><div dir="ltr"><div><div dir="ltr">Regards,<div>John Runyon</div><div>Simply NUC</div><div>512-766-0401 x1110</div><div>495 Round Rock West Dr, Round Rock, TX 78681</div></div></div></div></div>