Добрый день.
Собрался перейти на этот продукт (собственно уже приобрел и настраиваю), но возник момент. Предыдущая телефония работала на базе стандартного asterisk и там у меня работал этот функционал. Реализовывался он следующим образом:
Делался dialplan вида:
Что тут было?
Скрипт callback.sh представляет собой следующее:
Т.е. при входящем звонке проверялось, содержится ли номер входящего в списке для callback и в случае совпадения генерился файл с расширением .call и помещался в папку outgoing asterisk. Asterisk самостоятельно проверяет содержимое этой папки и выполняет действия описанные в содержащихся файлах. В dialplane обработка на этом заканчивалась, шел вызов приложения Hangup().
В Askozia нет папки outgoing, путь немного другой /var/asterisk/spool, но там нужной папки нет.
Вопрос, как реализовать callback? Пробовал маршрутами вызовов, но без hangup() никак, а hangup() завершает маршрут безусловно...
Собрался перейти на этот продукт (собственно уже приобрел и настраиваю), но возник момент. Предыдущая телефония работала на базе стандартного asterisk и там у меня работал этот функционал. Реализовывался он следующим образом:
Делался dialplan вида:
Код |
---|
[DID_trunk_Test] exten = 4951234567,1,System(/var/spool/asterisk/callback.sh "${CALLERID(num)}") exten = 4951234567,2,GotoIf($["${SYSTEMSTATUS}" = "SUCCESS"]?3:4) exten = 4951234567,3,Hangup() exten = 4951234567,4,System(/var/spool/asterisk/logcid.sh "${CALLERID(num)}") Далее дальнейшая обработка |
Скрипт callback.sh представляет собой следующее:
Код |
---|
#!/bin/bash if [[ "$1" == "" ]]; then exit 1 fi if [[ "$1" == "`cat /var/spool/asterisk/callback-phones.list | awk '{print $1}' | grep -e \"^$1$\"`" ]]; then sleep 8 cat <<EOF >> /tmp/$1.call Channel: SIP/Название_Транка/89161234567 Context: auto-dialout Extension: s EOF chown asterisk.asterisk /tmp/$1.call mv /tmp/$1.call /var/spool/asterisk/outgoing/ echo `date` callback to `cat /var/spool/asterisk/callback-phones.list | grep -e "^$1"` >> /var/spool/asterisk/callback.log exit 0 fi exit 1 |
В Askozia нет папки outgoing, путь немного другой /var/asterisk/spool, но там нужной папки нет.
Вопрос, как реализовать callback? Пробовал маршрутами вызовов, но без hangup() никак, а hangup() завершает маршрут безусловно...