Size: a a a

2020 August 25

е

енот in ru_freeswitch
хм, видимо хреново прописал?
источник

е

енот in ru_freeswitch
я знаю, как проверить
источник

EK

Evgeniy K in ru_freeswitch
енот
хм, видимо хреново прописал?
Возможно. У меня для гейта в сип используется kamailio с двумя адресами: внешний и внутренний. Также turn имеет два адреса (днс-имя в сплит-брейне). Дык вот внутренний клиент через сплит получает только внутренние адреса в кандидатах, а внешние - еще и внешние. TURN собственный. Возможно что-то у вас такое.
источник

е

енот in ru_freeswitch
хм, я не могу прозвонить из консоли вебртц-юзера
источник

е

енот in ru_freeswitch
а, хм, инвайт то приходит
источник

е

енот in ru_freeswitch
инкомпатэйбл
источник

е

енот in ru_freeswitch
блин
источник
2020 August 26

F

Frukt in ru_freeswitch
Всем привет! Подскажите, пожалуйста,  как можно через 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

но не работает. Подскажите, пожалуйста, что делаю не так? Гугл ответов не дает :\
источник

P

Pavel Balashov 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

но не работает. Подскажите, пожалуйста, что делаю не так? Гугл ответов не дает :\
Смотрели в гите ? Кажется простые примеры были где-то в папках ESL или около.
источник

P

Pavel Balashov in ru_freeswitch
Или этот скрипт Вы из дайлплана как-то вызывать желаете ?
источник

F

Frukt in ru_freeswitch
Pavel Balashov
Смотрели в гите ? Кажется простые примеры были где-то в папках ESL или около.
да вот выше пример оттуда как раз. правда там сессия названа obSession. 3 варианта уже попробовал, ни один не заводится. не могу понять почему (
источник

P

Pavel Balashov in ru_freeswitch
Frukt
да вот выше пример оттуда как раз. правда там сессия названа obSession. 3 варианта уже попробовал, ни один не заводится. не могу понять почему (
В ванильном дайлплане, кажется есть экстеншены с луа скриптами.
источник

F

Frukt in ru_freeswitch
Pavel Balashov
Или этот скрипт Вы из дайлплана как-то вызывать желаете ?
я скриптом вызываю звонок на номер и указываю скрипт по которому должна идти сессия. Вот статусы звонка пытаюсь поймать
источник

P

Pavel Balashov in ru_freeswitch
Первый скрипт делает originate на экстеншн дайлплана, где указан запуск второго скрипта ?
источник

P

Pavel Balashov in ru_freeswitch
Frukt
я скриптом вызываю звонок на номер и указываю скрипт по которому должна идти сессия. Вот статусы звонка пытаюсь поймать
Выше уточнил.
источник

F

Frukt in ru_freeswitch
Pavel Balashov
Первый скрипт делает originate на экстеншн дайлплана, где указан запуск второго скрипта ?
да, все так
источник

F

Frukt in ru_freeswitch
звонок идет, проходит, если отвечен, то выполняются все необходимые действия. А вот если занят или не отвечен, но события не ловятся почему то
источник

P

Pavel Balashov in ru_freeswitch
Frukt
да, все так
Originate как делается ? Что-то в духе "fs_cli -x ..." ?
источник

h

halt✯ 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

но не работает. Подскажите, пожалуйста, что делаю не так? Гугл ответов не дает :\
Вот же кусок скрипта из ванильного... Видимо ты накосячил с session...

freeswitch.consoleLog("WARNING","Before first call\n")
first_session = freeswitch.Session("user/1000")
   
if (first_session:ready()) then
   freeswitch.consoleLog("WARNING","first leg answered\n")
   second_session = freeswitch.Session("user/1002")
   
if (second_session:ready()) then
   freeswitch.consoleLog("WARNING","second leg answered\n")
   freeswitch.bridge(first_session, second_session)
   freeswitch.consoleLog("WARNING","After bridge\n")
else
   freeswitch.consoleLog("WARNING","second leg failed\n")
end
else
   freeswitch.consoleLog("WARNING","first leg failed\n")
end


-- Initiate an outbound call
obSession = freeswitch.Session("sofia/192.168.0.4/1002")

-- Check to see if the call was answered
if obSession:ready() then
   -- Do something good here
else    -- This means the call was not answered ... Check for the reason
   local obCause = obSession:hangupCause()
   freeswitch.consoleLog("info", "obSession:hangupCause() = " .. obCause )
   if ( obCause == "USER_BUSY" ) then              -- SIP 486
      -- For BUSY you may reschedule the call for later
   elseif ( obCause == "NO_ANSWER" ) then
      -- Call them back in an hour
   elseif ( obCause == "ORIGINATOR_CANCEL" ) then   -- SIP 487
      -- May need to check for network congestion or problems
   else
      -- Log these issues
   end
end
источник

F

Frukt in ru_freeswitch
я его и брал за основу. Здесь идет вызов вот так obSession = freeswitch.Session("sofia/192.168.0.4/1002")
а у меня идет вот так по апи originate {origination_caller_id_number=200,call_timeout=25}user/201@45.81.127.82 &lua(test.lua)

В самом test.lua уже идет if (session:ready()) then и тот код, что я выше скидывал. По идее должно работать ) но чтот не так.  Как можно сессию поймать, которая инициализировалась?
источник