quene и callback
Добавлено: 07 дек 2015, 12:35
Добрый день. Очень надеюсь на Вашу помощь, так как что то никак не получается с реализацией одной штуки, может я просто что то упускаю из виду. Задача стоит вроде бы и не сложная, сделать так, что бы при звонке извне, звонок сбрасывался, потом на этот номер астериск перезванивал и при поднятии трубки направлял вызов в очередь, если кратко то сделать callback и соединить его с очередью. В моей конфигурации используется астериск 1.6.2.24 Я пытался реализовать задачу следующим образом:
входящий контекст
Сам скрипт для генерации call -файла:
контекст для исхода, который используеться для маршрутизации вызова callback'а астериска звонившему номеру:
я привел только кусок, так как дальше идет для других операторов и все однотипное
ну и сам контекст для callback:
У меня через раз, то попадает вызов в очередь, то нет, не могу понять из-за чего, в логах ничего по этому поводу не нахожу.
входящий контекст
Код: Выделить всё
context in-context {
_X. => {
NoOp("Call callback");
System(/etc/asterisk/callback.sh ${CALLERID(num)}) ;
Hangup();
};
};
Код: Выделить всё
#!/usr/bin/php -q
<?php
ob_implicit_flush(true);
set_time_limit(0);
$number = $argv[1];
$cf = fopen("/tmp/".$number,"w+");
fputs($cf,"Channel: Local/".$number."@operator-out\n");
fputs($cf,"Context: callback\n");
fputs($cf,"Extension: 333\n");
fputs($cf,"CallerID:".$number."\n");
fputs($cf,"MaxRetries: 100\n");
fputs($cf,"RetryTime: 30\n");
fclose($cf);
copy("/tmp/".$number,"/var/spool/asterisk/outgoing/".$number);
unlink("/tmp/".$number);
?>
Код: Выделить всё
context operator-out {
_050XXXXXXX => {
Set(VOLUME(TX)=7);
Set(VOLUME(RX)=7);
Dial(SIP/101/${EXTEN},120);
if ("${DIALSTATUS}" = "ANSWER") {
HangUp(17);
};
if ("${DIALSTATUS}" = "BUSY") {
HangUp(17);
};
Dial(SIP/301/${EXTEN},120);
HangUp(17);
};
}
ну и сам контекст для callback:
Код: Выделить всё
context callback {
333 => {
NoOp("Callback called");
Answer();
Wait(1);
Playback(pri);
Queue(test_quene,tTwW,,,300);
Hangup(17);
}
}