在本篇文章中,笔者尝试使用Linksys (CISCO / SIPURA) SPA3102连接固话网络并接入freepbx,将固定电话的信号转换为了VoIP(SIP)协议。本文的效果与《使用FXO卡配合asterisk及freepbx将固定电话信号转为VoIP》一文中的类似。
硬件
- 运行freepbx的虚拟机一台
- Linksys SPA3102,二手价大约100-200元
SPA3102配置
可参考 SPA3102的quick start手册,说明书和下方笔者的截图,由于笔者不使用LINE1(FXS端口),因此本文仅着重于讲解FXO(PSTN)部份的配置(笔者也没有配置spa3102的Line1部份),其他部分读者可以对照截图修改。
SIP
Regional
Provisioning
PSTN Line
需要修改的配置如下:
配置 | 内容 | 备注 |
---|---|---|
Proxy: | freepbx的ip地址 | |
Register: | NO | freepbx中按照ip地址白名单进行鉴权 |
Display Name: | 自行设置 | 之后会显示于freepbx的来点显示中 |
User ID: | 自行设置 | 之后会显示于freepbx的来点显示中 |
Dial Plan 2: | (S0<:123456>) | 将123456改为PSTN侧的电话或其他唯一的识别号码,之后会成为freepbx中的callerid。 |
PSTN Caller Default DP: | 2 | |
Disconnect Tone: | 450@-30,450@-30;2(.35/.35/1+2) | 中国大陆的挂断音(busy tone),用于在用户挂机之后主动挂断sip连接,错误配置可能会导致sip没法挂断PSTN侧的电话。其他地区可以在ITU的文档中找,并参考cisco的编码规则定义 |
User
Freepbx侧
- 新建一个名为
spa3102
的SIP pjsp trunk
(名字可以自选) - 设置
Maximum Channels
为1 - 在
pjsp settings
中:Authentication
和Registration
都选NoneSIP Server
配置为SPA3102的IP地址SIP Server Port
和SPA3102的PSTN Line配置界面中的SIP Port
一致(笔者都用了5062)
随后配置相应的inbound route和outbound route即可。在配置完成后,freepbx的asterisk log中可以看到如VERBOSE[16022] res_pjsip/pjsip_options.c: Contact spa3102/sip:<spa3102's ip>:5062 is now Reachable. RTT: 8.340 msec
的信息。