Size: a a a

2020 October 21

a

agic in ru_freeswitch
Archawka
а голый фс даст всякие игрушки класса конференц-комнат, follow-me, и так далее?
только одетый конфигом
источник

A

Archawka in ru_freeswitch
Borik Bobrujskov
Откройте ванильную конфигурацию фрисвича и почитайте её вдумчиво.
найти бы fs cookbook переведенный
источник

BB

Borik Bobrujskov in ru_freeswitch
источник

A

Archawka in ru_freeswitch
окей, если продолжать плакать и колоться. получается мне нужно выбрать один фьюжн главным из соображений надежности/доступности, правильно?
источник

A

Archawka in ru_freeswitch
спасибо что дали об вас подумать. ушел переваривать.
источник

BB

Borik Bobrujskov in ru_freeswitch
Я бы делал не так. Я бы сделал звонки фьюжнов друг в друга просто в виде
<action application="bridge" data="sofia/external/sip:${destination_number}@1.1.1.1:5080"/>
Но как это правильно сделать во фьюжене я не подскажу
источник

AK

Andrey Kryukov in ru_freeswitch
Коллеги, запнулся о вроде тривиальную задачу
Абонент-А сбриджевался с абонентом Б идет разговор.
При этом назначены фичер-коды для абонента Б
Во время разговора Б нажимаем фичеркоды, начинает выполняться скрипт lua  в котором происходит  bgapi originate на абонента С
Входные данные, я знаю uuid всех 3-х плеч
Как сделать так, чтобы по ответу С произошло соединение А с С , а вызов с абонентом Б был завершен. При этом А и Б должны продолжать разговаривать вплоть до наступления события поднятия трубки на стороне С.
источник

АХ

Алексей Хабуляк... in ru_freeswitch
А чем обычный attended трансфер не устроил?)
источник

АХ

Алексей Хабуляк... in ru_freeswitch
А. Вам не нужно чтобы абонент А был на холде?
источник

BB

Borik Bobrujskov in ru_freeswitch
Andrey Kryukov
Коллеги, запнулся о вроде тривиальную задачу
Абонент-А сбриджевался с абонентом Б идет разговор.
При этом назначены фичер-коды для абонента Б
Во время разговора Б нажимаем фичеркоды, начинает выполняться скрипт lua  в котором происходит  bgapi originate на абонента С
Входные данные, я знаю uuid всех 3-х плеч
Как сделать так, чтобы по ответу С произошло соединение А с С , а вызов с абонентом Б был завершен. При этом А и Б должны продолжать разговаривать вплоть до наступления события поднятия трубки на стороне С.
Повесить на originate плеча C хук api_on_answer uuid_bridge
источник

AK

Andrey Kryukov in ru_freeswitch
Andrey Kryukov
Коллеги, запнулся о вроде тривиальную задачу
Абонент-А сбриджевался с абонентом Б идет разговор.
При этом назначены фичер-коды для абонента Б
Во время разговора Б нажимаем фичеркоды, начинает выполняться скрипт lua  в котором происходит  bgapi originate на абонента С
Входные данные, я знаю uuid всех 3-х плеч
Как сделать так, чтобы по ответу С произошло соединение А с С , а вызов с абонентом Б был завершен. При этом А и Б должны продолжать разговаривать вплоть до наступления события поднятия трубки на стороне С.
что-то вроде того
api = freeswitch.API();
uuid3 = api:executeString("create_uuid");
originate_str3 = "{origination_uuid="..uuid3.."}sofia/gateway/gw_name/71234567"
session3 = freeswitch.Session(originate_str3);
if (session3:ready()) then
freeswitch.bridge(session1, session3);
session2:hangup();
end
источник

AK

Andrey Kryukov in ru_freeswitch
Алексей Хабуляк
А. Вам не нужно чтобы абонент А был на холде?
Да, совершенно точно, хочется бесшовно соединять вызовы (Абонент С это тот же абонент Б, но с другой локации, другой сип-софтфон или телефон и т.д.)
источник

BB

Borik Bobrujskov in ru_freeswitch
Andrey Kryukov
что-то вроде того
api = freeswitch.API();
uuid3 = api:executeString("create_uuid");
originate_str3 = "{origination_uuid="..uuid3.."}sofia/gateway/gw_name/71234567"
session3 = freeswitch.Session(originate_str3);
if (session3:ready()) then
freeswitch.bridge(session1, session3);
session2:hangup();
end
Вот очень плохой вариант
источник

AK

Andrey Kryukov in ru_freeswitch
Borik Bobrujskov
Вот очень плохой вариант
почему? в том плане, что я как бы без претензий, просто можете подсказать более развернуто, что не так или что плохо работает и почему, спасибо заранее
источник

BB

Borik Bobrujskov in ru_freeswitch
лучше заменить это чем-то вроде:
local originate_str3 = '{api_on_answer="uuid_bridge ' .. uuida .. ' ' .. uuidc .. ' "}sofia/gateway/gw_name/71234567'
источник

AK

Andrey Kryukov in ru_freeswitch
🙏 аааа понятно, я допер, всем спасибо
источник

BB

Borik Bobrujskov in ru_freeswitch
потому что луа имеет свойство блокироваться в довольно неожиданнных местах. session:WaitForAnswer() похерили, а все остальные варианты  - это гонять пустой цикл until session:ready(), в котором делать обязательно slip(), который в свою очередь блокирует тред обработки звонка, что приводит к проблемам с обработкой звука в этом звонке. В общем, не делайте так
источник

AK

Andrey Kryukov in ru_freeswitch
Borik Bobrujskov
потому что луа имеет свойство блокироваться в довольно неожиданнных местах. session:WaitForAnswer() похерили, а все остальные варианты  - это гонять пустой цикл until session:ready(), в котором делать обязательно slip(), который в свою очередь блокирует тред обработки звонка, что приводит к проблемам с обработкой звука в этом звонке. В общем, не делайте так
Спасибо за пояснения, целую Вашу душу )
источник

BB

Borik Bobrujskov in ru_freeswitch
Andrey Kryukov
Спасибо за пояснения, целую Вашу душу )
Пожалуйста, но я Вас боюсь))))
источник

AK

Andrey Kryukov in ru_freeswitch
Borik Bobrujskov
лучше заменить это чем-то вроде:
local originate_str3 = '{api_on_answer="uuid_bridge ' .. uuida .. ' ' .. uuidc .. ' "}sofia/gateway/gw_name/71234567'
Позвольте уточнение, потребуется ли делать хэнгап на звонок 2 ?
То есть, понадобится ли делать как-то так

local originate_str3 = '{api_on_answer_1="uuid_bridge ' .. uuida .. ' ' .. uuidc .. '", api_on_answer_2="uuid_kill '..uuidb.. '"}sofia/gateway/gw_name/71234567'
источник