首页 > 其他分享 >技术漫谈|IVR通用开发框架简说

技术漫谈|IVR通用开发框架简说

时间:2023-09-07 16:03:30浏览次数:32  
标签:漫谈 简说 平台 系统 业务 开发 IVR 业务流程

IVR为Interactive Voice Response的缩写,意为交互式语音应答(系统)。它可以应答客户的呼叫,然后为呼叫者提供语音导航或自助服务,呼叫者可通过按键输入或使用语音命令进行选择。随后,IVR可通过呼叫路由将呼叫转移到座席或自助服务应用程序。在金融领域,IVR应用系统也被银行称之为电话银行系统。

千行百业都离不开客服系统,IVR作为客服系统中话务接入的门户,是构成客户体验感的服务排头兵。在金融领域,电话银行系统是银行与客户建立和保持沟通的重要渠道,自下而上支撑着远程银行的构建和正常运转。


开发一个兼济天下的IVR框架,善莫大焉

一个完整的IVR应用系统由IVR平台(下文简称平台)和IVR业务系统(下文简称业务系统或业务)组成。

市面上现有的、主流与非主流厂商基于软交换技术推出的IVR平台可谓琳琅满目。这些平台有共同的特点——和自身的开发工具强绑定,因此开发过程及成果都只能应用在自身的闭环系统上。虽然VXML号称是IVR的通用国际建议(此处注意:国际建议和标准不同),但是各家厂商大都也是遵循“有利则用,不利则弃”这一不成文的规则,形成了多如牛毛的VXML开发过程,没有办法做到业务和平台特性的完全解耦。

这就造成一个让人头疼的问题:开发人员必须要掌握每种IVR的开发细节才行。由于开发人员对各家平台的理解程度有高有低,这些平台所使用的开发工具又多多少少地埋着各种不尽如人意的“坑”,最终导致开发出来的成品稳定性、鲁棒性各不相同,造成上线质量参差不齐且客户的业务受制于IVR平台。

综上所述,开发一个可适用于所有平台、并且基于目前最常用开发语言的、具备“兼济天下”能力的IVR框架,具有非常重要的实际意义。


框架设计思想:专业的“人”干专业的事

框架设计围绕这样的思想展开:平台只干平台的事,业务逻辑交给WebAPP来做,平台和WebAPP的交互通过目前流行的REST接口或HTTP接口。IVR平台实现基本功能:

■ 1. 来电时接起电话,作为被叫和主叫建立通话链路,也可以作为主叫呼出电话和被叫链接通话链路;

■ 2. 播放语音,可以是TTS和预录好的语音文件;

■ 3. 搜集客户的按键或客户的语音(如果有集成ASR);

■ 4. 侦测通话链路的状态(比如客户挂机等等);

■ 5. 挂断电话(可以主动挂断电话);

■ 6. 链接CTI(非基本功能,可以在服务端实现);

■ 7. 转接会议电话;

■ 8. 链接外部系统接口。

把这些基本的功能串接在一起成为一个完整的IVR应用系统(电话银行系统),由应用服务来实现。


总体交互逻辑

技术漫谈|IVR通用开发框架简说_业务流程


前文已经提到,一个完整的IVR应用系统分为IVR平台IVR业务系统两部分。

IVR平台根据具体产商不同而不同,其主要功能是接收客户来电,并在接收客户来电后搜集客户信息。执行具体的放音、按键搜集、语音识别、传真(现在很少使用)、菜单选择、转接、挂断话务层面的事情。如果平台支持IVVR则执行IVVR相关的功能,如播放视频。如果有类似UUI类的随路数据,则也由平台执行。其开发过程使用产商的开发工具,只做基本功能的开发及与平台的通讯开发。

IVR业务系统完成所有菜单匹配、流程处理、超时处理、错误判断、随路数据等等具体的业务过程,使用纯Java的开发。

其中业务系统作为服务端,IVR平台作为客户端,平台和业务系统之间采用Restful的通讯协议。


具体过程如下:

■ 1. 客户来电时,IVR平台搜集来电的基本信息,并向业务系统发起来电请求;

■ 2. 业务系统根据配置菜单来获取下一步操作,并把下一步要执行的动作返回给IVR平台,同时保留当前的业务流程上下文;

■ 3. IVR平台收到返回后执行响应的动作,并把操作的结果通过请求接口方式返回给业务系统;

■ 4. 业务系统收到请求后,根据请求结果结合当前的上下文判定后续动作,再次返回给平台;

■ 5. 重复步骤3和4。


详细交互过程

技术漫谈|IVR通用开发框架简说_业务流程_02

技术漫谈|IVR通用开发框架简说_业务流程_03


IVR平台总体逻辑架构 

技术漫谈|IVR通用开发框架简说_业务流程_04

技术漫谈|IVR通用开发框架简说_业务流程_05

基础通讯组件完成和业务系统的通讯,如果平台有现成的支持API则可以不用开发,如果没有就要根据产品平台提供的集成API来开发。


其过程如下图所示:


技术漫谈|IVR通用开发框架简说_银行系统_06


此处多了两个服务:一是利用平台本身开发工具提供组件调用DLL(或JAVA 通讯API)的便利性来调用C语言的DLL;二是利用JAVA解释JSON报文的有利工具来封装和解释报文。


框架说明

框架由两个部分组成:菜单和业务流程。

菜单采用XML结构来描述,一者XML文档的结构很适合用于描述菜单,二者XML的遍历开发比较成熟,对开发人员要求不算太高。


菜单的结构如下:

技术漫谈|IVR通用开发框架简说_业务流程_07


业务流程

所有的业务流程采用纯J2EE的服务方式开发,框架实现基本的功能,定制开发只实现具体的业务流程。主要包含:实现各类输入的属性、业务过程串接、后台交易的实现等。


业务开发步骤

■ 1. 流程开发的任务配置菜单文件;

■ 2. 开发所有输入项(比如输入开始日期、结束日期、币种等等);

■ 3. 开发业务流程,比如余额查询,首先输入卡号、然后输入密码、调交易、报读结果,最后回到上级菜单;

■ 4. 开发交易过程,配置交易提交接口、调交易、返回值封装等等,是开发的主要工作;

■ 5. 记录日志、埋点等运维及运营相关的功能。


所有业务流程都要从BusiBase类中派生出来。流程开发具体过程如下:


技术漫谈|IVR通用开发框架简说_银行系统_08

通过上图可以看出,一个业务流程的完成,需要和平台有多次交互才可以实现,每次交互流程类的对象都结束了,都需要保存和恢复上下文,这是一个需要特别注意的地方。


接口说明

平台和业务系统之间通过接口实现,这个接口适合于所有的平台。接口的具体内容如下:


技术漫谈|IVR通用开发框架简说_开发工具_09

技术漫谈|IVR通用开发框架简说_开发工具_10


标签:漫谈,简说,平台,系统,业务,开发,IVR,业务流程
From: https://blog.51cto.com/u_15430715/7398156

相关文章

  • 技术漫谈|IVR通用开发框架简说
    IVR为InteractiveVoiceResponse的缩写,意为交互式语音应答(系统)。它可以应答客户的呼叫,然后为呼叫者提供语音导航或自助服务,呼叫者可通过按键输入或使用语音命令进行选择。随后,IVR可通过呼叫路由将呼叫转移到座席或自助服务应用程序。在金融领域,IVR应用系统也被银行称之为电话银行......
  • 漫谈 C++ 的各种检查
    原文:《漫谈C++的各种检查》为什么代码中需要各种检查?在C++中调用一个函数、使用一个类、实例化一个模板时,对传入的参数、使用的时机,往往会有很多 限制 (constraint/restriction)(例如,数值参数不能传入负数、对象的访问不是线程安全的、函数调用不能重入);而处理限制的方法有很......
  • 「产品设计」简说
    前两天自己负责的一个项目设计资源紧缺,但是由于项目急需投入使用,所以使出浑身解数找了几个有用的在线设计网站,具体是在哪家设计的就不用介绍了,主要是设计了首页轮播图的banner,当然如果设计的同学有看到这篇博文欢迎关注、加我、私聊一下,交流设计。关于设计,我是一个被技术耽误的设计......
  • 漫谈Linux系统的二次定制
    拥有一个自己的Linux系统从内核到应用程序的定制这个对于使用Linux的用户和众多的Linux玩家来说在目前的Linux发展的技术成熟度下面已经不是梦想,完全是可以通过通俗的技术条件实现;Linux从开始就逐渐的分化为针对服务器环境应用的server版本,这个版本基本上是因命令行方式与管理员进......
  • 「行业/市场分析」简说
    以下是相关材料,会在近段时间进行阅读、学习、总结出一套适合自己的分析方法。行业分析行业趋势研究方法论:双金字塔模型产品经理调研前期如何分析行业!产品经理如何做行业分析?干货|一个标准的行业分析怎么做?如何着手分析一个行业?干货:如何分析一个行业,做完这五步就够了! 产品小白:如......
  • 漫谈程序员创业
    很多程序员选择辞职创业,成为了自己公司的创始人或者合伙人。他们选择离开原有的公司,是因为想要实现自己的梦想,追求更高的创业成就。辞职创业是一项具有挑战性的决定,需要勇气、决心和毅力。一些成功的创业者通过坚持不懈和不断努力,最终实现了自己的梦想,成为了成功的企业家。很多程序......
  • FreeWheel基于Go的实践经验漫谈——GC是大坑(关键业务场景不用),web框架尚未统一,和c++性
    Go语言是FreeWheel公司目前主要力推的一个方向,在其看来,面向服务的架构的大环境中,Go非常适合做一些功能相对独立、功能比较明确的微服务的语言。在结合已有的各种编程语言,计算框架(如Hadoop、Java、Ruby、C++)的基础上,FreeWheel把Go语言定位成用来实现轻量级服务或API的缺省编程语言,将......
  • 【HarmonyOS】元服务启动命令漫谈
    ​在日常开发中,我们可以通过DevEcoStudio,直接Run我们的元服务工程,在测试机上拉起我们开发的元服务页面。但是我们自己打包HarmonyOS元服务hap在手机上安装后是没有桌面图标的。虽然我们可以在设置的服务管理中找到我们安装的元服务,但是无法直接打开,这就需要通过命令行的方式来启......
  • 「行业研究」简说
    关于行业研究应该说是属于高级产品经理所需比较核心的能力,不过大多数的初级产品经理目前貌似还不需要,但是在初期如果需要对市场进行调研的话,那就需要了解一下如何做行业研究,如何分析行业数据报告了,下面我将这几年经常使用的行业研究网站做一下归纳,还有一些行业研究的方法论以及一些......
  • 「效率提升」简说
    关于如何高效率的学习和工作,我觉得很多人会立马列出一整套的方法论,但是实际生活中,由于一些琐事和杂事会影响到我们的学习和工作效率,进而影响到我们的输出结果,我也不例外!但是相比对自己的时间和效率根本care的同志来说,我觉得我还是有些发言权的,由于最近亚历山大,也开始手忙脚乱,某日,闭......