Tag Archive - asterisk

Using Asterisk Call Management to set channel variable

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);
?>