多台 FreeSWITCH 服务器级联设置

简介: 多台 FreeSWITCH 服务器级联设置

双机级联


假设你有两台 FreeSWITCH 机器, 分别为A和B,同样IP分别为 192.168.1.A 和 192.168.1.B。每台机器均为默认配置,也就是说在每台机器上 1000 ~ 1019 这 20 个号码可以互打电话。位于同一机器上的用户称为“网内用户”,如果需要与其它机器上的用户通信,则其它机器上的用户就称为“网外用户”。


现在你需要在两台机器之间的用户互拨,因此你想了一种拨号方案。如果A1000想拨打B1000,则B1000相对于A1000来说就是“网外用户”。就一般的企业PBX而言,一般拨打外网用户就需要加一个特殊的号码,比方说“0”。这样,“0”就称为“出局字冠。

好了,我们规定,不管是A用户还是B上的用户,拨打外网用户均需要加0. 下面我们仅配置A打B,把B打A的情况留给读者练习。


在A机上,把以下 dialplan 片断加到 default.xml 中:

``

<action application="bridge" data="sofia/external/sip:$1@192.168.1.B:5080"/>
复制代码


``

``

其中,expression= 后面的正则表示式表示匹配以0开头的号码,“吃”掉0后,把剩下的号码送到B机的5080端口上。


所以,如果用户1000在A上拨 01000,将会发送 INVITE sip:1000@192.168.1.B:5080 到B上。B收到后,由于5080端口默认走public dialplan,所以查找 public.xml,找到1000后将电话最终接续到B机的1000用户。


除了SIP外,我还在两台机器上分别加了两块E1板卡,中间用交叉线直连,这样的话,我希望拨9开头就走E1到对端,设置如下:


``

<action application="bridge" data="freetdm/1/a/$1"/>
复制代码

``

``


汇接模式


|  汇接局  X |
                            /      |       \
                           /       |        \
                         A         B         C
复制代码


其实你搞定了第一种模式以后,这种汇接模式也就很简单了。无非你需要动一动脑子做一下拨号计划,比方说到A拨0,B拨1,到C拨2之类的。然后在汇接局配置相关的 dialplan 就OK了。


遇到 dialplan 的问题还是再看一下第八章,还是那句话,使用 F8 打开详细的 LOG,打一个电话,从绿色的行开始看。


安全性


上面的方法只使用5080端口从 public dialplan 做互通,而发送到5080端口的INVITE是不需要鉴权的,这意味着,你任何人均可以向它发送INVITE从而按你设定的路由规则打电话。这在第一种模式下问题可能不大,因为你的public dialplan 仅将外面的来话路由到本地用户。但在汇接局模式下,你可能将一个来话再转接到其它外部网关中去,那你就需要好好考虑一下安全问题了,因为你肯定不希望全世界的人都用你的网关打免费电话。


一般说来,解决这个问题有两种方式,那就是让所有来话都经过认证鉴权后再进行路由(本地用户发到5060端口上都是需要鉴权的)。


考虑双机级联的情况,你只需要在A上配置一个到B的网关(将下列内容存成XML文件放到 conf/sip_profiles/external/b.xml):

``


<gateway name="b">
            <param name="realm" value="192.168.1.B"/>
            <param name="username" value="1000"/>
            <param name="password" value="1234"/>
    </gateway>
复制代码


``

``

同时把A上的 dialplan 改成:

``


<action application="bridge" data="sofia/gateway/b/$1"/>
复制代码


``

``

这样,A上的用户可以呼通所有B上的用户,从B的用户来看,好像所有电话都是从本机的1000这个用户打进来的(这就是网关的概念,因为对于B来说,A机就相当于一个普通的SIP用户1000。当然你从A上理解,B就是给你提供了一条SIP中继,如果在B上解决了“主叫号码透传”以后,B就相法于一条真正的中继了)。如果这么说理解有难度的话,想像一下B是联通或电信的服务器网关,你是不能控制的,而它只给了你一个网关的IP,用户名,和密码,你把它配到你的A上,就可以呼通电信能呼通的任何固定电话或手机了。

相关文章
|
1月前
|
缓存 监控 定位技术
|
1月前
|
监控 Kubernetes 安全
如何设置一个有效的远程管理工具来简化服务器的维护工作?
如何设置一个有效的远程管理工具来简化服务器的维护工作?
|
2月前
|
前端开发 开发工具 git
如何清理 docker 磁盘空间+修改 Gitea 服务器的 Webhook 设置+前端一些好学好用的代码规范-git hook+husky + commitlint
如何清理 docker 磁盘空间+修改 Gitea 服务器的 Webhook 设置+前端一些好学好用的代码规范-git hook+husky + commitlint
38 5
ly~
|
2月前
|
网络协议 应用服务中间件 Apache
如何在 DNS 记录中设置反向代理服务器?
要设置反向代理服务器,首先需安装配置软件(如 Nginx 或 Apache),并确保域名正确指向服务器 IP。接着,在 DNS 中设置 A 或 CNAME 记录,将域名指向反向代理服务器。然后编辑 Nginx 或 Apache 的配置文件,将请求转发至后端服务器。最后,通过浏览器访问域名测试配置是否成功,并使用工具检查请求流向和响应情况。
ly~
197 3
|
2月前
|
Web App开发 安全 网络安全
tplink虚拟服务器设置方法
为了更全面地理解云服务及其在企业应用中的角色,推荐访问,他们提供了一系列高性能、安全稳定的云服务器解决方案,包括但不限于香港云服务器、高防服务器等,特别适合寻求全球化业务扩展的企业。蓝易云不仅拥有全球化的基础设施布局,还提供针对各种行业定制的全栈云解决方案,助力企业实现云端部署,跨越传统界限,即刻启航云端之旅。
56 0
|
3月前
|
监控 Kubernetes 安全
如何设置一个有效的远程管理工具来简化服务器的维护工作?
如何设置一个有效的远程管理工具来简化服务器的维护工作?
|
5月前
|
弹性计算 Linux 云计算
云服务器 ECS产品使用问题之如何设置adminpassword
云服务器ECS(Elastic Compute Service)是各大云服务商阿里云提供的一种基础云计算服务,它允许用户租用云端计算资源来部署和运行各种应用程序。以下是一个关于如何使用ECS产品的综合指南。
|
5月前
|
弹性计算 Linux 数据安全/隐私保护
云服务器 ECS产品使用问题之linux如何设置服务器密码
云服务器ECS(Elastic Compute Service)是各大云服务商阿里云提供的一种基础云计算服务,它允许用户租用云端计算资源来部署和运行各种应用程序。以下是一个关于如何使用ECS产品的综合指南。
|
5月前
|
弹性计算 Linux 数据安全/隐私保护
云服务器 ECS产品使用问题之幻兽帕鲁服务器如何设置/修改密码
云服务器ECS(Elastic Compute Service)是各大云服务商阿里云提供的一种基础云计算服务,它允许用户租用云端计算资源来部署和运行各种应用程序。以下是一个关于如何使用ECS产品的综合指南。
|
4月前
|
域名解析 网络协议 数据中心
【应用服务 App Service】当遇见某些域名在Azure App Service中无法解析的错误,可以通过设置指定DNS解析服务器来解决
【应用服务 App Service】当遇见某些域名在Azure App Service中无法解析的错误,可以通过设置指定DNS解析服务器来解决
下一篇
DataWorks