AF
Asterisk Forum
обсуждения телефонии, VoIP и IP-PBX
12разделов
5 423тем
34 385сообщений
← К списку тем

Уведомление о пропущенных вызовах

Asterisk GUI 3 сообщений -
#1

Доброго времени суток!

Что имеем:
- FreePBX 2.11.0.38, Asterisk Ver. 10.12.2
- Несколько очередей (например) Queue1, Queue2, Queue3 за которыми диспетчера отвечают на звонки
- Админим в основном через веб-интерфейс FreePBX, в базу и в конфигурационные файлы лазим только по большой надобности, кастомные контексты тоже не пишем - нет необходимости
- Диалпланы писать руками не умеем, мат.часть читаем, но как обычно нужно "вчера"

Что нужно:
Существует задача, реализовать уведомления (в любом виде) о пропущенных звонках диспетчеров (не самых расторопных надо сказать), дабы они могли перезвонить клиенту. Соответственно нужно получать номер звонившего (в нашем случае CallerID полагаю), номер очереди или номера на который он звонил (номера очереди вполне достаточно), желательно еще время звонка и сколько он звонил, прежде чем бросил это изнуряющее занятие.

Что нашли:
Замечательная статья, почти реализующая нашу задумку http://hotfix.pro/blog/item/5-freepbx-co ... calls.html. Действия, описываемые в ней, работают отлично, но уведомления о пропущенных звонках приходят на один email со всех очередей сразу, это не то, что нужно. Нужно как-то модернизировать диалплан таким образом, чтобы с одной конкретной очереди приходили уведомления на один конкретный email, ну и как уже говорилось выше желательно знать время звонка и сколько секунд человек ждал, пока ему ответят.

Привожу диалплан, который указан в статье для тех, кто поленился перейти поссылке

Код:
[ext-queues] ;работает для всех очередей вызова, при внешних вызовах

exten => h,1,ExecIf($["${CDR(dstchannel)}"=""]?System(/usr/local/bin/sendEmail.pl -f pbx1@company.ru -t info@company.ru -u "Queue ${NODEST} missed call from ${CALLERID(num)}" -m "Missed call in Queue ${NODEST} from ${CALLERID(num)}" -o message-charset=UTF-8))

exten => h,2,Macro(hangupcall,)


Изменения вносятся в файл /etc/asterisk/extensions_override_freepbx.conf

Буду признателен за советы, как лучше сей диалплан переделать
#2

Есть переменная ${QUEUENAME},которая Вам покажет номер (название) очереди. Далее можете ее обрабатывать приложением ExecIf/GotoIf.

В отношении данных о звонке и агентов(операторов),
в настройке очереди установите следующие параметры:
setqueueentryvar=yes
setqueuevar=yes
setinterfacevar=yes

и доставайте переменные которые интересны.
#3

extensions_override_freepbx.conf
[ext-queues]
exten=>h,1,Verbose(0,HungUP!!!!!!!!!!!!!!!!!!!!!!!!!!!)
exten=>h,n,GotoIf($["${CDR(dstchannel)}"=""]?:hangup)
exten=>h,n,GotoIf($["${NODEST}"="5000"]?:step1)
exten=>h,n,System(/usr/local/bin/sendEmail.pl -f info@info.com -t info@info.com -u "Пропущен звонок ${CALLERID(num)}" -m "Пропущен звонок с номера ${CALLERID(num)} \nСрочно перезвоните Клиенту.")
exten=>h,n,Macro(hangupcall,)
exten=>h,n(step1),GotoIf($["${NODEST}"="7004"]?:hangup)
exten=>h,n,System(/usr/local/bin/sendEmail.pl -f info@info.com -t info@info.com -u "Пропущен звонок ${CALLERID(num)}" -m "Пропущен звонок с номера ${CALLERID(num)} \nСрочно перезвоните Клиенту.")
exten=>h,n(hangup),Verbose(0,${CDR(dstchannel)})
exten=>h,n,Macro(hangupcall,)