freeswitchforum.com https://freeswitchforum.com/ |
|
Обработка вызова, если абонент А положил трубку https://freeswitchforum.com/viewtopic.php?f=6&t=980 |
Страница 1 из 1 |
Автор: | argentum [ 13 фев 2020 17:19 ] |
Заголовок сообщения: | Обработка вызова, если абонент А положил трубку |
Добрый день. Подскажите, пожалуйста, как продолжить обработку диалплана или запустить выполнение скрипта, если абонент, инициировавший вызов первый кладет трубку, не дождавшись ответа? А именно Originate Failed. Cause: ORIGINATOR_CANCEL Что я пробовал? 1. Код: <action application="set" data="hangup_after_bridge=false"/> <action application="set" data="continue_on_fail=true"/> Не работает. FS не продолжает обработку диалплана если абонент А положил трубку первым. 2. Код: <action application="set" data="api_hangup_hook=lua Test.lua ${originate_disposition} '${caller_id_number}' '"/> Не работает. FS в этом случае не знает переменной ${originate_disposition}, а она важна. Это тот самый Cause: ORIGINATOR_CANCEL, по которому я бы хотел выполнять дальнейшие действия. Может какие-то другие варианты есть? Заранее спасибо. |
Автор: | Vlad1983 [ 13 фев 2020 21:28 ] |
Заголовок сообщения: | Re: Обработка вызова, если абонент А положил трубку |
при мертвом канале в FS уже ничего не сделать кроме вызова api_hangup_hook или смотрите в CDR и делайте что хотите с этим |
Автор: | argentum [ 17 фев 2020 15:41 ] |
Заголовок сообщения: | Re: Обработка вызова, если абонент А положил трубку |
Может кому понадобится. Сделал следующим образом: Диалплан: Код: <action application="set" data="session_in_hangup_hook=true"/> <action application="export" data="api_hangup_hook=lua script.lua"/> Скрипт: Код: local originate_disposition = env:getHeader
("variable_originate_disposition") local caller = env:getHeader ("variable_effective_caller_id_number") local telegram = env:getHeader ("variable_curl_response_data") local name = env:getHeader ("variable_effective_caller_id_name") local date = env:getHeader ("variable_RUS_DATE") if tostring(originate_disposition) == 'ORIGINATOR_CANCEL' then os.execute(string.format("нужное действие",caller,name,date)); end |
Страница 1 из 1 | Часовой пояс: UTC + 4 часа |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |