Freeswitch - 如何为每个新的拨出电话强制建立新的 TCP/TLS 连接?
Freeswitch - How to force new TCP/TLS connection for every new outgoing call?
我正在向具有两个节点的负载平衡 SBC 发出传出呼叫。由于 freeswitch 为每个传出呼叫重复使用 SBC 的相同开放 TCP/TLS 套接字,因此负载不会分布在 SBC 的两个节点上。所有调用都转到同一个节点。
如果我可以强制每个新调用使用不同的 TCP 连接,负载将得到平均分配。是否有任何配置使这成为可能?
我查看了相关的 conf 文件设置,看起来没有任何希望。
我最终找到了答案,但不记得我曾在此处发布问题。虽然答案不是很有用。
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。所以整个事情都会失败。这不是实现负载均衡的正确方法。
我正在向具有两个节点的负载平衡 SBC 发出传出呼叫。由于 freeswitch 为每个传出呼叫重复使用 SBC 的相同开放 TCP/TLS 套接字,因此负载不会分布在 SBC 的两个节点上。所有调用都转到同一个节点。
如果我可以强制每个新调用使用不同的 TCP 连接,负载将得到平均分配。是否有任何配置使这成为可能?
我查看了相关的 conf 文件设置,看起来没有任何希望。
我最终找到了答案,但不记得我曾在此处发布问题。虽然答案不是很有用。
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。所以整个事情都会失败。这不是实现负载均衡的正确方法。