现代的浏览器都支持webrtc,浏览器通过webrtc就可以直接注册sip账户到FreeSWITCH实现拨打和接听电话了。就可以不用额外安装软电话或者硬件的电话机,方便CRM等系统集成电话呼叫功能。

下载到3个文件 域名_public.crt 域名.key 域名_chain.crt 这样的顺序放入wss.pem文件。
格式要求
-----BEGIN CERTIFICATE-----
-----END CERTIFICATE-----
-----BEGIN RSA PRIVATE KEY-----
-----END RSA PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
-----END CERTIFICATE-----
如果购买的证书提供的不是这样的3个文件,只需要根据上面的格式放入,第一个段是CERTIFICATE(cert),第二个是RSA PRIVATE KEY(key),第三个是CERTIFICATE(chain)。解码证书的命令是 openssl x509 -in wss.pem -noout -text
global_getvar certs_dir 也可以ssh终端执行fs_cli -x "global_getvar certs_dir"查询到fs证书目录
配置webrtc监听的SIP和端口,CCAdmin->SIP->internal->wss-binding设置为:7443(冒号需要的),监听本机所有端口,也可以0.0.0.0:7443 监听ipv4所有IP的7443端口,也可以指定单独一个本机IP比如192.168.31.100:7443,也可以指定其他端口后面的测试例子是用端口7564。

执行fs控制台命令reload mod_sofia,也可以ssh终端执行 fs_cli -x "reload mod_sofia",或者CCAdmin运维调试界面SIP里面点一下restart。

查看修改是否生效
执行fs控制台命令sofia status profile internal,也可以ssh终端执行 fs_cli -x "sofia status profile internal",或者CCAdmin运维调试界面SIP->internal后面点一下info(…),看到类似WSS-BIND-URL sips:mod_sofia@10.0.16.17:7564;transport=wss这样的信息,就是端口绑定成功了。如果使用云服务器或者开启了防火墙,还需要把 wss端口放开一下(注意是TCP端口)。


执行命令openssl s_client -connect sip.ddrj.com:7564 -showcerts或openssl s_client -connect sip.ddrj.com:7564 -state测试证书是否验证通过。
注意浏览器必须https打开的页面才可以使用webrtc。http页面会打开麦克风失败。
sipml5官方网站 https://www.doubango.org/sipml5/ demo地址:https://www.doubango.org/sipml5/call.htm?svn=252


第二个界面设置好了点保存,然后回到第一个界面,点Login,如果登录成功了,恭喜你,前面的配置都对,拨打电话测试就可以了。
可以拨打echo,进行回音测试(路由里面启用放音测试),号码输入echo,点击Call->Audio,弹出是否允许使用耳麦,要勾选记住此决定。 如果听到自己说话的声音,就配置好了。

jssip官方网站https://jssip.net/ demo地址:https://tryit.jssip.net/ demo源代码在https://github.com/versatica/tryit-jssip
]

保存设置,点下一步,进入呼叫界面,呼叫echo,过2-3秒,就会听到提示音了。为什么过2-3秒才可以听到声音,是因为默认使用了iceserver,可以自己下载demo代码tryit-jssip/lib/settingsManager.js把pcConfig.iceServers这个删除了去。session_timer如果设置为true,会注册不上,因为fs的Session-Expires要求大于120,jssip的Session-Expires默认是90,可以改成false,或者修改fs Session-Expires的最小时间,也可以发起呼叫设置sessionTimersExpires为120以上的值。。contact_uri这个如果不设置fs的通话记录的被叫就没办法显示正确的分机号。默认是启用视频通话的,可以发起呼叫的参数里面关闭视频呼叫。
var options = {
// 'eventHandlers' : eventHandlers,
'mediaConstraints': {'audio': true, 'video': false},
'extraHeaders': [],
'sessionTimersExpires': 180
};

jssip下载地址https://jssip.net/download/releases/,找到最新版本 下载 https://jssip.net/download/releases/jssip-3.9.1.min.js
sipjs的官方网站是 https://sipjs.com/ demo代码地址 https://github.com/onsip/SIP.js/tree/master/demo 因为官方没提供可以直接访问的demo,本来就不写测试过程了。可以联系顶顶通获取第三方例子。