[asterisk-users] System Command not executing php

J Gao jgao at veecall.com
Wed Aug 24 12:46:38 CDT 2011


Try put the php in the AGI directory and call it via AGI() in Asterisk.

Jian

On 11-08-24 10:21 AM, Tim King wrote:
> *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*
>
>     -- Executing [11 at outb2:1] Verbose("SIP/616818xxxx-000002f6", 
> "Testing....") in new stack
> Testing....
>     -- Executing [11 at outb2:2] Set("SIP/616818xxxx-000002f6", 
> "FNAME=/var/lib/asterisk/bin/faxnotify.php") in new stack
>     -- Executing [11 at outb2:3] Verbose("SIP/616818xxxx-000002f6", 
> "Size: 2553") in new stack
> Size: 2553
>     -- Executing [11 at outb2:4] Verbose("SIP/616818xxxx-000002f6", 
> "Mode: 100777") in new stack
> Mode: 100777
>     -- Executing [11 at outb2:5] Verbose("SIP/616818xxxx-000002f6", 
> "#!/usr/bin/php
> <?php
>
> // set some global variables here
> $SUCCESS_STATUS = "FAX_SUCCESS";
> $FROM_EMA") in new stack
> #!/usr/bin/php
> <?php
>
> // set some global variables here
> $SUCCESS_STATUS = FAX_SUCCESS;
> $FROM_EMA
>     -- Executing [11 at outb2:6] TrySystem("SIP/616818xxxx-000002f6", 
> "/var/lib/asterisk/bin/faxnotify.php") in new stack
>     -- Executing [11 at outb2:7] Verbose("SIP/616818xxxx-000002f6", 
> "SUCCESS") in new stack
> SUCCESS
>     -- Executing [11 at outb2:8] Hangup("SIP/616818xxxx-000002f6", "") in 
> new stack
>   == Spawn extension (outb2, 11, 8) exited non-zero on 
> 'SIP/616818xxxx-000002f6'
>
> 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?
>
> This works as user asterisk.
> */var/lib/asterisk/bin/faxnotify.php NOTIFY "tim.compnetwork at gmail.com 
> <mailto:tim.compnetwork at gmail.com>" "6165550000" "24/08/11 : 09:00:00" 
> "FAX_SUCCESS" "1"*
> *
> Here are the permissions of the folder.
> *drwxr-xr-x  2 asterisk asterisk 4.0K Aug 24 13:19 .
> drwxr-xr-x 13 asterisk asterisk 4.0K Aug 22 12:38 ..
> -rwxrwxrwx  1 asterisk asterisk 2.5K Aug 24 11:43 faxnotify.php
> -rwxr-xr-x  1 asterisk asterisk 6.4K Aug 20 10:26 fax-process.pl 
> <http://fax-process.pl>
> -rwxrwxrwx  1 asterisk asterisk   73 Aug 24 12:52 test.php
> -rwxrwxrwx  1 asterisk asterisk   60 Aug 24 11:40 test.sh
> *
> [outbound]*
> exten => 11,1,Verbose(Testing....)
> exten => 11,n,Set(FNAME=/var/lib/asterisk/bin/faxnotify.php)
> exten => 11,n,Verbose(Size: ${STAT(s,${FNAME})})
> exten => 11,n,Verbose(Mode: ${STAT(m,${FNAME})})
> exten => 11,n,Verbose(${FILE(${FNAME},,100)})
> exten => 11,n,TrySystem(${FNAME})
> exten => 11,n,Verbose(${SYSTEMSTATUS})
> exten => 11,n,Hangup()
>
> exten => 777,1,System(/var/lib/asterisk/bin/test.php)
> exten => 777,n,Playback(vm-goodbye)
> exten => 777,n,Hangup()
>
> *[ext-fax]*
> exten => s,1,Noop(Receiving Fax for: ${FAX_RX_EMAIL} , From: 
> ${CALLERID(all)})
> exten => s,n(receivefax),StopPlaytones
> exten => s,n,ReceiveFAX(${ASTSPOOLDIR}/fax/${UNIQUEID}.tif,f)
> exten => s,n,ExecIf($["${FAXOPT(error)}"=""]?Set(FAXSTATUS=FAILED 
> LICENSE EXCEEDED))
> exten => s,n,ExecIf($["${FAXOPT(error)}"!="" && 
> "${FAXOPT(error)}"!="NO_ERROR"]?Set(FAXSTATUS="FAILED FAXOPT: error: 
> ${FAXOPT(error)} status: ${FAXOPT(status)} statusstr: ${FAX
> exten => s,n,Hangup
> exten => h,1,GotoIf($["${FAXSTATUS:0:6}" = "FAILED"]?failed)
> exten => h,n(process),GotoIf($[${LEN(${FAX_RX_EMAIL})} = 0]?end)
> exten => h,n,System(${ASTVARLIBDIR}/bin/fax-process.pl 
> <http://fax-process.pl> --to "${FAX_RX_EMAIL}" --from 
> "noreply at mydomain.com <mailto:noreply at mydomain.com>" --dest 
> "${FROM_DID}" --subject "New fax from ${URIENCODE(${CALLERI
> exten => h,n(end),Macro(hangupcall,)
> exten => h,process+101(failed),Noop(FAX ${FAXSTATUS} for: 
> ${FAX_RX_EMAIL} , From: ${CALLERID(all)})
> exten => h,n,Macro(hangupcall,)
>
> *[app-fax]*
> include => app-fax-custom
> exten => 6169804602,1,Set(FAX_RX_EMAIL=tim.compnetwork at gmail.com 
> <mailto:tim.compnetwork at gmail.com>)
> exten => 6169804602,n,Goto(ext-fax,s,1)
> exten => h,1,Macro(hangupcall,)
>
>
> *test.php*
>
> <?php
> exec("touch /var/lib/asterisk/bin/testfile.txt");
>
> *faxnotify.php*
>
> #!/usr/bin/php
> <?php
>
> // set some global variables here
> $SUCCESS_STATUS = "FAX_SUCCESS";
> $FROM_EMAIL = "fax at mydomain.com <mailto:fax at mydomain.com>";
> $FROM_NAME = "mydomain Fax";
> $CONTACT_EMAIL = "support at mydomain.com <mailto:support at mydomain.com>";
>
> if ($argc != 7) {
>  echo "Usage faxnotify.php messagetype email destination timestamp 
> status_string pages \n ";
>  echo "message type can be one of INIT or NOTIFY ";
> }
> echo "Starting faxnotify.php \n";
>
>
> // setting up
> $messtype   = $argv[1];
> $email      = $argv[2];
> $dest       = $argv[3];
> $timestamp  = $argv[4];
> $status     = $argv[5];
> $numpages   = $argv[6];
>
> $headers = "From:  $FROM_NAME <$FROM_EMAIL>";
>
> // end setting up
>
> if ($messtype == "INIT") { // SendFAX called successfully in the 
> dialplan...
>         $emailSubject = "Your fax to $dest has been initiated";
>         $notice = "Your fax to $dest sent on $timestamp has been 
> initiated. You will get a notification " .
>                           "email when the transmission is complete. ";
>     $emailBody = "Hi!  \n\n" .  $notice . " \n\n " .
>                                  "If you have any queries, please 
> contact us at:  $CONTACT_EMAIL";
>         mail($email, $emailSubject, $emailBody, $headers);
> }
> else {  // meaning $messtype = "NOTIFY" ... sending of fax is 
> complete. Need to check if SUCCEEDED
>         $tech_details = "------------------------------ \n".
>                         "DESTINATION = $dest            \n".
>                                         "TIMESTAMP = 
> $timestamp         \n".
>                                         "FAXOPTS_STATUSSTRING = 
> $status \n".
>                                         "NUM_PAGES = 
> $numpages          \n".
>                                         
> "------------------------------ \n";
>
>
>         echo "Sending fax notification email to: $email from 
> $FROM_EMAIL \n";
>
>         if($status == $SUCCESS_STATUS) {
>           $emailSubject = "Your fax to $dest was delivered successfully";
>           $notice = "This is an automated response to let you know 
> that your fax to " .
>                                 "$dest sent on $timestamp was 
> delivered successfully. \n";
>         } else {
>           $emailSubject = "Your fax to $dest could not be sent";
>           $notice = "This is an automated response to let you know 
> that your fax to " .
>                                 "$dest sent on $timestamp could not be 
> delivered. \n";
>         }
>
>         $emailBody = "Hi!  \n\n" .  $notice . "\n\n" . $tech_details . 
> " \n\n " .
>                                  "If you beleive there was an error 
> please contact:  $CONTACT_EMAIL";
>
>         // echo $emailSubject . "\n";
>         // echo $emailBody . "\n";
>
>         // mail
>         mail($email, $emailSubject, $emailBody, $headers );
>         // exec("echo $email $timestamp $emailSubject >> 
> /var/log/asterisk/webfax.log");
>         // exec("echo $emailBody >> /var/log/asterisk/webfax.log");
>         // exec("echo -------------------------------- >> 
> /var/log/asterisk/webfax.log");
> }
> ?>
>
>
>
>
> --
> _____________________________________________________________________
> -- Bandwidth and Colocation Provided by http://www.api-digital.com --
> New to Asterisk? Join us for a live introductory webinar every Thurs:
>                 http://www.asterisk.org/hello
>
> asterisk-users mailing list
> To UNSUBSCRIBE or update options visit:
>     http://lists.digium.com/mailman/listinfo/asterisk-users


-- 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.digium.com/pipermail/asterisk-users/attachments/20110824/5dd50b6d/attachment.htm>


More information about the asterisk-users mailing list