LINUX.ORG.RU
ФорумAdmin

Asterisk уведомление на почту о сбросе звонка переадресованного в ring groups

 ,


0

1

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

  1. Есть IVR с возможностью отправить вызов в 3 очереди, 1001, 1002, 1003
  2. Например, клиент жмет 1 и попадает в очередь 1001, но агенты там трубку не берут, потому что обед и все уехали в столовку.
  3. Далее звонок из очереди 1001 по таймауту идет в RingGroup 10001 в которой прописаны мобильные номера агентов
  4. АТС поочередно звонит на мобилки… клиент нервничает и завершает вызов

Вот на пункте 4 и надо отправить сообщение на почту агентам из RingGroup 10001 что они пропустили входящий. Так как на мобильном телефоне отобразится номер АТС (переадресация же) а не клиента, и агенты не могут перезвонить… За основу было взято решение https://github.com/pitzkey/FreePBX-MissedCalls/issues/1


;Adding the missed calls hangup handler using Macro() which current versions of FreePBX support.
[macro-dial-ringall-predial-hook]
exten => s,1,Noop(Entering user defined context in extensions_custom.conf to add missed calls hangup handler)
exten => s,n,Set(CHANNEL(hangup_handler_push)=missed-calls-email,s,1)
exten => s,n,MacroExit()

Все работает, но есть нюанс! Сообщения на почту приходят по всем RingGroup (У меня есть так же 10002 10003 и т.д.) Нужно как то прописать условие чтобы диалплан проверял ID номер RingGroup и если он равен 10006 то только тогда ушел на выполнение задачи missed-calls-email Что то типа такого:


[macro-dial-ringall-predial-hook]
exten => s,1,Noop(Entering user defined context in extensions_custom.conf to add missed calls hangup handler)
exten => s,n,ExecIf($["${ext-group(num)}" != 10006]?MacroExit())
exten => s,n,Set(CHANNEL(hangup_handler_push)=missed-calls-email,s,1)
exten => s,n,MacroExit()

только не работает так.



Последнее исправление: fordiego (всего исправлений: 1)
Ответ на: комментарий от Bloody

Не понял, можете кодом конструкцию написать приблизительно. Не знаю язык dialplan asterisk. На начальном уровне…

fordiego
() автор топика
Ответ на: комментарий от fordiego

Вы где-то в недрах dialplan вызываете макрос macro-dial-ringall-predial-hook (кстати обратите внимание, что макросы имеют статус deprecated). Так вот вызывайте макрос только перед звонком в группу 10006, а после группового вызова делайте Set(CHANNEL(hangup_handler_pop)=missed-calls-email,s,1)

Bloody ★★
()
Ответ на: комментарий от Bloody

Так как же это сделать, используется FreePBX, dialplan там динамический. Я это все вставляю в /etc/asterisk/extensions_custom.conf

fordiego
() автор топика
Ответ на: комментарий от fordiego

Ну я в этих случаях накатываю систему с нуля, астер собираю на билд машинах из исходников.

Bloody ★★
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.