487 просмотров
от (1.5 тыс. баллов) в категории Тонкая настройка

Здравствуйте, есть dialplan:

1, Answer()
n, Dial(SIP/111,3600,m()g)
# отправка почты
n, GotoIf($[ ${DIALSTATUS} != "ANSWER" ]?send:end)
n(send), AGI(DIALPLAN-APP-907D695D51AF9CBAB936A4EE7F1792AC.php)
n(end), Hangup()

dialplan отправляет сообщение на email если абонент 111 не ответил на звонок, или сбросил звонок, но если вызывающий не дождался ответа и положил трубку - сообщение не отправляется, dialplan вообще дальше не выполняется. Подскажите как отправить сообщение в таком случае?

1 Ответ

от (122 тыс. баллов)
выбран от
 
Лучший ответ

Можно попробовать использовать обработчик завершения вызова. 

Пример можно посмотреть в dialplan MIKOPBX. Вот пример:

    same => n,Set(CHANNEL(hangup_handler_wipe)=hangup_handler,s,1) 
   same => n,return 

[hangup_handler]
exten => s,1,NoOp(--- hangup - ${CHANNEL} ---)
   same => n,return

от (1.4 тыс. баллов)

вроде бы придумал как сделать, но уведомление не приходит

 == Setting global variable 'SIPDOMAIN' to '10.10.0.11'
    -- Executing [2200116@all_peers:1] ExecIf("PJSIP/1303-00001a31", "0?Hangup()") in new stack
    -- Executing [2200116@all_peers:2] Set("PJSIP/1303-00001a31", "cleanNumber=2200116") in new stack
    -- Executing [2200116@all_peers:3] ExecIf("PJSIP/1303-00001a31", "0?Goto(all_peers,2200116,4)") in new stack
    -- Executing [2200116@all_peers:4] Set("PJSIP/1303-00001a31", "__FROM_CHAN=PJSIP/1303-00001a31") in new stack
    -- Executing [2200116@all_peers:5] ExecIf("PJSIP/1303-00001a31", "1?Set(__OLD_LINKEDID=mikopbx-1619762259.15692)") in new stack
    -- Executing [2200116@all_peers:6] ExecIf("PJSIP/1303-00001a31", "1?Gosub(set_from_peer,s,1)") in new stack
    -- Executing [s@set_from_peer:1] NoOp("PJSIP/1303-00001a31", "__FROM_PEER set to 1303")
    -- Executing [s@set_from_peer:1] return("PJSIP/1303-00001a31", "")
    -- Executing [2200116@all_peers:7] ExecIf("PJSIP/1303-00001a31", "0?Gosub(set_orign_chan,s,1)") in new stack
    -- Executing [2200116@all_peers:8] ExecIf("PJSIP/1303-00001a31", "0?Set(CALLERID(num)=1303)") in new stack
    -- Executing [2200116@all_peers:9] ExecIf("PJSIP/1303-00001a31", "0?Set(CALLERID(name)=1303)") in new stack
    -- Executing [2200116@all_peers:10] ExecIf("PJSIP/1303-00001a31", "0?Set(__FROM_PEER=1303)") in new stack
    -- Executing [2200116@all_peers:11] Set("PJSIP/1303-00001a31", "CHANNEL(hangup_handler_wipe)=hangup_handler,s,1") in new stack
    -- Executing [2200116@all_peers:12] Gosub("PJSIP/1303-00001a31", "dial,2200116,1") in new stack
    -- Executing [2200116@dial:1] UserEvent("PJSIP/1303-00001a31", "CdrConnector,AgiData:eyJJU19PUkdOVCI6ZmFsc2UsIlVOSVFVRUlEIjoibWlrb3BieC0xNjE5NzYyMjU5LjE1NjkyX21GeGVrMSIsImFjdGlvbiI6ImRpYWwiLCJhZ2lfY2hhbm5lbCI6IlBKU0lQLzEzMDMtMDAwMDFhMzEiLCJkaWQiOiIiLCJkc3RfbnVtIjoiMjIwMDExNiIsImZyb21fYWNjb3VudCI6IjEzMDMiLCJsaW5rZWRpZCI6Im1pa29wYngtMTYxOTc2MjI1OS4xNTY5MiIsInNyY19jYWxsX2lkIjoiMF8zNTc2NDE2OTE3QDEwLjEwLjAuMTAxIiwic3JjX2NoYW4iOiJQSlNJUC8xMzAzLTAwMDAxYTMxIiwic3JjX251bSI6IjEzMDMiLCJzdGFydCI6IjIwMjEtMDQtMzAgMDg6NTc6MzkuODU3IiwidHJhbnNmZXIiOiIwIiwidmVyYm9zZV9jYWxsX2lkIjoiW0MtMDAwMDEyNDldIn0=")
    -- Executing [2200116@dial:1] return("PJSIP/1303-00001a31", "")
    -- Executing [2200116@all_peers:13] GosubIf("PJSIP/1303-00001a31", "0?all_peers-custom,2200116,1") in new stack
    -- Executing [2200116@all_peers:14] Goto("PJSIP/1303-00001a31", "peer_1303,2200116,1") in new stack
    -- Goto (peer_1303,2200116,1)
    -- Executing [2200116@peer_1303:1] NoOp("PJSIP/1303-00001a31", "Start outgoing calling...") in new stack
    -- Executing [2200116@peer_1303:2] Ringing("PJSIP/1303-00001a31", "") in new stack
    -- Executing [2200116@peer_1303:3] GosubIf("PJSIP/1303-00001a31", "0?peer_1303-custom,2200116,1") in new stack
    -- Executing [2200116@peer_1303:4] Set("PJSIP/1303-00001a31", "CHANNEL(hangup_handler_wipe)=hangup_handler_telegram,s,1") in new stack
    -- Executing [2200116@peer_1303:5] BackGround("PJSIP/1303-00001a31", "/storage/usbdisk1/mikopbx/media/custom/ServicehalloKarinafon") in new stack
       > 0x2b2e20085c60 -- Strict RTP learning after remote address set to: 10.10.0.101:12674
       > 0x2b2e20085c60 -- Strict RTP switching to RTP target address 10.10.0.101:12674 as source
    -- <PJSIP/1303-00001a31> Playing '/storage/usbdisk1/mikopbx/media/custom/ServicehalloKarinafon.slin' (language 'ru-ru')
  == Spawn extension (peer_1303, 2200116, 5) exited non-zero on 'PJSIP/1303-00001a31'
    -- Executing [h@peer_1303:1] ExecIf("PJSIP/1303-00001a31", "0?Gosub(dial_hangup,h,1)") in new stack
    -- PJSIP/1303-00001a31 Internal Gosub(hangup_handler_telegram,s,1) start
    -- Executing [s@hangup_handler_telegram:1] NoOp("PJSIP/1303-00001a31", "--- hangup - PJSIP/1303-00001a31 ---") in new stack
    -- Executing [s@hangup_handler_telegram:2] AGI("PJSIP/1303-00001a31", "DIALPLAN-APP-13202105B9F5EBB3A1CD41B5113E8329.php)") in new stack
 

 

от (1.5 тыс. баллов)
Судя по логу ваше php приложение запускается, проверьте php код и настройку почты
от (1.4 тыс. баллов)
почту тут проверять не зачем, т.к. она не используется, а вот код php уже несколько раз перепроверил, гляну конечно еще, спасибо
от (122 тыс. баллов)

PHP-AGI скрипт запускается, но по приложенному логу не видно кода возврата, должен вернуть 0 при успехе, если в ходе выполнения скрипта были ошибки, то вернет другой код. 

Для отладки AGI в консоли CLI asterisk можно дополнительно ввести команду agi set debug on

от (1.4 тыс. баллов)
разобрался и сделал, спасибо, теперь ломаю голову как организовать данный функционал в очереди.

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

Популярные теги

askozia входящие-вызовы настройка исходящие маршрутизация провайдер запись-разговоров входящие ivr исходящие-звонки обновление ошибка очередь провайдеры битрикс24 очередь-вызовов переадресация запись установка маршрут история-звонков mikopbx транк панель-телефонии-1с перевод-вызова перевод askozia7 askozia6 битрикс callerid интеграция голосовая-почта логи перехват-вызова ростелеком нерабочее-время факс модуль nat docker запись-разговора веб-интерфейс bitrix24 goip настройка-провайдер история диалплан почта журнал-звонков релиз gsm вызовы звонок внешние-номера web-интерфейс zabbix маршруты cdr sip панель pjsip переадресация-мобильный voicemail ascozia телефонная-книга аон мобильный звонков лицензирование вызовов редактор номер asterisk лицензия ami регистрация оповещения провайдеров время голосовая fax trunk разговоров группы-пользователей #mikopbx пропущенные-звонки донабор beeline monitoring тишина smtp cisco мобильные мультифон мегафон шлюз не-работает электронная-почта не-слышно-звук

2.8 тыс. вопросов

2.4 тыс. ответов

6.7 тыс. комментариев

465 тыс. пользователей

...