FreeSwitch JavaScript中bridge()和session.execute('bridge')之间的区别

时间:2019-05-02 13:29:21

标签: javascript freeswitch

我写了一个JavaScript代码来桥接两个端点。感觉如下:

  

A(web + sip.js + wrtc)<---> Freeswitch <---> Twilio sip中继<---> B(pstn电话)

我尝试了Freeswitch javascript中从A到B调用的两种方法:

  1. 创建新的sessionB,然后将A桥接到B: (1)sessionA.answer()并回铃给A, (2)通过Sip桥接器创建到B的新会话,然后中断sessionA回铃并驻留会话B, (3)网桥(sessionA,sessionB)

  2. 直接将A桥接到B,而无需创建sessionB: (1)sessionA.answer(), (2)sessionA.execute('bridge','sofia / gateway / 32d1440c-d13c-44b3-94da-1589daf6e81b /'+ sessionA.getVariable('callee_id_number'));

第二个效果很好,但是在第一个中,A总是会丢失B的一些音频。 我在Freeswitch服务器上使用tcpdump检查连接,发现从Freeswitch到A的一些UDP数据包丢失了,但是从Twillo到Freeswitch的数据包没有丢失。 在Freeswitch将UDP数据包中继到A时,似乎有些UDP数据包丢失了。

那么,这两种方法有什么区别,我该如何解决?我需要使用第一种方法进行通话。

谢谢!

0 个答案:

没有答案