
测试环境:
部署在云平台的OpenSIPS-3.1和OpenSIPS-CP界面系统
Zoiper 软电话app
本地内网鼎信通达SIP 终端(IP63P)
测试前准备说明:
- 如何安装OpenSIPS-3.1和OpenSIPS-CP界面系统,读者需先参考历史文档:
- 最完整快速的安装方式安装开源OpenSIPS-3.1和CP控制界面-class 8
- 关于NAT问题和ALG问题,读者查看历史文档,或者在opensips前端部署FreeSBC支持NAT穿越。
- 通过CLI或者CP创建好SIP测试账号和密码。


首先创建SIP 账号,这里创建的账号分别是1000和1001。以下示例是通过Zoiper注册电话1001(关闭wifi内网)。

设置相关的服务器地址和代理地址。

调整语音编码支持的优先级。Zoiper免费版默认支持是GSM和Opus优先级,用户需要自己调整到话机也支持的uLaw和alaw。

登录鼎信SIP话机界面配置SIP相关信息:

开启调整话机的编码优先级,支持PCMU和PCMA,和APP配置对应。

呼叫1000话机,1000呼机接听。


查看记录。通过opensips-cp检查contact的状态信息,这里的话机是鼎信的物理SIP话机信息。

手机app注册以后,opensips-cp 显示的1001 contact地址。手机app公网地址。

通过OpenSIPS-CP查看CDR呼叫记录,看到失败呼叫和成功呼叫的记录信息。

如果app呼叫显示Unsupported Media Type错误,应该是终端默认的语音编码设置中的编码不支持,确认双方语音编码一致。调整到终端支持的语音编码。CDR中显示的呼叫记录。

总结
笔者通过云平台部署的opensips和CP界面配置了测试终端,通过手机安卓版的SIP账号和内网本地鼎信通达SIP终端进行呼叫。呼叫测试注册和呼叫都是成功的。一般比较容易出现的错误是语音编码问题或者NAT问题,在配置中需要根据自己的呼叫或者不同终端的编码做相应调整。如果NAT问题需要做一个RTPengine的转发设置或者检查路由器的ALG配置,或者调整SIP端口避免默认5060来防止ALG检测。通过opensips和本地终端的连接配置,完全可以实现异地不同地区,不同终端之间的互相免费呼叫,基本上可以满足一般的企业简单IPPBX的内部呼叫的功能。
参考资料:
www.opensips.org
www.freesbc.cn
www.asterisk.org.cn
