<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#ffffff" text="#000000">
    Try put the php in the AGI directory and call it via AGI() in
    Asterisk.<br>
    <br>
    Jian <br>
    <br>
    On 11-08-24 10:21 AM, Tim King wrote:
    <blockquote
cite="mid:CAAKbpsU9nAu=NkYstkTPN=+xF=gLavYy2Ad-1oWPyzRHSmeFwg@mail.gmail.com"
      type="cite"><b>I have been testing this for a week now, and I am
        still struggling to make it work. Here is the output from
        extension 11 just to show that permissions are correct and
        asterisk can access faxnotify.php</b><br>
      <br>
      &nbsp;&nbsp;&nbsp; -- Executing [11@outb2:1] Verbose("SIP/616818xxxx-000002f6",
      "Testing....") in new stack<br>
      Testing....<br>
      &nbsp;&nbsp;&nbsp; -- Executing [11@outb2:2] Set("SIP/616818xxxx-000002f6",
      "FNAME=/var/lib/asterisk/bin/faxnotify.php") in new stack<br>
      &nbsp;&nbsp;&nbsp; -- Executing [11@outb2:3] Verbose("SIP/616818xxxx-000002f6",
      "Size: 2553") in new stack<br>
      Size: 2553<br>
      &nbsp;&nbsp;&nbsp; -- Executing [11@outb2:4] Verbose("SIP/616818xxxx-000002f6",
      "Mode: 100777") in new stack<br>
      Mode: 100777<br>
      &nbsp;&nbsp;&nbsp; -- Executing [11@outb2:5] Verbose("SIP/616818xxxx-000002f6",
      "#!/usr/bin/php<br>
      &lt;?php<br>
      <br>
      // set some global variables here<br>
      $SUCCESS_STATUS = "FAX_SUCCESS";<br>
      $FROM_EMA") in new stack<br>
      #!/usr/bin/php<br>
      &lt;?php<br>
      <br>
      // set some global variables here<br>
      $SUCCESS_STATUS = FAX_SUCCESS;<br>
      $FROM_EMA<br>
      &nbsp;&nbsp;&nbsp; -- Executing [11@outb2:6] TrySystem("SIP/616818xxxx-000002f6",
      "/var/lib/asterisk/bin/faxnotify.php") in new stack<br>
      &nbsp;&nbsp;&nbsp; -- Executing [11@outb2:7] Verbose("SIP/616818xxxx-000002f6",
      "SUCCESS") in new stack<br>
      SUCCESS<br>
      &nbsp;&nbsp;&nbsp; -- Executing [11@outb2:8] Hangup("SIP/616818xxxx-000002f6",
      "") in new stack<br>
      &nbsp; == Spawn extension (outb2, 11, 8) exited non-zero on
      'SIP/616818xxxx-000002f6'<br>
      <br>
      If I execute from the command line as user asterisk the script
      works correctly. If i execute extension 777 test.php is called and
      works correctly. The only thing I wonder is if asterisk is somehow
      not correctly passing the variables to faxnotify.php causing it to
      fail. Can someone please test this configuration on their system
      and let me know if they see what I am doing wrong?<br>
      <br>
      This works as user asterisk.<br>
      <b>/var/lib/asterisk/bin/faxnotify.php NOTIFY "<a
          moz-do-not-send="true" href="mailto:tim.compnetwork@gmail.com">tim.compnetwork@gmail.com</a>"
        "6165550000" "24/08/11 : 09:00:00" "FAX_SUCCESS" "1"</b><br>
      <b><br>
        Here are the permissions of the folder.<br>
      </b>drwxr-xr-x&nbsp; 2 asterisk asterisk 4.0K Aug 24 13:19 .<br>
      drwxr-xr-x 13 asterisk asterisk 4.0K Aug 22 12:38 ..<br>
      -rwxrwxrwx&nbsp; 1 asterisk asterisk 2.5K Aug 24 11:43 faxnotify.php<br>
      -rwxr-xr-x&nbsp; 1 asterisk asterisk 6.4K Aug 20 10:26 <a
        moz-do-not-send="true" href="http://fax-process.pl">fax-process.pl</a><br>
      -rwxrwxrwx&nbsp; 1 asterisk asterisk&nbsp;&nbsp; 73 Aug 24 12:52 test.php<br>
      -rwxrwxrwx&nbsp; 1 asterisk asterisk&nbsp;&nbsp; 60 Aug 24 11:40 test.sh<br>
      <b><br>
        [outbound]</b><br>
      exten =&gt; 11,1,Verbose(Testing....)<br>
      exten =&gt; 11,n,Set(FNAME=/var/lib/asterisk/bin/faxnotify.php)<br>
      exten =&gt; 11,n,Verbose(Size: ${STAT(s,${FNAME})})<br>
      exten =&gt; 11,n,Verbose(Mode: ${STAT(m,${FNAME})})<br>
      exten =&gt; 11,n,Verbose(${FILE(${FNAME},,100)})<br>
      exten =&gt; 11,n,TrySystem(${FNAME})<br>
      exten =&gt; 11,n,Verbose(${SYSTEMSTATUS})<br>
      exten =&gt; 11,n,Hangup()<br>
      <br>
      exten =&gt; 777,1,System(/var/lib/asterisk/bin/test.php)<br>
      exten =&gt; 777,n,Playback(vm-goodbye)<br>
      exten =&gt; 777,n,Hangup()<br>
      <br>
      <b>[ext-fax]</b><br>
      exten =&gt; s,1,Noop(Receiving Fax for: ${FAX_RX_EMAIL} , From:
      ${CALLERID(all)})<br>
      exten =&gt; s,n(receivefax),StopPlaytones<br>
      exten =&gt; s,n,ReceiveFAX(${ASTSPOOLDIR}/fax/${UNIQUEID}.tif,f)<br>
      exten =&gt;
      s,n,ExecIf($["${FAXOPT(error)}"=""]?Set(FAXSTATUS=FAILED LICENSE
      EXCEEDED))<br>
      exten =&gt; s,n,ExecIf($["${FAXOPT(error)}"!="" &amp;&amp;
      "${FAXOPT(error)}"!="NO_ERROR"]?Set(FAXSTATUS="FAILED FAXOPT:
      error: ${FAXOPT(error)} status: ${FAXOPT(status)} statusstr: ${FAX<br>
      exten =&gt; s,n,Hangup<br>
      exten =&gt; h,1,GotoIf($["${FAXSTATUS:0:6}" = "FAILED"]?failed)<br>
      exten =&gt; h,n(process),GotoIf($[${LEN(${FAX_RX_EMAIL})} =
      0]?end)<br>
      exten =&gt; h,n,System(${ASTVARLIBDIR}/bin/<a
        moz-do-not-send="true" href="http://fax-process.pl">fax-process.pl</a>
      --to "${FAX_RX_EMAIL}" --from "<a moz-do-not-send="true"
        href="mailto:noreply@mydomain.com">noreply@mydomain.com</a>"
      --dest "${FROM_DID}" --subject "New fax from ${URIENCODE(${CALLERI<br>
      exten =&gt; h,n(end),Macro(hangupcall,)<br>
      exten =&gt; h,process+101(failed),Noop(FAX ${FAXSTATUS} for:
      ${FAX_RX_EMAIL} , From: ${CALLERID(all)})<br>
      exten =&gt; h,n,Macro(hangupcall,)<br>
      <br>
      <b>[app-fax]</b><br>
      include =&gt; app-fax-custom<br>
      exten =&gt; 6169804602,1,Set(FAX_RX_EMAIL=<a
        moz-do-not-send="true" href="mailto:tim.compnetwork@gmail.com">tim.compnetwork@gmail.com</a>)<br>
      exten =&gt; 6169804602,n,Goto(ext-fax,s,1)<br>
      exten =&gt; h,1,Macro(hangupcall,)<br>
      <br>
      <br>
      <b>test.php</b><br>
      <br>
      &lt;?php<br>
      exec("touch /var/lib/asterisk/bin/testfile.txt");<br>
      <br>
      <b>faxnotify.php</b><br>
      <br>
      #!/usr/bin/php<br>
      &lt;?php<br>
      <br>
      // set some global variables here<br>
      $SUCCESS_STATUS = "FAX_SUCCESS";<br>
      $FROM_EMAIL = "<a moz-do-not-send="true"
        href="mailto:fax@mydomain.com">fax@mydomain.com</a>";<br>
      $FROM_NAME = "mydomain Fax";<br>
      $CONTACT_EMAIL = "<a moz-do-not-send="true"
        href="mailto:support@mydomain.com">support@mydomain.com</a>";<br>
      <br>
      if ($argc != 7) {<br>
      &nbsp;echo "Usage faxnotify.php messagetype email destination timestamp
      status_string pages \n ";<br>
      &nbsp;echo "message type can be one of INIT or NOTIFY ";<br>
      }<br>
      echo "Starting faxnotify.php \n";<br>
      <br>
      <br>
      // setting up<br>
      $messtype&nbsp;&nbsp; = $argv[1];<br>
      $email&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = $argv[2];<br>
      $dest&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = $argv[3];<br>
      $timestamp&nbsp; = $argv[4];<br>
      $status&nbsp;&nbsp;&nbsp;&nbsp; = $argv[5];<br>
      $numpages&nbsp;&nbsp; = $argv[6];<br>
      <br>
      $headers = "From:&nbsp; $FROM_NAME &lt;$FROM_EMAIL&gt;";<br>
      <br>
      // end setting up<br>
      <br>
      if ($messtype == "INIT") { // SendFAX called successfully in the
      dialplan...<br>
      &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $emailSubject = "Your fax to $dest has been initiated";<br>
      &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $notice = "Your fax to $dest sent on $timestamp has been
      initiated. You will get a notification " .<br>
      &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "email when the transmission is
      complete. ";<br>
      &nbsp;&nbsp;&nbsp; $emailBody = "Hi!&nbsp; \n\n" .&nbsp; $notice . " \n\n " .<br>
      &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "If you have any queries, please
      contact us at:&nbsp; $CONTACT_EMAIL";<br>
      &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mail($email, $emailSubject, $emailBody, $headers);<br>
      }<br>
      else {&nbsp; // meaning $messtype = "NOTIFY" ... sending of fax is
      complete. Need to check if SUCCEEDED<br>
      &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $tech_details = "------------------------------ \n".<br>
      &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "DESTINATION = $dest&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \n".<br>
      &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "TIMESTAMP =
      $timestamp&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \n".<br>
      &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "FAXOPTS_STATUSSTRING =
      $status \n".<br>
      &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "NUM_PAGES =
      $numpages&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \n".<br>
      &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
      "------------------------------ \n";<br>
      <br>
      <br>
      &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo "Sending fax notification email to: $email from
      $FROM_EMAIL \n";<br>
      <br>
      &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if($status == $SUCCESS_STATUS) {<br>
      &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $emailSubject = "Your fax to $dest was delivered
      successfully";<br>
      &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $notice = "This is an automated response to let you know
      that your fax to " .<br>
      &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "$dest sent on $timestamp was
      delivered successfully. \n";<br>
      &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } else {<br>
      &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $emailSubject = "Your fax to $dest could not be sent";<br>
      &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $notice = "This is an automated response to let you know
      that your fax to " .<br>
      &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "$dest sent on $timestamp could
      not be delivered. \n";<br>
      &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>
      <br>
      &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $emailBody = "Hi!&nbsp; \n\n" .&nbsp; $notice . "\n\n" .
      $tech_details . " \n\n " .<br>
      &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "If you beleive there was an
      error please contact:&nbsp; $CONTACT_EMAIL";<br>
      <br>
      &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // echo $emailSubject . "\n";<br>
      &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // echo $emailBody . "\n";<br>
      <br>
      &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // mail<br>
      &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mail($email, $emailSubject, $emailBody, $headers );<br>
      &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // exec("echo $email $timestamp $emailSubject &gt;&gt;
      /var/log/asterisk/webfax.log");<br>
      &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // exec("echo $emailBody &gt;&gt;
      /var/log/asterisk/webfax.log");<br>
      &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // exec("echo -------------------------------- &gt;&gt;
      /var/log/asterisk/webfax.log");<br>
      }<br>
      ?&gt;<br>
      <br>
      <br>
      <br>
      <pre wrap="">
<fieldset class="mimeAttachmentHeader"></fieldset>
--
_____________________________________________________________________
-- Bandwidth and Colocation Provided by <a class="moz-txt-link-freetext" href="http://www.api-digital.com">http://www.api-digital.com</a> --
New to Asterisk? Join us for a live introductory webinar every Thurs:
               <a class="moz-txt-link-freetext" href="http://www.asterisk.org/hello">http://www.asterisk.org/hello</a>

asterisk-users mailing list
To UNSUBSCRIBE or update options visit:
   <a class="moz-txt-link-freetext" href="http://lists.digium.com/mailman/listinfo/asterisk-users">http://lists.digium.com/mailman/listinfo/asterisk-users</a></pre>
    </blockquote>
    <br>
  </body>
</html>