Добрый день, прошу помочь реализовать задуманное. Наверняка всем участникам это тоже пригодится.
Необходимо отправлять уведомления на почту о сбросе звонка – это когда клиент сам сбросил вызов не дождавшись ответа.
Имею следующую маршрутизацию входящего вызова:
- Есть IVR с возможностью отправить вызов в 3 очереди, 1001, 1002, 1003
- Например, клиент жмет 1 и попадает в очередь 1001, но агенты там трубку не берут, потому что обед и все уехали в столовку.
- Далее звонок из очереди 1001 по таймауту идет в RingGroup 10001 в которой прописаны мобильные номера агентов
- АТС поочередно звонит на мобилки… клиент нервничает и завершает вызов
Вот на пункте 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()
только не работает так.
