Size: a a a

2020 August 26

ЛП

Лях Петр in ru_freeswitch
Frukt
Всем привет! Подскажите, пожалуйста,  как можно через lua отслеживать статус звонка (занят, недоступен).  Пробую вот такую вот реализацию
if (session:ready()) then
-- ?
else
 -- local reason = session:hangupCause()
 local reason = session:getVariable("originate_disposition");
   freeswitch.consoleLog("info", "session:hangupCause() = " .. reason )
   if ( reason == "USER_BUSY" ) then              
   freeswitch.consoleLog("info", "session:hangupCause() = " .. reason )
   elseif ( reason == "NO_ANSWER" ) then
   freeswitch.consoleLog("info", "session:hangupCause() = " .. reason )
   elseif ( reason == "ORIGINATOR_CANCEL" ) then  
   freeswitch.consoleLog("info", "session:hangupCause() = " .. reason )
   end
end

но не работает. Подскажите, пожалуйста, что делаю не так? Гугл ответов не дает :\
https://freeswitchforum.com/viewtopic.php?f=6&t=980

гля это может поможет
если тебе прям важно словить originate_disposition

по хэнгап хуку
источник

F

Frukt in ru_freeswitch
Лях Петр
https://freeswitchforum.com/viewtopic.php?f=6&t=980

гля это может поможет
если тебе прям важно словить originate_disposition

по хэнгап хуку
спасибо, это не видел. попробую
👍🏻
источник

AK

Andrey Kryukov in ru_freeswitch
коллеги, приветствую, есть вопрос на счет sipinfo . установлен вызов  а ---> fs ----> б   . сбриджеван, отвечен. от абонента б приходит sipinfo пакет , я почему то не вижу его в ES , может я не то жду
источник

AK

Andrey Kryukov in ru_freeswitch
и в дополнение вопрос , как самому послать sipinfo пакет из FS
источник

A

Alexey in ru_freeswitch
было вроде что-то send_info
источник
2020 August 27

F

Frukt in ru_freeswitch
Лях Петр
https://freeswitchforum.com/viewtopic.php?f=6&t=980

гля это может поможет
если тебе прям важно словить originate_disposition

по хэнгап хуку
в общем, не сработало.

Так и не могу поймать ответы user_busy, no_answer когда звонок совершаешь по bgapi originate

Если кто знает как решить задачу, буду рад подсказке
источник

IO

Ihor Olkhovskyi in ru_freeswitch
Приветствую.
А такой вопрос по ивентам и иже с ними.

Есть желание сделать CDR по ESL. Сам FS рекомендует использовать CHANNEL_HANGUP_COMPLETE. Проблема в том, что этих событий в рамках одного звонка довольно дофига. Например, если есть несколько вызываемых абонентов, и один из них отобъет звонок, то придет это событие с кодом USER_BUSY.
Но по факту кто-то другой может ответить.
Или, например, при звонке есть 2 таких обытия. По 1 на ногу. Проблема в том, что при записи, например, данные про файл и факт записи лежат только в 1 ноге. И нужно ждать 2е событие и как-то синхронизироваться через общий кэш

Есть ли в FS какое-то событие, которое вызывается именно по факту записи данных в CDR?
источник

D

Denis 災 nobody in ru_freeswitch
есть bridge_complete или как-то так
источник

D

Denis 災 nobody in ru_freeswitch
но его не будет в ряде случаев
источник

IO

Ihor Olkhovskyi in ru_freeswitch
Например, при отсутствии оного )
источник

D

Denis 災 nobody in ru_freeswitch
фс в этом плане говно
источник

АХ

Алексей Хабуляк... in ru_freeswitch
Ihor Olkhovskyi
Приветствую.
А такой вопрос по ивентам и иже с ними.

Есть желание сделать CDR по ESL. Сам FS рекомендует использовать CHANNEL_HANGUP_COMPLETE. Проблема в том, что этих событий в рамках одного звонка довольно дофига. Например, если есть несколько вызываемых абонентов, и один из них отобъет звонок, то придет это событие с кодом USER_BUSY.
Но по факту кто-то другой может ответить.
Или, например, при звонке есть 2 таких обытия. По 1 на ногу. Проблема в том, что при записи, например, данные про файл и факт записи лежат только в 1 ноге. И нужно ждать 2е событие и как-то синхронизироваться через общий кэш

Есть ли в FS какое-то событие, которое вызывается именно по факту записи данных в CDR?
ну вы можете определить по CDR что это Б-лег и отложить в буфер запись. Дождаться когда придет hangup по инициирующему каналу и уже все события собрать.
источник

АХ

Алексей Хабуляк... in ru_freeswitch
Denis 災 nobody
фс в этом плане говно
но все равно лучше чем астериск)
источник

D

Denis 災 nobody in ru_freeswitch
нужно помечать что эта нога была А и потом ловить признак во всех хэнгапах, причём в ряде случаев и это не спасает
источник

D

Denis 災 nobody in ru_freeswitch
например loopback без плясок - и все метки теряются
источник

IO

Ihor Olkhovskyi in ru_freeswitch
Алексей Хабуляк
ну вы можете определить по CDR что это Б-лег и отложить в буфер запись. Дождаться когда придет hangup по инициирующему каналу и уже все события собрать.
Я пока так и делаю. Но это как-то... Плохо
источник

D

Dmitriy in ru_freeswitch
можно попробовать клеить ноги по uuid и out_uuid
источник

D

Denis 災 nobody in ru_freeswitch
еще 3-way добавляет веселья. И конференции. И app без ноги Б - например в ivr и hangup
источник

D

Dmitriy in ru_freeswitch
в исх ноге out_uuid = uuid вх. ноги
источник

D

Denis 災 nobody in ru_freeswitch
у меня были развесистые костыли.. но тот код остался на старой работе
источник