本文目录一览:
1、CRM体系怎样完成通话功用?
2、树立智能语音交互体系重要害那些
3、【freeswitch】TLS+SRTP布置加密的voip环境
4、阿里云装备FreeSwitch
5、FreeSWITCH中的lua操作小结
CRM体系怎样完成通话功用?
CRM是客户联系处理体系FreeSWITCH智能外呼体系架构办法,客户联系FreeSWITCH智能外呼体系架构办法的保护对企业而言是十分重要的FreeSWITCH智能外呼体系架构办法,无论是日常的沟通和跟进,仍是后期的维系与节假日问好。但CRM没有直接的通讯功用,企业大多数是CRM和呼叫中心分隔运用的。直接在CRM中集成通话才能,企业的工作效率就会大大提高。
CRM完成通话才能,不一定需求呼叫中心。最简略的办法是用点击拨号API接口集成,只需求几行代码就能够轻松完成通话。无论是PC、网页或手机app,直接点击客户姓名或电话号码就能够建议通话了。以上参阅Enjoytalk点击拨号接口。
还能够将通话记录和通话录音推送至CRM,完成客户数据一体化,谢谢FreeSWITCH智能外呼体系架构办法!
树立智能语音交互体系重要害那些
序文
跟着人工智能出题的提出,近年来涌现出一大批依据人工智能的呼叫中心事务服务商和集成商,仅智能外呼这一模块儿就将近百家公司在推行和运营。能够说整个依据人工智能技能的商场开端繁荣的发展起来了。
简略介绍一下什么叫做智能语音交互渠道。其实大真话便是在呼叫中心根底上,集成 ASR、 TTS、的呼叫服务渠道。
那么怎么咱们自己去树立智能语音体系呢?
咱们先列出树立智能外呼体系的树立需求那些技能和服务:
个人认为:
[if !supportLists]·[endif] 首要最重要的是沟通机:
[if !supportLists]1. [endif]PBX也便是沟通机,商用设备原厂包含像华为、Avaya、思科、东汇等这些出产硬件沟通机,
[if !supportLists]2. [endif]还有便是现在FreeSitch、asterrisk、OpenPBX这些软件沟通机。
[if !supportLists]·[endif] 其次是AI技能: 及包含语音辨认、语义了解、语音组成这三种技能是中心组成部分。语音辨认相当于人的“耳朵”,接进电话后,对人的言语进行处理转义成体系能够辨认的数据交由体系处理去辨认。在进一步的话,能够转义为文字。语义了解相当于人的"大脑",依据言语辨认人的目的。语音组成,相当于人的”嘴巴“,辨认人的目的之后,按照特定的答复办法,去回复和引导对话。
[if !supportLists]·[endif] 再者是前端服务渠道:即用户登录、装备呼叫流程,树立呼叫使命、计算呼叫数据、导出呼叫报表的网站,这个是终端用户仅有能够看到并且操作的界面。
[if !supportLists]·[endif] 终究是外呼线路:其间包含三大运营商以及其他小型的集成线路供货商,首要目的是外呼电话或许是接入电话。
也有人或许有疑问:”智能语音交互体系最重要的不是人工智能么,和沟通机有啥联系?”为什么说最重要的是沟通机呢,原因是不论咱们是外呼仍是接入电话、都需求前端服务渠道把外呼恳求发送给沟通机,经过外呼线路而拨出去。换句话说沟通机是操控全体的外呼状况。硬件的沟通机,比方说像华为的沟通机,价格在大约几万到几百万不等的价格。关于想要树立自己的智能语音交互体系来说,价格关于一些小型公司来说接受不起,而FreeSitch这种软沟通则大大便利了小型公司树立自己的智能语音交互体系。
什么是FreeSwitch?
FreeSitch是一个电话的软沟通处理方案,包含一个软电话和软沟通机用以供给语音和谈天的产品驱动。FreeSitch 能够用作沟通机引擎、PBX、多媒体网关以及多媒体服务器等。支撑多种通讯技能标准,包含 SIP, H.323, IAX2 以及 GoogleTalk ,一起也能够便利的与其他开源的PBX体系进行对接。并且具有很强的伸缩性。旨在为音频、视频、文字或任何其他办法的媒体,供给路由和互连 通讯协议 。
FreeSwitch 的典型功用
[if !supportLists]·[endif]在线计费、预付费功用。
[if !supportLists]·[endif]电话路由服务器。
[if !supportLists]·[endif]语音转码服务器。
[if !supportLists]·[endif]支撑资源优先权和QoS的服务器。
[if !supportLists]·[endif]多点会议服务器。
[if !supportLists]·[endif]IVR、语音告诉服务器。
[if !supportLists]·[endif]VoiceMail服务器。
[if !supportLists]·[endif]PBX运用和软沟通。
[if !supportLists]·[endif]运用层网关。
[if !supportLists]·[endif]防火墙/NAT穿越运用。
[if !supportLists]·[endif]私有服务器。
[if !supportLists]·[endif]SIP网间互联网关。
[if !supportLists]·[endif]SBC及安全网关。
FreeSwitch最典型的功用是作为一个服务器,并用电话客户端软件衔接到它。尽管FreeSwitch支撑很多的通讯协议,但其最首要的协议仍是SIP,经过SIP中继建议会话协议。
运用FreeSwitch这种软沟通的优点在于,你只需求一台服务器就能够随时树立自己的外呼中心,并且FreeSwitch支撑跨渠道运转。能够原生运转Windows、Linux、BSD等许多32/64位渠道。
FreeSwitch内部运用线程模型来处理并发恳求,每个衔接都在独自的线程中进行处理,不同的线程间经过Mutex互斥拜访共享资源,并经过音讯和异步事情等办法进行通讯。FreeSwitch自身是比较稳定的,它是比较优异的开源软件。另一方面来讲,FreeSwitch又是比较急进的,它的开发分支里会有很多的新特性参加,因而在测验不全面的状况下,很简略呈现不稳定的状况。而在用于出产环境的状况下,体系的稳定性是体系能否正常被运用的要害。之前咱们在做项目的过程中,就遇到一些FreeSwitch不稳定的状况,导致外呼状况不抱负。举一个比方:咱们在进行测验外呼的时分,语音通话时断时续,尽管前端服务渠道能够很好的接受到数据的传输,可是,真实在与人工进行沟通的时分,会呈现各式各样的沟通妨碍,为了处理这一个问题,咱们花费了几个月的时刻,去研讨FreeSwitch的结构特性。总算把这个问题处理掉。咱们的项目才得以持续推进,终究得以真实落地布置施行。
也有人或许有疑问:”FreeSwitch软沟通尽管重要,可是既然是智能语音交互体系人工智能不重要吗?”,重要,当然重要!容我渐渐道来~
AI 技能
1. 通讯原理
先简略解说一下正常打电话这个流程
流程:A→PSTN→B
解说:PSTN是Public
Switched Telephone Network,意思为公共沟通电话网络,也便是咱们的运营商的网络电话,
那咱们平常怎么给呼叫中心比方打电话是怎么打的?:个人A打电话给呼叫中心1***6 打电话,拨通后听到录音,您好,拨打人工台,请按0键,按键之后,呈现盲音,真实接通之后,客服接通了电话。
流程:A→PSTN→PBX→IVR→客服
解说:PBX也叫沟通机、相当于整个呼叫中心的出入口
IVR也叫互动/交互式语音应对,语音导航,也便是相当于咨询事务请按键,这一环节,依据事务去分流到客服。
智能语音交互渠道(智能机器人)落实到具体具体事务场景是怎么完成的:
如:”个人A要在某一个大型酒店预定位子“,
A拨通后先听到了声响,“您好,我是机器人小岳,需求我帮您订位子是吗?
个人A说,“我不要和机器人说话,找个真人来”。
然后听到录音,“为您转接很贵的真人客服,排队中,请稍后”。
几分钟后接通,真人客服接了电话。
流程:A→PSTN→PBX→IVR(TTS→ASR→NLP→TTS)→ACD→客服
解说:在IVR部分:不再需求提示按键,而是直接问来电方需求处理什么事务,然后辨认语音、了解目的后,依据用户的需求,答复后转入对应的事务行列排队。
上边是接通的流程,呼出的流程与之相反,就不在赘述了。
2. 现在商场上的AI技能的运用
现在商场上的不论是ASR、TTS、NLP都被阿里百度科大讯飞等巨子公司所占有,这些技能在国内根本现已成为定局。像ASR这类引擎商场上大部分都是用的阿里云和讯飞云的,要不便是百度云。阿里云和讯飞云的辨认率高一些,能够到达97%左右、百度的差一些,辨认率在80%左右,咱们最初在做项目的时分挑选ASR做过测验,事实证明阿里云辨认率更高一起也能够辨认方言。因而,咱们在做项目的时分,见义勇为的挑选了阿里云的
TTS咱们挑选的是讯飞的,挑选的理由很简略,究竟科大讯飞是人工智能范畴巨子级的公司,质量当然有的确保。
3. AI 才能对接
在具体落地中,这个范畴的惯例参与者一般具有呼叫中心才能或许AI才能其间一种,而首要的对接点也就在于AI才能与呼叫中心设备去对接,而ASR/TTS与呼叫中心设备对接的惯例协议首要是mrcp/sip。
媒体资源操控协议(Media Resource Control
Protocol, MRCP)是一种通讯协议,用于语音服务器向客户端供给各种语音服务(如语音辨认和语音组成)。有两个版别的MRCP协议,版别2运用SIP作为操控协议,版别1运用RTSP。
实践对接的时分,会遇到不少技能问题,当咱们ASR/TTS引擎做私有云布置,为了避免了内外网穿透时防火墙的许多设置和语音流的时延。这在咱们其时对接的时分也花费了好大一番功夫。
前端服务渠道:
其间最重要的便是装备呼叫流程这一块儿了,
这一块儿很简略被忽视,可是这反而是能够出成果的当地。一般来说一套最美谈术模板,能够以一敌万。心理学根底有必要要有,一句话怎样说能让接电话的人最大概率的顺着自己的思路走,达到目的,然后构成特定细分范畴机器人话术模板,得到最佳的外呼作用(接通率、通话时长、电销志愿、催收志愿)或许是接通作用(满意度)
其他的根本便是web端的东西了,具体功用点呢,即用户登录、装备呼叫流程,树立呼叫使命、计算呼叫数据、导出呼叫报表,这些功用点根本完成就能够,由于站在产品视点,产品最重要的价值便是能够呼通或许接通用户的电话,并且能够精确的辨认用户的目的,并且精确的答复用户。这便是智能语音交互体系的终究目标,也一直是咱们的终究目标。
外呼线路厂商:
一般假如是购买体系的话,是给供给线路的,只需交一些线路费用。假如是自己做项目的话,网上、淘宝上一大堆,费用能够谈,也给供给线路对接的接口。
结语
尽管现在商场上做智能语音交互体系的比较多,但一般只限于各个职业的电话出售,真实意义上的智能语音交互仍是很少的。原因很简略,尽管原理不是很难可是真实落地施行的时分,遇到的困难十分的多,几乎是一步一个坑。好在现在现已真实的落地施行了,方方面面的作用都仍是很不错的。一年多的辛苦没有白搭。哈哈~
写这篇文章测验给我们简略介绍一下智能语音交互体系,然孤陋寡闻,遗漏和不当之处在所难免,权当给我们抛砖引玉。
许多细节限于主题和篇幅的要求不做具体记叙,如有问题,欢迎随时沟通。
【freeswitch】TLS+SRTP布置加密的voip环境
freeswitch自1.8.7版别后sofia 协议栈好像是支撑了wss协议。可是一般在网络拓扑中FreeSWITCH智能外呼体系架构办法,Opensips会作为前置的SBC来操控外部协议与SIP会话。并且opensips也天然支撑tlsFreeSWITCH智能外呼体系架构办法,所以布置上能够让opensips承担起SIP over LTS的功用。
TLS默许端口5443
在opensips中修正一下操控脚本
TLS需求指定证书FreeSWITCH智能外呼体系架构办法,opensips的证书寄存方位在 ${opensips_install_location}/etc/opensips/certs
Freeswitch是支撑 SRTPFreeSWITCH智能外呼体系架构办法,ZRTP,WebRTC 等多种媒体加密手法的。一般和cloud call center对接,假如需求触及媒体加密,会运用SRTP。假如运用到webrtc终端,如浏览器终端,大多为webrtc。
在外呼时,经过指定 rtp_secure_media_inbound/rtp_secure_media_outbound 来指定
留意: rtp_secure_media 1.8.7版别过弃
如
true为permission, 后边的为加密算法。其间可选值为
发送的INVITE
收到200OK
这儿洽谈的是INVITE里candidate 5
阿里云装备FreeSwitch
地址为:
conf\sip_profiles\external
创立nexmo.xml文件 装备自己的sip外呼账号 这儿是nexmo
sip.nexmo.com: 这个是域名
\conf\dialplan\default
创立 call_out.xml 文件 用于外呼
^(00\d+)$ :00代表外呼前缀 拨打外网电话前面加00
origination_caller_id_name: 显现号码
gateway/nexmo/$1 : nexmo代表自己创立的网关文件
conf\sip_profiles
修正 internal.xml
\conf
修正 vars.xml
\conf\autoload_configs
acl.conf.xml
参阅:
FreeSWITCH中的lua操作小结
FreeSWITCH中的lua操作小结
lua中设置当时通道变量:
办法一:
session:setVariable("fullName", "xxxxx");--需判别session是否为空
办法二:
local uuid =getUUID(callerid);
local res=api:executeString("uuid_setvar ".. uuid .." fullName ".."xxxxxxx")
该处设置的变量能够是通道中本没有的变量,设置完了后,在其他当地就能够引证该变量。
lua中设置大局通道变量(在vars.xml中设置)
local ucall_ip = api:executeString("global_setvar qt_ucall_ip_port 192.168.0.32:9090");
获取当时的通道变量
local callee_num=session:getVariable("qt_ucall_callee");
获取大局通道变量
local ucall_ip = api:executeString("global_getvar qt_ucall_ip_port");
获取当时会话uuid
session:get_uuid()
获取当时途径
--USwitch的当时装置目录
syspath = tostring(api:execute("global_getvar", "base_dir"));
运用uuid_transfer将当时对话的两个号码一起转入会议中
local trf1="uuid_transfer " .. guestuuid .. " -both " .. conferenceNum;
OutputConsoleLog("info" , scriptname ..": try to get guestNum to conference,command is{"..trf1.."}");
api:executeString(trf1);
外呼办法总结:
originate user/11103139316095XX
originate sofia/external/139316095XX@192.168.2.34 playback(calloutmusic/welcometoyou.mp3)
originate loopback/139316095XXplayback(calloutmusic/20110126164156.mp3)
在lua脚本中放一段录音
session:streamFile("notonduty.wav");
判别会话是否已树立
session:ready()==true
挂断当时会话
session:hangup();
将当时会话休眠一段时刻
session:sleep(5000);
建议http恳求
local http = require("socket.http");
--建议http恳求,并获取回来成果
local e = http.request(url);