Страница 1 из 1

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

СообщениеДобавлено: 08 окт 2014, 14:00
AlexR333
Приветствую вас, коллеги!

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

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

Что нашли:
Замечательная статья, почти реализующая нашу задумку http://hotfix.pro/blog/item/5-freepbx-co%20...%20calls.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

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

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

СообщениеДобавлено: 08 окт 2014, 15:32
gosha
перед входом в очередь ставить кастомную перемнную которую потом проверять в вашем h

Код: выделить все
[q-exten]
exten => _X.,1,Set(QID=xxx)
exten => _X.,n,Queue(....)

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


как это будет в freepbx хз.

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

СообщениеДобавлено: 08 окт 2014, 16:03
ded
Существует задача, реализовать уведомления (в любом виде) о пропущенных звонках диспетчеров (не самых расторопных надо сказать), дабы они могли перезвонить клиенту.
Некорректно поставлена задача.
При правильном функционале очереди (очередей) нет понятия пропущенный звонок. Есть только недождавшиеся абоненты, которые послушали 30 сек музыку в очереди и положили трубку. Таких проще выявлять через аналитику и мониторинг очередей, супервизору очереди надо отфильтровать по статусу да и кликать по номерам, вызывая click2dial. Это мне думается проще , чем пересылать на почту уведомление.
В вэб интерфейсе очередей есть внизу Fail Over Destination. Если сделаете групповые ящики голосовой почты Vocemail blast то можно перенаправлять туда для каждой очереди. Если не получится - в стандартной обработке очередей есть переменная NODEST, можно её использовать для обработки раздельных посылок голосовой почты для каждой очереди.

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

СообщениеДобавлено: 09 авг 2019, 13:00
MimKr
Приветствую вас, коллеги!
От предшественника достался вот такой файл extensions_override_freepbx.conf
Код: выделить все
[ext-queues]
exten => h,1,ExecIf($["${CDR(dstchannel)}"=""]?System(echo '${CALLERID(num)}' '${STRFTIME(${EPOCH},,%Y-%m-%d %H:%M:%S)}'  ${EXTENSION_STATE(201)}  ${EXTENSION_STATE(202)} ${EXTENSION_STATE(203)} >>/home/me/count))
exten => h,n,Macro(hangupcall,)

Утверждают, что всё написано верно. НО не работает. По указанному пути файлик count не дописывается и не создаётся. При запуске отдельно echo.... вывод команды такой:
-bash: ${EXTENSION_STATE(201)}: bad substitution

Подскажите, пожалуйста, откуда копать! Опыта с FreePBX мало. Только учусь. СПАСИБО!
(FreePBX 15.0.16)

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

СообщениеДобавлено: 09 авг 2019, 15:50
ded
Копать в сторону изучения синтаксиса языка диал-плана.
Или раздел Бизнес.
Учиться на форуме публикуя свои или чужие куски кода (а почему нен работает?) - непродуктивно.

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

СообщениеДобавлено: 13 авг 2019, 07:09
MimKr
Не знаю, но отвечу. Принято. :D