conference.php
Код: Выделить всё
<?php
//Готовим коннект к астеру
$host = "192.168.1.1";
$port = "5038";
$timeout = "10";
$user = "conference";
$pass = "1111";
//для того, чтобы не разбивать 1 задачу на 2 скрипта
$kusok = $argv[1];
//Кусок для создания конференции во время разговора
if ($kusok == 1){
//Получаем переменные
$channel = $argv[2];
$bridgepeer = $argv[3];
$confnum = $argv[4];
print_r($bridgepeer);
print_r($confnum);
//Коннект
$sconn = fsockopen ($host, $port, $timeout) or die ("Connection to $host:$port failed!");
fputs ($sconn, "Action: Login\r\n");
fputs ($sconn, "Username: $user\r\n");
fputs ($sconn, "Secret: $pass\r\n\r\n");
//Задаем переменные канала
fputs ($sconn, "Action: Setvar\r\n");
fputs ($sconn, "Channel: $channel\r\n");
fputs ($sconn, "Variable: CONFNUM\r\n");
fputs ($sconn, "Value: $confnum\r\n\r\n");
fputs ($sconn, "Action: Setvar\r\n");
fputs ($sconn, "Channel: $bridgepeer\r\n");
fputs ($sconn, "Variable: CONFNUM\r\n");
fputs ($sconn, "Value: $confnum\r\n\r\n");
//Редиректим
fputs ($sconn, "Action: Redirect\r\n");
fputs ($sconn, "Channel: $bridgepeer\r\n");
fputs ($sconn, "ExtraChannel: $channel\r\n");
fputs ($sconn, "Context: service_code-ael\r\n");
fputs ($sconn, "Exten: conference\r\n");
fputs ($sconn, "Priority: 1\r\n\r\n");
fputs($sconn, "Action: Logoff\r\n\r\n");
sleep(2);
fclose ($sconn);
}
//Кусок для добавления нового участника
if ($kusok == 2) {
//Получаем переменные
$confnum = $argv[2];
$inviten = $argv[3];
$sconn = fsockopen ($host, $port, $errno, $errstr, $timeout) or die ("Connection to $host:$port failed!");
//Подключаемся
fputs ($sconn, "Action: Login\r\n");
fputs ($sconn, "Username: $user\r\n");
fputs ($sconn, "Secret: $pass\r\n\r\n");
//Звоним и закидываем в конфу
fputs ($sconn, "Action: Originate\r\n");
fputs ($sconn, "Channel: Local/".$inviten."@out-ael\r\n");
fputs ($sconn, "Context: service_code-ael\r\n");
fputs ($sconn, "Exten: conference\r\n");
fputs ($sconn, "Priority: 1\r\n");
fputs ($sconn, "Variable: CONFNUM=".$confnum."\r\n\r\n");
fputs($sconn, "Action: Logoff\r\n\r\n");
sleep(2);
fclose ($sconn);
}
}
/opt/var/log/asterisk/messages
/opt/var/log/asterisk/queue_log
/opt/var/run/asterisk/asterisk.pid
Папки
/opt/var/spool/asterisk/confbridge
/opt/var/spool/asterisk/outgoing
Записанные сообщения хранятся в папке
/opt/var/spool/asterisk/voicemail/
/opt/var/spool/asterisk/voicemail/default
При постановке вызова на удержание звучит музыка (Music On Hold или MOH, пять композиций). Файлы находятся в папке /opt/share/asterisk/sounds/moh