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