蓝牙电话与FreeSwitch服务器和UA坐席的通话
由于前面文章中,有读者反馈说,蓝牙电话这个app不知道怎么用。前面的篇章只讲述了SDK对接时如何获取电话通话语音、并将自己预先录制的声音传进去,但体验效果不直观。
本文采用开源的B2B-UA当中经典的FreeSWITCH,力图使用最简洁的步骤和方式,在局域网中搭建一个“云平台”,使电脑上的“软电话”能正常使用蓝牙电话的方案正常呼叫出去。
本文中预设的依赖条件如下:
序号 | 描述 |
01 | 蓝牙电话手机app或windows的PC应用 |
02 | 蓝牙电话手机app的登录账号,没有账号的自己注册,PC应用不需要账号 |
03 | FreeSwitch安装包 |
04 | eyeBeam和X-Lite安装包 |
05 | Python脚本的运行环境和http服务器的防火墙端口 |
06 | 拨号器管理app,这个是蓝牙电话手机app的管理端 |
此处由于简化步骤,已将表格中所有涉及到的软件的下载地址放入百度云盘,需要的读者可以直接下载来使用。
蓝牙电话手机app:http://120.78.211.195:8060/Dialer.apk
蓝牙电话windows应用:http://120.78.211.195:8060/_uploads_soft_20220701_DialerCloud22_Fx4.zip
FreeSwitch安装包:见下面章节的下载地址。
eyeBeam1.5安装包:https://pan.baidu.com/s/1WoWrc1wlhDAMcYTMtf4JiQ 提取码:96ta
X-Lite安装包:https://pan.baidu.com/s/1AfTbslNqMKQrn46TZj3E0A 提取码:savy
拨号器管理app:http://120.78.211.195:8060/DialerManager.apk
windows下载: Index of /windows/installer/x64
Linux下载: Index of /freeswitch-releases
学习资料:《FreeSwitch权威指南 PDF电子书.pdf 杜金房》https://pan.baidu.com/s/1oPV0fikMqP0vsAUw0M6ZQA 提取码:siag
安装包下载后,直接安装到默认路径即可,安装完毕后运行FreeSWITCH进程。此处为了最大限度的精简步骤,快速出成果,以windows10的笔记本电脑的安装和配置的截图做为示例,其它操作系统基本上也差不多。(本文电脑的安装路径为C:\Program Files\FreeSWITCH\)
文件位置:C:\Program Files\FreeSWITCH\conf\sip_profiles\internal.xml
屏蔽296行和297行,避免呼叫接通后挂断,但fs服务器并未结束会话的问题。
修改后文件内容如下:
详情可参考:《解决xlite和freeswitch通话没有语音的问题》https://blog.csdn.net/daitu3201/article/details/80096630
文件位置:C:\Program Files\FreeSWITCH\conf\dialplan\default.xml
在拨号计划的
修改后文件内容如下:
在51行
(示例手机卡的号码是18873216143)
增加
两行,增加后的文件如下图所示:
(后面手机app会自动获取手机SIM卡的手机号,调用预设的接口,拉取sim18873216143的账号密码后注册到这个FreeSwitch)
依次打开这两个文件,将内容中所有的1000字符串,替换为18873216143和sim18873216143,保存后即可。文件内容如下:
文件位置:C:\Program Files\FreeSWITCH\conf\directory\default\18873216143.xml
文件位置:C:\Program Files\FreeSWITCH\conf\directory\default\sim18873216143.xml
后面每添加一个新用户,都按此章节加入对应节点和复制修改文件即可。修改完毕后,记得重启FreeSWITCH进程或在FreeSWITCH进程中输入reloadxml后Enter回车重新加载xml配置即可。
电脑上分别安装eyeBeam和X-Lite。
将上述在FreeSwitch中配置的账号/密码和FreeSwitch本机IP和端口填写进去,保存。(我本机IP是172.16.80.141 默认端口是5060)
eyeBeam或X-Lite软电话会自动注册到FreeSwitch服务器中,这样,双方就可以直接随便输入一个号码(如10086),点击呼叫,这样该呼叫就会直接转呼到另外一个软电话上。
如下图所示:
在坐席18873216143中呼叫10086,则坐席sim18873216143将收到来电,显示对方号码是10086。
此时,FreeSwitch拨号计划中走的是【C:\Program Files\FreeSWITCH\conf\dialplan\default.xml】文件的【call transfer phone】坐席外呼的策略。
用户在软电话中点击【Answer】或点击界面中数字盘上方的【AA】按钮即可正常接听。接听/拒接/接通挂断等操作均与正常软电话的操作一致,语音音质也应该无异常。
蓝牙电话app的云平台接入的整合方式分为下述两种办法:
如下图所示,自己手动将上述sim18873216143的账号密码服务器等数据填写进去保存,即可正常连接。
(具体的写法和格式描述,可查看下一篇章《蓝牙电话-通过Rest接口关联FreeSwitch中继SIP账号》)
示例如下:
https://api.33e9cloud.com/terminal/bluetooth/register/server/18873216143
返回结果:
{"sipRealm":"xxx.com","dateCreated":"2024/01/31 14:10:08","ipPort":"172.16.80.141:5060","sipPhone":"sim18873216143","pwd":"1234","statusCode":"0","notReversal":"0"}
若前面章节中未在SIP服务器添加sim18873216143这个账号,则GET查询的返回结果为:
{"dateCreated":"2024/01/31 14:13:49","statusCode":"920100","represent":"手机号不合法"}
实现这个http接口后,使用【拨号器管理】app,使用同样的app登录账号和密码登录进去后,点击左侧菜单栏的【平台自定义管理】。
在新界面的“用户列表”中点击“我自己”,在平台属性的【SIP平台接口:】中,粘贴上述的http接口URL即可。如下图所示:
文章阐述了一种办法,使用最简洁的方式,让蓝牙电话的用户,能第一时间的将所谓的“云平台”给部署出来,并能实现正常的电话呼叫。至于正常通话的话单和录音,理论上FreeSWITCH是默认支持的,由于本文篇章有限,此处不再赘述,有兴趣的读者可以自己去配置。
最后特意声明:此文章及文章内阐述的方法,仅为局域网内搭建蓝牙电话的云平台而使用。依照《中华人民共和国反电信诈骗法》等法律法规的要求,任何单位和个人不得非法制造、买卖、提供或者使用“具有改变主叫号码,虚拟拨号,互联网电话违规接入公用电话网络等功能的设备、软件”。请各位读者和朋友不要将其接入互联网进行使用,请勿触碰法律的红线,谢谢。
上一篇:蓝牙电话方案-纯手机app方案和PC+手机方案在价格和用户使用习惯上的差异
下一篇:蓝牙电话-通过Rest接口关联FreeSwitch中继SIP账号