Hello,

> >> I am trying to use PHP to reload the extensions in an Asterisk
> >> installation. I keep getting this error:

> Easiest way without compromising security or changing permissions.  Use
> the AMI.
>
> 1. Download phpagi (Just google it)
> 2. Use it to connect to the Manager interface
> 3. Use it to issue:
> Action: Command
> Command: reload

Here's the two functions I've been using. Add a new user to
manager.conf with the appropriate permissions and this should work
fine.

Hope that helps,
-Michael


function extensions_reload() {
        return asterisk_exec("dialplan reload");
}

function asterisk_exec($cmd, $output=NULL) {

        $token = md5(uniqid(rand()));
        $errno = 0;
        $errstr = 0;
        $fp = fsockopen("localhost", 5038, &$errno, &$errstr, 20);
        if (!$fp) {
          return 1;
        }
        
        fputs($fp, "Action: login\r\n");
        fputs($fp, "Username: newusername\r\n");
        fputs($fp, "Secret: newpassword\r\n");
        fputs($fp, "Events: off\r\n\r\n");
        usleep(500);
        
        fputs($fp, "Action: COMMAND\r\n");
        fputs($fp, "command: $cmd\r\n");
        fputs($fp, "ActionID: $token\r\n\r\n");
        usleep(500);
        
        $out = fread($fp, 38000);
        while(strpos($out,"--END COMMAND--")==0) {
                $out .= fread($fp, 38000);      
        }
        fclose ($fp);
        
        $out = substr($out, strpos($out, "ActionID"));
        $out = substr($out, strpos($out, "\n") + 1);
        $out = substr($out, 0, strpos($out, "--END COMMAND--") - 1);

        $output = $out;

        return 0;
}

_______________________________________________
--Bandwidth and Colocation Provided by http://www.api-digital.com--

asterisk-users mailing list
To UNSUBSCRIBE or update options visit:
   http://lists.digium.com/mailman/listinfo/asterisk-users

Reply via email to