0

我们有 120 多个使用 PJSIP 的客户通过蜂窝网络呼叫 Freeswitch 服务器中的同一会议室。Freeswitch 接受客户端的第一个 INVITE,然后发回身份验证挑战。由于第二个 INVITE 数据包大小 > 1300,PJSIP 使用 TCP 中的代理身份验证发送第二个 INVITE。对于 60% 以上的调用,Freeswitch 服务器正在关闭 TCP 连接。一个wireshark跟踪转储看起来像:

  • 来自客户:邀请
  • 来自服务器:100 次尝试
  • 从服务器:需要 407 代理身份验证
  • 来自客户端:ACK PJSIP 确认 UDP 上的第一个 INVITE
  • 来自客户:SYN
  • 来自 FS:SYN,ACK
  • 来自客户端:ACK
  • 来自 FS:FIN,ACK
  • 来自客户端:ACK
  • 来自客户端:[重新组装的 PDU 的 TCP 段]
  • 来自客户端:INVITE - 使用代理身份验证
  • 来自 FS:RST,ACK
  • 来自 FS:RST

呼叫失败 - Freeswitch 没有收到第二个邀请,因为连接已关闭。无法弄清楚服务器关闭连接的原因。它看起来几乎是随机的。当电话开始进入一些客户时,一些客户却没有。这不仅仅是前50个左右。在通话期间,服务器 cpu 达到大约 60%。通话可持续约 4 分钟。

Freeswitch 日志不显示 TCP 故障。我设置了以下内容:

在 \FreeSwitch\conf\sip_profiles\internal.xml

<param name="debug" value="9"/>
<param name="sip-trace" value="on/>

在 \FreeSwitch\conf\autoload_configs\sofia.conf.xml

<param name="log-level" value="9"/>
<param name="tracelevel" value="DEBUG"/>

120 位客户中约有 50 位拨打了电话。如果失败,客户端将定期继续尝试加入呼叫,直到达到某个指定的呼叫结束计时器。

服务器是 Windows Server 2008 R2 标准 64 位 8Gb 2 2.6Ghz procs

任何有关如何继续解决此问题的帮助将不胜感激。娄

4

1 回答 1

0

Lou,我认为这个问题属于 serverfault.com,而不是 stackoverflow。

我建议您尝试使用不同的 SIP 客户端(如 Zoiper)连接到 FreeSWITCH 服务器,并测试它在仅 TCP 模式下的工作方式。

于 2014-01-24T23:23:03.237 回答