FreeSWITCH 和 OpenSIPS - 如何避免在多个 FreeSWITCH 服务器中重复扩展?

FreeSWITCH 和 OpenSIPS - 如何避免在多个 FreeSWITCH 服务器中重复扩展?

我想使用 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 处理呼叫路由和分配,确保根据负载平衡算法将呼叫路由到适当的服务器。

相关内容