Asterisk Remote Call PHP script

Allow to initiate calls on your asterisk PBX with http request over Internet.

script: astcall.php

Arguments:

  • hash, md5 generated authentication token based on shared secret
  • from, the internal extension that handle the call
  • to, the phone number to dial
  • mode, optional, implemented: default | callback, (use AMI | use call files)

Request example: /astcall.php?hash=hash&from=from&to[&mode=mode]

 

TODO

Check permissions used in freePBX do reduce it to minimum, asterisk (no gui) dont have enought privileges.

Asterisk call script configuration

The configuration is done on the first code lines on the script astcall.php.

// remote request autentication
define('ASTSECRET', 'secret');

// asterisk manager interface
define('SERVER', '127.0.0.1');
define('USER', 'test');
define('PASS', 'test');

// asterisk call defaults
// common
define('ASTWTIME' , 30); 
define('ASTPRIO' , 1);
define('ASTRTIME' , 60); 
define('ASTMAXR' , 2);

// mode call file
define('ASTTRUNK' , 'g9trunk');
define('ASTCALLB' , '"Call Back Request" <211452560>');

// mode ami
define('ASTCCTX' , 'from-internal');

// log and debug
define('DBG', '1');
define('DBGFILE', 'astcallbg.log');
define('LOG', '1');
define('LOGFILE', 'astcall.log');

 

Asterisk configuration

On Asterisk / FreePBX

  • Enable asterisk httpd server
  • Create a user for connecting to AMI

 

Asterisk (no gui)

/etc/asterisk/manager.conf

[general]
enabled = yes
port = 5038
bindaddr = 127.0.0.1

[test]
secret = test
read = system,call,log,verbose,command,agent,user
write = system,call,log,verbose,command,agent,user
deny=0.0.0.0/0.0.0.0
permit=127.0.0.1/255.255.255.255
Asterisk freePBX

Enable asterisk http server

/etc/asterisk/manager_custom.conf

[test]
secret = test
;read = system,call,log,verbose,command,agent,user
;write = system,call,log,verbose,command,agent,user
deny=0.0.0.0/0.0.0.0
permit=127.0.0.1/255.255.255.255

read = system,call,log,verbose,command,agent,user,config,command,dtmf,reporting,cdr,dialplan,originate,message
write = system,call,log,verbose,command,agent,user,config,command,dtmf,reporting,cdr,dialplan,originate,message
writetimeout = 5000
Links

https://www.voip-info.org/wiki/index.php?page=Asterisk+manager+Example%3A+PHP