Start by enable and configure Call Management, edit manager.conf
[general] displaysystemname = yes enabled = yes port = 5038 bindaddr = 127.0.0.1 [user] secret = password deny=0.0.0.0/0.0.0.0 permit=127.0.0.1/255.255.255.0 read = system,call,log,verbose,command,agent,user,config write = system,call,log,verbose,command,agent,user,config
The following Asterisk context can be used to call a external script, and then use a channel variable for playback.
[test]
exten => s,1,System(/root/test.php ${CHANNEL})
exten => s,2,Playback(${TEST})
This PHP script can ba used to set the channel variable TEST to a random one digit number.
<?php
$var = 'digits/' . rand(0, 9);
$foo = 0;
$bar = 0;
$socket = fsockopen ("127.0.0.1", 5038, $foo, $bar, 20);
fputs($socket, "Action: login\r\n");
fputs($socket, "Events: off\r\n");
fputs($socket, "Username: user\r\n");
fputs($socket, "Secret: password\r\n\r\n");
fputs($socket, "Action: Setvar\r\n");
fputs($socket, "Channel: $channel\r\n");
fputs($socket, "Variable: TEST\r\n");
fputs($socket, "Value: $var\r\n");
fputs($socket, "Action: Logoff\r\n\r\n");
fclose($socket);
?>
