概述
FSPBX是基于FreeSWITCH开发的开源IPPBX电话系统,但其本身并不直接支持传统的PSTN接口接入。如果用户需要实现通过PSTN运营商线路进行语音呼入呼出,通常需要外接一个语音网关设备。语音网关(支持E1或FXO接口)可以通过SIP中继(SIP trunk)模式与FSPBX实现IP层面的对接。本文档的配置测试场景,模拟了运营商线路通过本地数字网关最终接入FSPBX的典型应用环境。
测试前提条件:
- 已在本地安装部署FSPBX系统。
- 准备一台支持SIP的语音网关设备。本次测试使用的是OpenVOX(深圳开源通信)的E1数字网关,用户也可使用FXO模拟网关进行类似的测试与接入。具体型号可咨询厂家业务人员(https://www.openvox.com.cn/)。
- 其他具体应用场景支持,如分机互拨、通过PSTN呼入呼出、IVR、呼叫队列等。
(一) 呼叫流程
测试的端到端呼叫流程如下:
软电话1001 -> FS PBX -> E1网关(172.16.6.27) -> E1网关(172.16.6.29) -> UC -> 软电话1002

(二) 网络说明
- 172.16.6.27 为连接FSPBX的数字网关用户侧设备IP。
- 172.16.6.29 为连接运营商模拟环境(UC)的数字网关网络侧设备IP。
二、FS PBX关键设置
(一) 定义Domain
在FSPBX中,Domain(域)本质上是“租户/业务域”的标识。系统利用它将分机、网关、拨号计划、IVR、话单等配置隔离成一套套独立的“PBX实例”,从而实现同一台服务器上运行多套PBX系统(多租户)。


- Name:这是“域的唯一标识”,通常使用一个域名或IP地址(例如本文使用的172.16.6.121)。系统会用它来进行SIP注册、认证时的匹配与配置归属判断(例如判断分机/拨号计划属于哪个域)。
- Label:这是“显示名称/备注名”,主要用于在管理界面中让人更容易识别与切换不同的域(更偏向于UI展示)。它不要求是域名或IP格式,也不一定参与SIP信令层面的匹配逻辑。
本例中配置为:Name:172.16.6.121,Label:ipaddress。

配置完成后,可以在主页右上角进行不同Domain的切换。
(二) 定义访问控制(Access Control)
为了安全起见,需要配置访问控制列表,允许来自E1网关的SIP信令访问。


系统默认可能禁止所有外部访问。我们需要编辑或创建规则,允许特定IP。例如,编辑名为providers的列表,添加一条规则允许E1网关用户侧IP 172.16.6.27 的访问。

三、在FS PBX上配置分机
(一) 定义分机号
在Accounts -> Extensions中创建新的分机。

- 填写用户姓名(如First Name, Last Name)。
- 填写分机号码(Extension),例如
1001。
- 填写基本信息后点击保存,系统将进入分机详情编辑界面。
(二) 查看与修改SIP认证密码
在分机详情页面,可以查看系统为分机自动生成的SIP认证密码。

导航至 SIP Credentials 选项卡。

点击 Show 按钮,即可查看该分机注册所用的用户名、域名和密码。

(三) 软电话注册(以Linphone为例)
将上一步在FSPBX中查看到的SIP凭证信息(域名、用户名、密码)复制并填入软电话的账户设置中。

(四) 验证注册状态
返回FSPBX的Extensions列表页面,可以查看分机的注册状态。如果显示为在线(Online),则表示软电话注册成功。

四、配置SIP Trunk (中继)
(一) 用户侧网关配置
在连接FSPBX的用户侧E1网关上,需要配置SIP中继,并获取其监听信令的IP和端口(例如 172.16.6.27:30001)。这通常在中继或SIP相关配置页面完成。

(二) FS PBX定义网关(Gateway)
在FSPBX中,需要定义一个网关(Gateway)来指向用户侧E1网关的SIP服务。

进入 Advanced -> Gateways,创建新网关。关键配置项包括:
- Gateway Name: 网关名称,如
dhu27。
- Proxy: 填写用户侧网关的SIP地址和端口,如
172.16.6.27:30001。
- Realm: 通常与Proxy一致。
- Register: 根据网关要求选择是否向网关注册,本例设置为
False (IP认证模式)。
- Context: 通常设为
public。

(三) 网络侧网关配置
在网络侧E1网关上,同样需要配置SIP中继,指向UC或对端IPPBX的地址(例如 172.16.6.29 指向UC)。此步骤确保了信令能在整个网络路径中传递,是构建稳定 VoIP 通话的基础。

(四) UC(模拟运营商/对端)配置
在对端的UC系统或IPPBX上,需要配置一个SIP中继指向网络侧网关的IP地址(172.16.6.29)。

配置完成后,查看中继状态应为“On”或“可用”。

五、配置E1端口与信令
(一) 用户侧网关E1端口设置
在用户侧网关上,进入端口设置,配置E1端口参数,例如:场所区域选择“中国”,端口类型“E1”,帧结构“CCS”,编码“Alaw”,线路补偿等。

(二) 用户侧网关E1信令设置
在PRI设置中,启用端口,信令类型选择“用户侧”,交换类型选择“EuroISDN”等。

(三) 网络侧网关配置
在网络侧网关上,进行类似的E1端口和信令设置,但信令类型应选择“网络侧”。


六、配置外呼逻辑(FS PBX -> UC)
(一) FS PBX定义呼出路由(Outbound Route)
为了让FSPBX的分机能通过网关呼出,需要配置呼出路由。

创建新的外拨路由,关键配置如下:
- Gateway: 选择之前创建的网关
dhu27。
- Dialplan Expression: 定义匹配规则。例如,输入
5并点击Add,会生成正则表达式 ^5\d*$,表示匹配所有以5开头的被叫号码。
- 启用(Enabled)此路由。

(二) 用户侧网关路由配置
在用户侧网关上,需要配置IP->Tel路由规则,将来自FSPBX、被叫前缀为5的呼叫,路由至本地的E1端口(PRI中继)出局。

(三) 网络侧网关路由配置
在网络侧网关上,配置Tel->IP路由规则,对从E1端口进入、目的地为SIP的呼叫进行处理,例如删除前缀5,然后将剩余号码送至UC。

(四) UC呼入路由设置
在UC上,定义呼入路由。当有呼叫进入时,根据被叫号码(已去除前缀5)将其转接至相应的分机,例如分机1002。

七、配置内呼逻辑(UC -> FS PBX)
(一) UC呼出路由设置
在UC上,定义呼出路由。匹配被叫前缀为4的呼叫,并通过SIP中继(dhu2,即指向网络侧网关)送出。

(二) 网络侧网关路由配置
在网络侧网关上,配置Tel->IP路由规则,将来自UC、被叫前缀为4的呼叫,路由至用户侧网关的IP地址(172.16.6.27)。

(三) 用户侧网关路由配置
在用户侧网关上,配置IP->IP路由或直接转发规则,将来自网络侧网关、被叫前缀为4的呼叫,路由至FSPBX的IP地址(172.16.6.121)。
(四) FS PBX呼入路由配置
在FSPBX上,需要定义一个对外的电话号码(DID),例如6666,并设置当有呼叫拨打此号码时,转接至内部分机1001。
首先,在 Dialplan -> Phone Numbers 中创建号码6666,并设置其路由目标为分机1001。


完成上述设置后,系统会自动生成一条对应的呼入路由(Inbound Route)。


八、呼叫验证
完成以上所有配置后,即可进行端到端呼叫测试:
- 外拨测试: 使用注册在FSPBX上的软电话1001,拨打
51002。呼叫应能通过网关链,最终振铃UC上的软电话1002。
- 内拨测试: 使用UC上的软电话1002,拨打
46666。呼叫应能通过网关链,最终振铃FSPBX上的软电话1001。
- 呼叫记录: 成功通话后,可以在FSPBX的CDR或活动记录中查看通话详情。

技术参考链接:
希望这篇详细的配置指南能帮助你成功完成FreeSWITCH FSPBX与数字网关的对接。如果在配置过程中遇到更多复杂的网络或系统问题,可以到 云栈社区 的网络通信板块与同行交流探讨。