freeswitch - Freeswitch - 如何为每个新的拨出电话强制建立新的 TCP/TLS 连接?
问题描述
我正在向具有两个节点的负载平衡 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。所以整个事情都会失败。这不是实现负载平衡的正确方法。
推荐阅读
- java - Public Arraylist size shows different in 2 places in Android Java
- javascript - 如何在不显示“NaN”的情况下为多个属性复制此代码?
- amazon-web-services - S3 最终一致性:在对象存在未完成副本的情况下删除对象是否安全?
- nativescript - 当我运行更新的 NS 5.0 应用程序时,如何摆脱 Android 中的错误消息?
- javascript - 带子项的 JSON 解析器
- r - ggnetwork::geom_nodes() 需要的颜色多于节点数
- python-3.x - 使用 Selenium 时是否需要安装 Chrome 或仅安装 chromedriver?
- google-apps-script - 根据列中的新名称创建新工作表
- javascript - 无法使用 javascript 使用公共变量(i)更改每张幻灯片的字体样式
- python - virtualenv venv --python=python3.7 返回在控制台中找不到的命令