Перейти к содержимому


Фотография
- - - - -

CallBack для Asterisk (заказ обратного звонка)

callback asterisk

  • Авторизуйтесь для ответа в теме
В этой теме нет ответов

#1 Demonik

Demonik

    Учусь Linux

  • Администраторы
  • 41 сообщений

Отправлено 01 Июнь 2017 - 11:55

Для того что бы реализовать callback в Asterisk, т.е. заказать обратный звонок для абонента, если допустим он не хочет ждать очередь пока оператор освободиться, станция позвонит и оператору и абоненту из вне. Делаем следующее:

 

1. Создаем скрипт с именем callback.sh в директории /var/lib/asterisk/agi-bin/ со следующим содержанием:

#Get number to call
number=$1
callfile=/tmp/$number.call
rm -Rf $callfile

#Create call file
touch $callfile
echo "Channel: Local/docall@operatorspool" >> $callfile
echo "MaxRetries: 10" >> $callfile
echo "RetryTime: 20" >> $callfile
echo "WaitTime: 30" >> $callfile
echo "Context: bnumleg" >> $callfile
echo "Extension: docall" >> $callfile
echo "Priority: 1" >> $callfile
echo "Set: BNUM=$1" >> $callfile

#Move call file to asterisk directory
mv $callfile /var/spool/asterisk/outgoing/

exit 0

Даем ему права на запуск:

chmod +x /var/lib/asterisk/agi-bin/callback.sh

2. Настраиваем диалплан в Asterisk в файле extension.conf.

    Добавляем контексты в диалплан:

[operatorspool] 
exten => docall, 1, Verbose(звоним операторам)
exten => docall, n, Wait(2)
exten => docall, n, Queue(имя очереди или куда там хотим закинуть)

[bnumleg]
exten => docall, 1, Verbose(звоним абоненту B)
exten => docall, n, Dial(SIP/ttk-trunk08/${BNUM}) (Подставляем свой транк)
exten => docall, n, Hangup()

Если обратный звонок нужен в меню IVR, то в меню нажатия кнопок добавляем:

exten => 9,1,System(/var/lib/asterisk/agi-bin/callback.sh ${CALLERID(num)})

В этом случае при нажатии цифры 9 произойдёт обратный звонок, первым свободным оператором из очереди.

 

Если обратный звонок нужен во время ожидании абонента в очереди, то в самой очереди (в файле queues.conf) добавляем параметр «context», к примеру context = callback, и в файле extensions.conf добавляем соответствующий контекст:

[callback]
exten => 9,1,System(/var/lib/asterisk/agi-bin/callback.sh ${CALLERID(num)})

Так же как и в первом варианте при нажатии 9 будет заказан обратный звонок.


Есть вопросы или пожелания? demonik.0789@gmail.com

Сайт: https://asteriskperm.ru/

Группа ВК: ССЫЛКА (Заходим и вступаем! ;D)