freeswitchforum.com

Форум поддержки FreeSWITCH

FreeSWITCH is a registered trademark of Anthony Minessale. Official FreeSWITCH site.

Текущее время: 07 апр 2020 14:49

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 3 ] 
Автор Сообщение
СообщениеДобавлено: 13 фев 2020 17:19 

Зарегистрирован: 03 июн 2016 18:05
Сообщения: 21
Добрый день.
Подскажите, пожалуйста, как продолжить обработку диалплана или запустить выполнение скрипта, если абонент, инициировавший вызов первый кладет трубку, не дождавшись ответа? А именно 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, по которому я бы хотел выполнять дальнейшие действия.

Может какие-то другие варианты есть?

Заранее спасибо.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 13 фев 2020 21:28 
FreeSWITCH_GuRu

Зарегистрирован: 22 авг 2012 09:52
Сообщения: 1644
при мертвом канале в FS уже ничего не сделать кроме вызова api_hangup_hook
или смотрите в CDR и делайте что хотите с этим

_________________
ЛС: @rostel
Сообщество: @ru_freeswitch


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 17 фев 2020 15:41 

Зарегистрирован: 03 июн 2016 18:05
Сообщения: 21
Может кому понадобится.
Сделал следующим образом:

Диалплан:
Код:
<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


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 3 ] 

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

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


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB