蓝牙电话与FreeSwitch服务器和UA坐席的通话

avatar
作者
筋斗云
阅读量:3

蓝牙电话与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服务器并未结束会话的问题。

<param name="ext-rtp-ipvalue="$${external_rtp_ip}"/>

<param name="ext-sip-ipvalue="$${external_sip_ip}"/>

修改后文件内容如下:

详情可参考:《解决xlite和freeswitch通话没有语音的问题》https://blog.csdn.net/daitu3201/article/details/80096630

  • 拨号计划

文件位置:C:\Program Files\FreeSWITCH\conf\dialplan\default.xml

在拨号计划的<context name="default">后面,直接加上这一段内容,即可实现外呼和来电的策略。

<!-- 来电转坐席 -->

    <extension name="call incoming phone">

      <condition field="caller_id_numberexpression="^sim(\d+)$" />

      <condition field="destination_numberexpression="^(\d+)$">

        <action application="bridgedata="{origination_caller_id_name=${destination_number},origination_caller_id_number=${destination_number}}user/${caller_id_number:3}@${domain_name}"/>

      </condition>

    </extension>

    <!-- 坐席外呼 -->

    <extension name="call transfer phone">

      <condition field="destination_numberexpression="^(\d+)$">

        <action application="bridgedata="{origination_caller_id_name=${destination_number},origination_caller_id_number=${destination_number}}user/sim${caller_id_number}@${domain_name}"/>

      </condition>

    </extension>

修改后文件内容如下:

  • 添加用户
  1. 文件位置:C:\Program Files\FreeSWITCH\conf\directory\default.xml

在51行<user id="1000type="pointer"/>前面,根据自己的手机号

(示例手机卡的号码是18873216143)

增加

<user id="18873216143" type="pointer"/>

<user id="sim18873216143" type="pointer"/>

两行,增加后的文件如下图所示:

(后面手机app会自动获取手机SIM卡的手机号,调用预设的接口,拉取sim18873216143的账号密码后注册到这个FreeSwitch)

  1. C:\Program Files\FreeSWITCH\conf\directory\default目录中复制1000.xml两份,分别重命名为《18873216143.xml》和《sim18873216143.xml》。

依次打开这两个文件,将内容中所有的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的云平台接入的整合方式分为下述两种办法:

  1. app登录账号的类型为“代理商”的,可以自己在设置界面中手动开启【固定SIP账号密码】。

如下图所示,自己手动将上述sim18873216143的账号密码服务器等数据填写进去保存,即可正常连接。

  1. app登录账号的类型为“个人”或“企业”的,需自己实现一个http或https的接口,使用GET传入手机号码,返回json格式的对应SIP账号密码等信息。

(具体的写法和格式描述,可查看下一篇章《蓝牙电话-通过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账号

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!