我想使用 FreeSWITCH 而不是 Asterisk,因为它的性能比 Asterisk 更好。我知道 FreeSWITCH 可以是一个完整的 PBX,也可以只运行部分(模块)来执行我想要它做的事情。但我不确定 OpenSIPS 在其中的位置。假设我有 5 个 FreeSWITCH 服务器来处理用户的语音呼叫(入站和出站)和语音邮件。我可以将所有的分机放在 OpenSIPS 路由器中并使用它来验证呼叫,然后将它们交给 FreeSWITCH 吗?
如果是这样,我是否必须为我的用户在 FreeSWITCH 中输入任何扩展信息?我试图避免拥有 5 个 FreeSWITCH 服务器,每个服务器都有重复的扩展!
答案1
Opensips 用于创建高度可扩展的 SIP 信令路由器。因此,使用 OpenSIPS 和承运人路线模块用于验证对等方并将呼叫路由到 FreeSWITCH 盒。
答案2
为了避免在多个 FreeSWITCH 服务器中重复分机,您可以使用 OpenSIPS 作为 SIP 代理来处理呼叫路由和分配。OpenSIPS 可以配置为将流量负载平衡到多个 FreeSWITCH 服务器并根据特定标准路由呼叫。
以下是使用 OpenSIPS 和 FreeSWITCH 的示例配置:
OpenSIPS 配置:
# Define the FreeSWITCH servers
# Replace 192.168.1.10 and 192.168.1.11 with the IP addresses of your FreeSWITCH servers
dynamic_route("freeswitch", "load_balance") {
if (uri == "sip:[email protected]") {
seturi("sip:[email protected]");
t_on_failure("1");
} else if (uri == "sip:[email protected]") {
seturi("sip:[email protected]");
t_on_failure("1");
}
}
# Define the load balancing algorithm
load_balance {
# Replace 192.168.1.10 and 192.168.1.11 with the IP addresses of your FreeSWITCH servers
group("freeswitch", "hash");
# Define the hashing algorithm (e.g. "source", "destination", "random")
hash_load_factor("1");
}
FreeSWITCH配置:
# Define the extension
<extension name="extension">
<condition field="destination_number" expression="extension">
<action application="bridge" data="sofia/gateway/OpenSIPS/extension"/>
</condition>
</extension>
# Define the SIP gateway
<gateway name="OpenSIPS">
<param name="username" value="username"/>
<param name="password" value="password"/>
<param name="realm" value="opensips.example.com"/>
<param name="from-user" value="freeswitch"/>
<param name="from-domain" value="freeswitch.example.com"/>
<param name="expire-seconds" value="300"/>
<param name="retry-seconds" value="60"/>
<param name="register" value="true"/>
<param name="register-transport" value="udp"/>
<param name="register-proxy" value="opensips.example.com"/>
<param name="caller-id-in-from" value="true"/>
</gateway>
在此配置中,OpenSIPS 配置为将流量负载平衡到两个 FreeSWITCH 服务器,IP 地址为 192.168.1.10 和 192.168.1.11。负载平衡算法使用散列算法在服务器之间均匀分配流量。
FreeSWITCH 配置定义了一个扩展,使用 SIP URI“sofia/gateway/OpenSIPS/extension”将呼叫桥接到 OpenSIPS 网关。OpenSIPS 网关配置了必要的 SIP 凭证和注册信息。
通过此配置,您可以在 FreeSWITCH 配置中定义扩展,而无需在多个 FreeSWITCH 服务器上复制它们。OpenSIPS 处理呼叫路由和分配,确保根据负载平衡算法将呼叫路由到适当的服务器。