openSIPS是非常强大的开源SIP 信令服务器,通过可以实现运营商级的产品支持,同时也可以实现一般的IPPBX功能,例如分机之间的呼叫功能。今天,笔者为用户演示如何通过部署在云平台的openSIPS,通过Zopier手机APP和内网部署的鼎信通达SIP话机之间的呼叫。通过这样的配置方式也可以满足一些企业的IPPBX一般异地内网互相呼叫的功能。
测试环境:
部署在云平台的OpenSIPS-3.1和OpenSIPS-CP界面系统
Zoiper 软电话app
本地内网鼎信通达SIP 终端(IP63P)
测试前说明:
- 如何安装OpenSIPS-3.1和OpenSIPS-CP界面系统,读者需先参考历史文档:
- 最完整快速的安装方式安装开源OpenSIPS-3.1和CP控制界面-class 8
- 关于NAT问题和ALG问题,读者查看历史文档。
- 通过CLI或者CP创建好SIP测试账号和密码。
创建SIP domain。
首先创建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