在本篇文章中,笔者尝试使用Linksys (CISCO / SIPURA) SPA3102连接固话网络并接入freepbx,将固定电话的信号转换为了VoIP(SIP)协议。本文的效果与《使用FXO卡配合asterisk及freepbx将固定电话信号转为VoIP》一文中的类似。

spa3102
spa3102

硬件

  • 运行freepbx的虚拟机一台
  • Linksys SPA3102,二手价大约100-200元

SPA3102配置

可参考 SPA3102的quick start手册说明书和下方笔者的截图,由于笔者不使用LINE1(FXS端口),因此本文仅着重于讲解FXO(PSTN)部份的配置(笔者也没有配置spa3102的Line1部份),其他部分读者可以对照截图修改。

SIP

sip
sip

Regional

regional
regional
regional2
regional2

Provisioning

provisioning
provisioning

PSTN Line

需要修改的配置如下:

配置内容备注
Proxy:freepbx的ip地址
Register:NOfreepbx中按照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的编码规则定义

pstn
pstn

User

user1
user1

pstn-user1
pstn-user1

Freepbx侧

  • 新建一个名为spa3102SIP pjsp trunk(名字可以自选)
  • 设置Maximum Channels为1
  • pjsp settings中:
    • AuthenticationRegistration都选None
    • SIP 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的信息。

参考