ВидеоКонф(ВКС)  ::   FAQ  ::   Поиск  ::   Регистрация  ::   Вход

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

Обо всем касательно TrixBox, Elastix, AstPBX и всех других дистрибутивов

Модераторы: april22, Zavr2008

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

Сообщение AlexR333 » 08 окт 2014, 14:00

Приветствую вас, коллеги!

Что имеем:
- 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

Буду признателен за советы, как лучше сей диалплан переделать
AlexR333
 
Сообщений: 1
Зарегистрирован: 08 окт 2014, 13:54

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

Сообщение gosha » 08 окт 2014, 15:32

перед входом в очередь ставить кастомную перемнную которую потом проверять в вашем 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 хз.
gosha
 
Сообщений: 370
Зарегистрирован: 06 сен 2010, 17:41

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

Сообщение ded » 08 окт 2014, 16:03

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

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

Сообщение MimKr » 09 авг 2019, 13:00

Приветствую вас, коллеги!
От предшественника достался вот такой файл 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)
MimKr
 
Сообщений: 2
Зарегистрирован: 09 авг 2019, 12:16

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

Сообщение ded » 09 авг 2019, 15:50

Копать в сторону изучения синтаксиса языка диал-плана.
Или раздел Бизнес.
Учиться на форуме публикуя свои или чужие куски кода (а почему нен работает?) - непродуктивно.
ded
 
Сообщений: 15801
Зарегистрирован: 26 авг 2010, 19:00

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

Сообщение MimKr » 13 авг 2019, 07:09

Не знаю, но отвечу. Принято. :D
MimKr
 
Сообщений: 2
Зарегистрирован: 09 авг 2019, 12:16


Вернуться в Готовые VoIP дистрибутивы

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 13

© 2008 — 2024 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH