Разница между bridge () и session.execute ('bridge') в свободном переключателе JavaScript - PullRequest
0 голосов
/ 02 мая 2019

Я написал код JavaScript, чтобы соединить две конечные точки. Senes похожи на следующее:

A (web + sip.js + wrtc) <---> Freeswitch <---> Twilio sip Trunking <---> B (pstn phone)

Я попробовал два метода в javascript Freeswitch для вызова от A до B:

  1. создайте новый сеанс B, затем соедините A с B: (1) sessionA.answer () и перезвонить на A, (2) создать новый сеанс к B через SIP-мост, затем разорвать обратный вызов сеанса A и парковать сеанс B, (3) мост (сессия A, сессия B)

  2. напрямую соединить мост A с B без создания сеанса B: (1) sessionA.answer (), (2) sessionA.execute ('bridge', 'sofia / gateway / 32d1440c-d13c-44b3-94da-1589daf6e81b /' + sessionA.getVariable ('callee_id_number')));

Второй работает хорошо, но в первом A всегда проигрывает аудио из B. Я использую tcpdump на своем сервере Freeswitch, чтобы проверить соединение и обнаружить, что некоторые UDP-пакеты от Freeswitch до A потеряны, но пакеты от Twillo до Freeswitch не потеряны. Кажется, что некоторый пакет UDP потерян, в то время как Freeswitch ретранслирует пакеты UDP к A.

Итак, в чем разница между двумя методами и как я могу решить эту проблему? Мне нужно использовать первый метод, чтобы сделать вызов.

Спасибо!

...