首页 > 解决方案 > Freeswitch - 如何为每个新的拨出电话强制建立新的 TCP/TLS 连接?

问题描述

我正在向具有两个节点的负载平衡 SBC 进行拨出呼叫。由于 freeswitch 为每个传出呼叫重用 SBC 的同一个开放 TCP/TLS 套接字,因此负载不会分布在 SBC 的两个节点上。所有的调用都去同一个节点。

如果我可以强制每个新调用使用不同的 TCP 连接,负载将均匀分布。是否有任何配置可以实现这一点?

我查看了相关的 conf 文件设置,没有任何希望。

标签: freeswitch

解决方案


我最终找到了答案,但不记得我曾在这里发布过问题。答案虽然不是很有用。

Freeswitch 每次都会通过使用 sip_profiles 下网关定义中的“reuse-connections”字段来使用新连接。

<gateway name="{{unique_gw_name}}">
    <param name="username" value="test"/>
    <param name="password" value="test"/>
    <param name="proxy" value="{{ip_address}};transport=tcp"/>
    <param name="realm" value="*"/>
    <param name="register" value="false" />
    <param name="reuse-connections" value="false"/>
    <param name="auth-calls" value="false"/>
    <param name="caller-id-in-from" value="true"/>
</gateway>

但是,这将收效甚微。SIP 呼叫将包含至少两个 SIP 对话,一个用于 INVITE,另一个用于 BYE。如果使用不同的连接,INVITE 可能会转到一个 SBC,而 BYE 可能会转到另一个 SBC。所以整个事情都会失败。这不是实现负载平衡的正确方法。


推荐阅读