自动应答系统的设计及实现.doc_第1页
自动应答系统的设计及实现.doc_第2页
自动应答系统的设计及实现.doc_第3页
自动应答系统的设计及实现.doc_第4页
自动应答系统的设计及实现.doc_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

学 号毕业设计(论文) 题目: 自动应答系统的设计与实现 作 者 李 科 届 别 2010 届 院 别 计算机学院 专 业 计算机科学与技术 指导老师 胡 娟 职 称 讲 师 完成时间 2010 年 5 月 15 日 摘 要 自动应答系统是指在没有工作人员值班的情况下,由系统自动处理来自用户的呼 叫,通过语音给出用户各种操作提示,并根据用户的操作来执行相应的命令,完成用 户所要实现的功能或提供用户所需要的信息。例如当前流行的一些语音电话系统,手 机的客户服务中心以及各种自动查分系统等都是自动应答系统的具体应用。随着信息 需求的急剧增加,这种应答系统已经不仪仅局限在电信,银行等大型企业中,许多中 小公司和企业对应答系统的需求也越来越强烈。而传统的呼叫中心的建立完全依仗于 硬件平台,因此成本较高,往往超过了中小企业的承受范围。 在这种中小用户简单的自动应答需求、传统应答系统的硬件高成本的工程背景下, 本软设计采用 Visual c+实现,硬件仅需一块语音 Modem。其使用的 TAPI 是 Telephony Application Programming Interface 的缩写,是桌面集成的标准。本设计可以 由用户定制功能,对不同的硬件兼容。该系统可以实现:振铃语句等候呼入的电话, 可以取得来电的主叫号码、被叫号码和设置应答前振铃的次数。应答语句等候呼入的 电话,可以应答来电。呼叫语句可以对外进行呼叫。放音语句可以播放语音文件。留 言语句可以将对方的声音录制到语音文件。说话语句可以将文字通过语音合成转化为 声音,播放给通话的另一方。休眠语句可以暂停流程的运行。话筒耳机语句可以操作 VoiceModem 的麦克风和扬声器。 关键词:关键词:自动应答系统;TAPI3 组件;呼叫中心 Abstract Telephone automatic answering system means there is no staff on duty in the case, automatic processing by the system fromThe users call, through the voice prompts give users a variety of operations and, based on the users actions to implement the corresponding Command, complete user functionality to be achieved or to provide users the information they need. For example, some of the popular Voice telephone system, mobile phone customer service center and a variety of automated inspection subsystems are all automated voice responseConcrete application of the system. With the rapid increase in information needs, this response system is not only limited to electrical apparatusLetter, banks and other large enterprises, many small and medium companies and enterprise demand response system more strongly.The traditional call center to establish a fully rely on the hardware platform, the high cost, often more thanTolerance range of small and medium enterprises. In this small user demand for simple automated voice response, the traditional response systemHardware cost of the project background, the soft design with Visual c + + implementation, the hardware only a voiceModem. Its use of TAPI is the Telephony Application Programming Interface acronymIs the desktop integration standards. The design features can be customized for different hardware compatibility.The system can be realized: ringing statement to wait for incoming phone calls can be made calling number, beingCalled the number and set number of rings before answering. Statement to wait for incoming call answering, can answer the call. CallStatement can be called the external call. Playback statement can play audio files. Recording statements iJ to the other sideSound recording to audio files. Talk statements can be transformed into text through a speech synthesizer sounds, play to pass.If the other party. Sleep statement can suspend the process running. Voice headset microphone can operate statementModems microphone and speakers. Keywords : Question Answer System;TAPI3 components;Call Center 目 录 摘 要 I ABSTRACT.II 1 绪 论 1 1.1 课题背景 1 1.2 课题内容与意义 2 2 系统开发工具及关键技术 3 2.1 自动应答.3 2.2 TAPI4 2.3 开发环境需求 8 2.4 操作系统需求 8 2.5 MODEM.8 3.系统设计目标 9 3.1 分布式系统结构.9 3.2 系统的总体结构11 4 系统详细设计与实现14 4.1 系统主界面14 4.2 检测硬件 Modem 14 4.3 实现模块及部分代码 .15 5 结束语 .26 参考文献 .28 致 谢 .29 附 录 30 1 绪 论 1.1 课题背景 随着一些智能化仪表及控制设置在生产和生活中的普遍应用,使得控制和测试的 准确度有了进一步的提高。而这些仪表或控制系统通常还提供另一种功能数字通 讯,通过数字通讯接口可以使之与计算机或其它设置实现数据共享,从而实现更高层 次的数据分析及综合控制。 这此仪表通常提供一种或多种通讯接口,其中比较常见的通讯接口有:RS- 232(串口)、RS-485、RS-422、HART、乙太网接口等。RS- 232 接口由于具有电器特 性简单、实现成本较低的特点,而为大多数设备所支持。使用计算机直接与串口设备 通讯实现过程比较简单,只需按着相关指命或协议建立应答关系即可。在这里我要介 绍的是一种串口通讯的扩展方式利用 Modem 自动应答实现远程串口通讯。 在实现应用中,我们经常会遇到数据使用者(计算机、其它具有通讯功能的智能 通讯设备)与智能仪表或控制设备之间的距离较远(超出了 RS-232 直接通讯距离) , 这时我们就要根据通讯距离及环境条件对通讯进行扩展。在距离不太远(不超过 RS- 485 或 RS-422 通讯距离)时,我们可以通过在两端增加 RS- 485/RS-422 转换器,并铺 设通讯电线即可。对于通讯距离更远且通讯的两端都具有可互通的电话网的环境(没 有其它网络环境)时,使用 Modem 对通讯距离进行扩展,不失为一种比好的方法。 使用 Modem 对通讯距离进行扩展时,在数据请示端和远程应答端都要安装一个 Modem, 并将它们连接到本地的电话网上。另外,我们需通过 AT 命令对 Modem 进行初始化,使 通讯网络具有自动恢复能力。 自动应答系统是指在没有工作人员值班的情况下,由系统自动处理来自用户的呼 叫,通过语音给出用户各种操作提示,并根据用户的操作来执行相应的命令,完成用 户所要实现的功能或提供用户所需要的信息1。例如当前流行的一些语音电话系统, 手机的客户服务中心以及各种自动查分系统等都是自动应答系统的具体应用。随着信 息需求的急剧增加,这种应答系统已经不仅仅局限在电信,银行等大型企业中,许多 中小公司和企业对应答系统的需求也越来越强烈。但另一方面,不少中小企业对建立 呼叫中心持谨慎态度,担心企业的投入未见成效反增负担。在这种中小用户简单的自 动应答需求、传统应答系统的硬件高成本的工程背景下,本软设计采用 Visual c+实现, 硬件仅需一块语音 Modem。系统面向的用户对象:l,中、小型企业:2,服务性行业; 3,个人电话留言。 1.2 课题内容与意义 随着电子技术非凡是数字技术的迅猛发展,电脑自动应答、数字点歌、自动音频 服务、自动应答留言电话等各种自动答录系统在越来越多的场合发挥着重要的作用。 这些技术极大地方便了人们的工作和生活,提高了效率。本文介绍以数字存储方式设 计实现的一种简单的自动应答留言系统。该系统主要采用 ISD2590 语音芯片进行数字 留言,其特点是:音质好,且可随时更改主人留言信息。 长期以来,全国计量所的业务查询工作是靠收发员接听电话后,由收发员通过所 内的查询系统进行查询,答复客户。仪器收发部门的工作除了收发仪器外,大量工作 就是接待客户的完工电话查询,为此需要固定的工作人员专门接听电话。由于人工接 听和操作,不免出现效率低、查询出差、服务态度不理想的现象,这也是广大客户对 技术机构服务的一个投诉热点。 随着计算机与电话的融合,国内外的许多大公司都在投入人力和资金进行研究, 开发大而全的系统,如 Hotvoice 公司的 XIVR 系统作为电信网与数据网互通的解决方 案,适应了互联网发展的新趋势,利用现有的发达、便利的电话网络,使得普通用户 可以利用常用的电话座机或移动电话,通过友好的语音界面,在任何时候、任何地方 都能快捷方便地获得数据网上的信息和服务。也有一些小的、不稳定的试用产品(如留 言精灵),在网上提供。本设计力求在上述二者问寻找更好的性价比,主要逻辑功能完 全是由软件来实现。 当使用计算机自动应答系统,由客户通过电话,根据语音提示,自己在普通电话 机的按键上,直接操作我所的业务查询系统,完成查询。由于电话查询是直接进入电 脑系统,方便、准确、快速,不需要人工介入,不存在电话打入不接的现象,减轻了 仪器收发部门的工作量,提高了工作效率,改善了服务手段,这是为客户提供优质服 务的一种实实在在的具体表现。 2 系统开发工具及关键技术 2.1 自动应答 自动应答系统(Question Answer System,缩写为 QASl60)是一种基于因特网的高性 能软件系统2。用户通过浏览器以自然语言形式提出问题,在针对某一领域知识库进 行特殊处理之后,系统以多媒体的形式自动给出答案,并能针对用户要求进行相关的 统计和针对具体情况给出适当的建议。 1)自动应答系统的结构与组成系统采用多层 BS 结构,从逻辑上分为 Web 服务 器、应用服务器和数据库服务器。如图 1.1 自动应答系统结构图所示。 图 1.1 自动应答系统结构图 由 Web 服务器提供系统的输入输出服务,应用服务器为 web 服务器提供问题处 理的逻辑运算服务,数据库服务器管理系统的应用数据库、语义知识库和领域知识库 等。 系统主要组成如下: l、用户界面:能与用户用中文或英文进行日常会话交流,接受用户的自然语言问 句,并以自然语言语句的形式进行回答。 2、问句分析子系统:根据统计的疑问词规则、常见疑问句语料、疑问句句模和有 关语境,结合领域术语词库和其她语法、语义方面的资源,分析用户输入的问题,在 解决歧义、指代关系等问题后,提供问点和寻找相应答案的信息集。 3、词典与知识库:用于存储受限或非受限领域的知识资源。 4、XML 服务子系统:根据问句分析子系统得到的推理信息集,在相应的电子资 源中析取符合要求的答案并提交给界面。 5、答案处理模块:分析答案间的语义关系,进行适当的合并和裁剪。 6、知识资源管理子系统:本子系统管理自动应答系统中用到的词库、规则库、领 域知识库、语料库等知识资源。它应提供可视化的知识维护界面,能够显示不同知识 资源的结构及其关系,便于灵活操作知识库的存取和维护。 2)词典与知识库 词典与知识库是自动应答系统能够正常工作的本源。制作一个规模适当、分级合 理并可灵活配置的词典是建造自动应答系统的第一步。这里我们需要强调的是,在自 动应答技术涉及的诸多因素中,机器词典的适用性是要求很高的。词典作为最重要的 知识库,它的规模及其词汇知识的描述质量从根本上决定了信息获取效果的好坏 。信 息获取的目标是以表达某个事物的概念为基本单位的。而词是表达概念的基本单位, 因而也是信息获取和自动应答的最小单位。但是一个概念却可以由许多不同的词或词 组来表示。比如同一概念可以有许多不同的名称,实名和指称、指代、缩写、简称等 有等价关系;一个名词性概念有代用、相关、从属等关系,动词性概念有方式、工具、 程度、时间和原因等谓词框架。对于这些情况,必须认真搞清楚词之间的同义、近义、 反义、从属、隐含、关联等关系,这也就是用概念及其语义关系的集合来组成一个概 念语义词典(简称概念词典),信息获取和自动应答实际上是依靠概念词典来搜索过滤 语料文本的。 整个过程需要使用知识库和推理机制来确认和提取概念,并且确认其问各种关系 的有无,进而组织有序的答案语句。解决这个问题的基础条件是需要一个用于信息获 取和自动应答的基于词典的知识库。系统使用这个知识库,就可以事先对文献进行语 义概念(义项)标注,这样,其查找效用会极大地提高。 而概念(义项)标注要求对现代汉语词语进行语义分类(义类),使表达同一个概念 的词都出现在同一个义项代表的词群中,即每个词语都按其义项确定了类别嘲3。实 践也已经表明,现代汉语信息处理的关键问题在于对于名词和动词两类词的语法、语 义研究的深入。二者在汉语语法、语义方面占有无可替代的支配地位,而且二者在汉 语词汇量中占有压倒优势的份额。汉语信息获取和自动应答的语言分析也应该以动词 和名词作为重点。因此,用于自动应答的基于词典的知识库的主要内容应该是有关动 词和名词的全面信息。 2.2 TAPI TAPI(电话应用程序编程接口)技术是 Microsoft 公司和 INTEL 联合提出的一套用 于 CTI(计算机电话集成)的技术标准4它朝代了简单而通用的在两个或更多的机器 之间建立连接的方法,并可访问连接里的媒体流TAPI 将呼叫控制机制抽象为应用程 序通用接口,从而允许不同的通信协议共同存在利用 TAPI 技术开发的应用系统与硬 件无关,也说是说,应用系统可以在支持 TAPI 标准的任何硬件上运行采用 TAPI 技 术,开发人员几乎可以不用了解硬件的相关细节,而只要了解系统的业务流程以及利 用 TAPI 技术实现的原理就可以了。利用 TAPI 技术开发的系统,可以实现与公用电话 交换网(PSTN)的直接连接、自动拨号;传送文件、传真、电子邮件;接收、存储语音 信件:自动处理拨入呼叫功能。目前最新版本的 TAPl3.0 能够支持传统的 PSTN 电话 和 IP 电话两种电话,为用户提供了一个良好的开发环境5。随着电话和呼叫控制在个 人计算机中越来越普通,需要一个通用的电话接口来支持应用程序,使其能够访问任 何一台计算机上的电话,通过一个统一的标准,一个呼叫的媒介和数据对应用程序也 必须是可用的。 微软的 TAPl3.0 提供了一个简单和基本的方法,来完成两台或多台计算机连接的 建立和传输媒体的访问。它将呼叫控制的功能抽象出来,以屏蔽不同的、不兼容的通 讯协议,为应用程序提供一个统一的接口。IP 电话保持稳步增长,许多企业和组织开 始从昂贵的、不灵活的、电路交换的公用电话网向智能的、灵活的、廉价的 IP 网络转 变。微软预期到该趋势,因此建立起强大的计算机电话体系结构 TAPI。目前它的第三 版本,TAPl3.0 适合于快速方便地 IP 电话应用程序的开发。微软公司的 TAPl3.0 集成 了传统电话的媒体流控制功能。另处,将原来的 TAPl2.1 发展为 COM 组件模式,允许 TAPI 应用程序以任何一种语言来写,如 CC+或微软的 VB。在 TAPl3.0 中,无论是 呼叫中心、IP 电话的集成,还互联网呼叫,其功能都得到了进一步扩充。TAPl3.0 可 多点传送媒体 IP 会议、基于 H.323 协议的语音呼叫,它将在具有追踪多代理能力的呼 叫中心应用程序、基于 PSTN 的基本语音呼叫、PBX 控制、交互式语音应答系统(IVR)、 语音信件6。几个方面有广泛的应用。除了支持传统电话的功能外,微软的 TAPl3.0 还支持标准的 H.323 会议和 IP 广播会议,微软的 TAPl3.0 还提供 QOS 质量保证,从而 提高会议质量和网络的管理能力。 2.2.1 TAPl 的 4 个组件 TAPl3.0COM API、TAPI Server、Telephony Service Providers、MediaStream Providers 与 TAPl2.1 相比,微软的 TAPl3.0 是按 COM 对象方式来实现的。从 TAPI 转 向 COM 组件模式使得组件能够升级 TAPI 的特性,并允许开发者能够以任何一种语言 来编写 TAPI 应用程序。TAPI Server 从微软的 TAPl3.0 和 TAPl2.1 中抽象出来 TSPI(TelephonyService Providers Interfaee),从而使得 TAPl2.1 Telephony Service Providers 能够与 TAPl3.0 一起使用,保持 TAPI 的内部状态7。Telephony Service Providers(TSPS)负责独立于低层协议的呼叫模型并解释为特定协议的呼叫控制机制。 TAPl3.0 对 TAPl2.1 TSPS 提供可靠的后向兼容性,两个 IPTSPS 缺省地与微软公司的 TAPl3.0 相匹配:一个是 H323TSPS,另一个是 IP 广播会议的 TSP。微软公司的 TAPl30 为访问在一个呼叫中的媒体层提供了一个统一的方式。TAPI Media StreamProviders(MSPs)为指定的 TSP 提供 DirectShow 的接口8。 2.2.2 TAPI 3 的呼叫控制模型 呼叫控制模型如下图 2.1 所示。 图 2.1 呼叫控制模型 (1)TAPI TAPI 对象是应用程序访问 TAPl3.0 的接入点。该对象代表了本地计算机访问的所 有计算机资源,允许一个应用程序解析所有的本地和远程地址9。 (2)Address Address 对象表示一个呼叫的源地址或目标地址。媒体层和中断所支持的地址的容 量可以从这个对象中获取。一个应用程序可以在一个地址等待呼叫,同样也可以向一 个目标地址呼出 (3)Call Call 对象代表一个本地地址和一个或多个的其她地址的连按。Call 对象可以想象 成电话的主控模式。所有的呼叫控制都要通过 Call 对象。在 CallHub 中的每一个成员 就是一个 Call 对象。 (4)CallHub CallHub 对象代表了系列相关呼叫的集合。CallHub 对象不能直接由应用程序创建。 它是当有呼叫通过 TAPl3.0 接入时间接建立的。通过 CallHub 对象用户可以解析出在 一个呼叫或会议中的其她参与者,可以对其她相关的远程 Call 对象进行呼叫控制。 (5)Terminal 呼叫终端。 2.2.3 TAPl3 的使用与主要流程设计 用 TAPI 能够比较方便地执行一个呼叫和作一个呼叫应答,它对电话的操作方便快 捷,给编程者。带来了很大的方便。下面是执行一个呼叫和呼叫应答的大体过程。执 行一个呼叫:创建和初始化一个 TAPI 对象用 TAPI 对象解析在一个计算机上的可用地 址。解析每一个地址对象所支持的地址类型。选择一个地址对象。有 Address 对象中的 CreateCall 方法创建一个 Call 对象。选择 Call 对象的适当终端。用 Call 的对象的 Connect 方法执行一次呼叫。呼叫应答;创建和初始化一个 TAPI 对象。用 TAH 对象 解析在一个计算机上的可用地址。解析每一个地址对象所支持的地址类型。选择一个 地址对象。根据不同的媒体类型用适当的 Address 对象来登记。用一个 Address 对象登 记呼叫事件句柄。TAPI 通过 ITCallNotification 通知一个呼叫,并创建一个 Call 对象。 选择 Call 对象的适当终端。用 Call 对象的 Connect 方法执行呼叫用 Call 对象的 Answer 方法执行应答。 流程控制设计如下:其中,条件控制语句可以根据条件的逻辑值选择真或假分支 继续执行。多路分支语句可以根据条件的值选择匹配的分支继续执行。分支匹配语句 可以加入多路分支语句中进行匹配。循环控制语句可以根据条件的逻辑值决定是否反 复执行其下的子语句。程序块语句可以执行其下的子语句。标号位置语句在流程中设 置一个位置,可以让跳转语句转到这里继续执行。跳转语句可以将流程转到标号所在 位置继续执行。结束流程语句可以跳转到流程结束部分继续执行。重新开始语句可以 跳过流程结束部分,直接返回流程开始部分继续执行。数据定义部分用于在流程中定 义数据,比如变量和数据库,供流程的其她部分引用和操作。流程开始部分是流程的 主要部分,用于应答来话、对外呼叫及和对方进行交互。流程结束部分是流程的附加 部分,用于当对方挂机或退出时的结束处理10。 2.3 开发环境需求 采用 Visual Studio 2003 集成开发环境,在 Windows XP 系统中用 c+语言来实现 的。 2.4 操作系统需求 TAPI 是本程序的核心,目前 TAPI 最新版本是 TAPl3.1。TAPI 已经与操作系统集 成,所以无需另外安装,但 Windows2000 中集成的是 TAPl3.0,WindowsXP 中集成的 是 TAPl3.1,由于在程序中用到了 TAPl3.1 中的一些函数,如 ITBasicCaallControl2 接 口,因此要求操作系统为 WindowsXP,若用 Windows2000 则程序的应答功能无法全部 使用,只有呼叫功能可用。 2.5 MODEM 本程序所实现的上述功能,一方面要有软件的支持,另一方面,也需要有相关的 支持。比如实现来电显示,就需要具备三个条件:本地电话向当地电信审请了来电显 示服务,TSP 支持来电显示,以及 MODEM 也要支持来电显示。下面是本软件开发时 使用的 MODEM 及效果说明11。 型号:Intel HaM Data Fax Voice(内置)intel 56data,fax,voice,speakerphone; 芯片 Conexantrockwell6793 3 系统设计目标 3.1 分布式系统结构 自动应答系统适用的范围非常广泛,可能需要与各种各样的软件和系统打交道, 因此需要和很多其她的系统通讯和集成,而把这些系统都安装到一台服务器上是不现 实的,也实际上是不可能的,因为一台服务器毕竟软硬件资源有限,无法同时满足各 种业务系统的需求,而且有很多业务软件还相互冲突,根本就无法安装到同一台服务 器上.因此有必要采用分布式系统结构和技术,分布式系统(distributed system)是 建立在网络之上的软件系统。正是因为软件的特性,所以分布式系统具有高度的内聚 性和透明性。因此,网络和分布式系统之间的区别更多的在于高层软件(特别是操作 系统) ,而不是硬件。把自动应答平台和基本的功能组件安装到一台服务器上,而其她 的功能组件则可以分布在其她服务器上,只需要符合我们支持的分布式组件规范和接 口,就可以由平台进行统一控制和调度。这样既方便了控件的使用又便于进行集中式 管理。另一方面分布式组件技术与开发语言无关,用户无需关心它用什么语言开发, 任何支持分布式组件技术的软件平台都可以使用,这样就使不同厂商所丌发的组件可 以真正地组装在一起,从而使软件的开发过程类似于硬件工业的插件组装过程,实现 软件的工业化,同时可以将一些复杂的技术细节隐藏在组件中,只向外提供简单的接 口,方便用户的调用,这样大大降低了软件的开发成本,提供软件的生产效率。 3.1.1 可视化流程定义 像新产品要经过严格的检验程序一样,业务流程也需要测试以证明它们能够经受 住操作环境的压力和考验。一个新的或被修改过的业务流程在进行系统、技术和员工 的投资之前也必须加以审核。这就需要流程可视化。 流程可视化是你能够真实地看见业务流程实施的简单而有效的方式。这种对待流 程设计的方式可以植入你的企业文化之中。你可以像对待新产品一样来对待业务流程 设计。 自动应答系统只是一个平台工具,为用户提供系统平台和基本的功能组件,但要 真正把系统运行起来。来需要根据用户的实际情况来定制各种流程。因此一个好的自 动应答系统。不仅自身功能上应该覆盖一个广涵的范围,拥有稳定、迅速、高容错的 内核,而且应该为用户提供一个友善的、一目了然的开发环境,用户可以构造功能完 备的应用,而无须了解任何有关自动应答系统又或编程方面的专业知识。因此,比较 好的自动应答系统都采用图形化脚本生成器,使用基于图标的工作流定义方式,各种 构造图标均代表特定基本功能,用户在绘图区按照适宜的逻辑关系排列和连接图标, 由此定制新的或修改现有工作流。绘制好的工作流可按逐层细化的层次显示,也可以 模块化的显示,用户很直观的了解流程及其架构。为了方便用户能够简单的定义出一 个正确的流程,系统还需要提供语法编译检查和流程仿真工具,由计算机现场模拟电 话完成控制流程,实时流程预览,即在调试流程时系统实时显示所经过的部分;断点 设置、单步跟踪等。 3.1.2 可扩展系统接口 一个好的系统不仅仅需要满足当前的需求,更重要的在于当数据量,用户数和业 务逻辑发生变化时,能够正确地应对这些变化,或者可以很方便地添加对新功能的支 持。这就要求系统架构是开放的,可扩展的以及可维护的,同时必须提供用户定制和 扩展系统功能的接口。一般可以把系统接口分为三类:入接口,被调接口以及双向接 口。如果把应用系统看作一个封闭体的话,入接口表示该整体从外界获得信息的通道, 比如 Hook 应用,被调接口表示外界调用该系统的通道,比如典型的 API,而双向接口 则包括以上两部分的功能,与银行系统的接口就属于该类型。 自动应答系统应用范围非常广泛,涉及到各行各业,而通过平台提供的基础功能 组件在很多情况下都不能够满足用户需要,因此自动应答系统在设计的时候必须考虑 提供可扩展的系统接口,允许用户增加特殊的功能组件,满足特殊的用户需求。因此, 应该考虑的地方有三点;1)系统提供二次开发函数库以及接口规范,利用该函数库可 以提供给用户一个自主控制工作流程的接口:2)系统能够把需要用到的二次行发模块 动态链入到平台的地址空间中,实现二次开发模块的动态装载和修改而不中断现有的 进程,允许系统平滑地升级;3)新增功能应该与原系统相互独立,确保系统稳定性、 可靠性和易扩展性12。 3.1.3 高密度并发服务 自动应答系统应用的规模都非常大。小点的应用都是几十线,大一点的规模都 是几百线上千线。在这样的应用规模下,自动应答服务器的高密度并发能力就显得非 常重要如果并发能力高则单台服务器可以支持的线数提高,用户总体拥有成本就 降低。例如用户需要上 1200 线自动应答服务,如果每台服务器支持 60 路,需要上 20 台服务器,如果每台服务器支持 120 路,则只需要 10 台服务器就可以满足需求硬件 成本节省一半。因此,如何提高效率,提高系统的并发处理能力,增强单台自动应答 服务器的处理密度是一个非常重要的问题13。 3.1.4 业务数据库集成 针对常见的受限树状组织结构,我们提出了能够使分散在各节点的数据库应用系统 有效集成的一种自动化方法.该方法支持数据流程定义,从而能够支持业务过程重组.该 方法也支持数据集成系统的批量部署,为大规模异地数据库应用系统的集成提供了有效 的途径。基础数据库在国土资源信息化建设中的空间信息基础设施地位,就要求建成 的基础数据库可适应国土资源各种类型业务系统使用的要求,也就是说,基于一套基 础数据库可以建立和运行多种类型的国土资源业务系统14。 自动应答系统应用的环境千差万别,在不同的行业应用具有不同的业务环境,需 要和各种各样的业务系统数据库通讯,进行数据查询和操作。而各种业务系统数据库 的运行平台、环境、数据库结构等都不一样,因此自动应答系统需要考虑兼容各种各 样的环境。 这里有两个主要的问题需要考虑:1)能够支持目前主流应用的数据库平台,包括 Oracle、Microsoft SQL Server、DB2、Sybase、Informix 等;2)能够根据用户的定义自 动生成相应的 SOL 语句,这样可以对任意的数据库结构进行增删改查等操作,并能够 执行语法检查,确保没有错误15。 3.2 系统的总体结构 3.2.1 系统设计方案 自动应答系统的设计方案是以 Modem 为媒介,通过与公众电话网连接后同个人电 话公用电话等联通,再将用户电话与计算机通过 Modem 相连接,把电话的虚拟信号通 过 Modem 转化为数字信号,这样的话,用户就可以在电脑上轻松便捷的应答来电了, 也可以进行自动应答。 系统设计方案如下图 3.1 所示。 图 3.1 系统设计方案 各类电话通过公众网拨号至 Modem 然后被系统程序处理。其中,三个控制按钮拨 号前后状态控制如下表 3.1 所示。 表 3.1 三个控制按钮拨号前后状态控制 控制按钮拨号前状态拨号过程中状态通话中状态 拨号按钮EnableDisableDisable 应答按钮DisableDisableDisable 挂断按钮EnableEnableEnable 3.22 系统流程图系统流程图 系统流程图演示如下,当有来电的时候,系统检测是否可以进行自动应答,若果 用户在的话,则应用为手动应答,如若不在的话,则默认为自动应答。继而进行自动 应答,播放提示音,然后进行录音存储等操作。系统流程图如下图 3.2 所示。 图 3.2 系统流程图 3.2.3 应答流程 应答是本系统的核心,当来电的时候,用户不在的话,系统进行自动应答,播放 语音,根据语音提示,可以进行语音选择,最后等所有流程完成后,则进行挂机,整 个流程完成。系统应答过程的流程图如图 3.3 所示。 图 3.3 系统应答过程的流程图 三个控制按钮显示了拨号按钮、应答按钮、挂断按钮在拨号前、拨号过程中以及 在通话中的不同状态。三个控制按钮应答前后状态控制如下表 3.2 所示。 表 3.2 三个控制按钮应答前后状态控制 控制按钮拨号前状态拨号过程中状态通话中状态 拨号按钮DisableDisableDisable 应答按钮DisableEnableDisable 挂断按钮EnableEnableEnable 4 系统详细设计与实现 4.1 系统主界面 首先,先介绍一下自动应答系统的主界面。 系统主界面如下图 4.1 所示。 图 4.1 系统主界面 在自动应答系统的主界面里,一共有五个模块,分别是:拨出模块,接听模块, 挂断模块,配置模块以及帮助模块。各个模块里,都能够在不同的区域里进行其作用。 还有退出系统以及自动接听附属模块,它们都是给其他模块辅助的。在拨出号码里, 我们可以输入号码,然后进行拨打电话。 4.2 检测硬件 Modem if( !bModem ) AfxMessageBox(“没有找到 Modem,请检查您计算机那是否装有 Modem“); 如果连接好了对程序进行编译,在没有连接 Modem 的情况下,就可以弹出下面对 话框。这就是说明程序没有检测到 Modem,所以不能对 TAPI 接口进行初始化,所以 就不能进行接下来的程序运行了,如果连接号了 Modem 的话,那么就不会出现这个对 话框,而是 TAPI 接口的初始化成功。 检测 Modem 如下图 4.2 所示。 图 4.2 检测 Modem 检测 Modem 代码如下所示。 return E_FAIL; if( !bState ) AfxMessageBox(“系统监测到您机器内有 Modem,但当前没又启用,请手工启 用 Modem 之后在运行本程序“); return E_FAIL; if( !bListen ) AfxMessageBox(“使用 Modem 监听失败,可能是您的 Modem 不支持语音, 详情请于服务商联系“); return E_FAIL; return S_OK; 4.3 实现模块及部分代码 传统上,呼叫中心是指若干个人工坐席代表,集中处理打人或打出电话的系统。 近年来,随着通信和计算机技术的发展和融台,特别是 Internet 的应用给呼叫中心赋予 了新的内容。呼叫中心不但能处理电话,还可处理自动语音、传真、电子函件、web 访问,后台数据库服务器等。 功能卡为主的呼叫,是基于 uternet 的电话和视频会议等。从而出现了将通信服务、 语音和传真服务、Web 服务、Email 服务、数据库服务等集一身的综台性A1lin one)呼叫中心服务。 部分代码如下所示。 tapiPhoneDlg.cpp : 实现文件 #include “stdafx.h“ #include “tapiPhone.h“ #include “tapiPhoneDlg.h“ #include “tapiPhoneSetupDlg.h“ #include “control.h“ #ifdef _DEBUG #define new DEBUG_NEW #endif 用于应用程序“关于”菜单项的 CAboutDlg 对话框 void CAboutDlg:DoDataExchange(CDataExchange* pDX) CDialog:DoDataExchange(pDX); LRESULT CtapiPhoneDlg:OnTapiEvent( WPARAM wp, LPARAM lp ) TAPI_EVENT TapiEvent = (TAPI_EVENT)wp; IDispatch *pEvent = (IDispatch*) lp; if( TapiEvent = TE_DIGITEVENT ) MessageBox(“TE_DIGITEVENT“); else if(TapiEvent = TE_GENERATEEVENT ) MessageBox(“TE_GENERATEEVENT“); else if(TapiEvent = TE_GATHERDIGITS) MessageBox(“TE_GATHERDIGITS“); 本文介绍的功能卡具有开发周期短,功能全等特点,适用于小型呼叫中心系统。 呼叫中心的客户设备有二大类:电话(包括电话,传真机)和计算机。它们以同 1 个电话 号码,按不同的方式连通呼叫中心,请求三种服务:电话一自动语音应答服务;电话 一人工坐席服务;计算机 web 服务。用户的呼 q 都由 CTIComputer Telephone Inte grate)接人。前二种方式是由 CTI 接人后直接进行调度和服务。 对计算机的服务请求,因为是通过 Modem 连接呼入电话以及用户电话和电脑的, 是通过拨号接人的,因此 CTI 辨识后将电话通路转接到服务端的 Modem 池,通过远 程服务器连接到呼叫中心的 Web 服务器。呼叫中心的功能延伸后增加了接人的复杂性, 下面将对语音、座席、Web 服务的接人方案和处理方法进行阐述,并将对安全作一般 性讨论。部分代码如下所示。 BEGIN_MESSAGE_MAP(CAboutDlg, CDialog) END_MESSAGE_MAP() CtapiPhoneDlg 对话框 CtapiPhoneDlg:CtapiPhoneDlg(CWnd* pParent *=NULL*) : CDialog(CtapiPhoneDlg:IDD, pParent) , m_AutoAnswer(FALSE) , m_valStcMsg(_T(“) m_hIcon = AfxGetApp()-LoadIcon(IDR_MAINFRAME); m_valEdtNum = “; m_valCallerNum = “呼入方号码: 当前无呼叫“; 当前无呼叫如下图 4.3 所示。 图 4.3 当前无呼叫 等待来电的任务是由语音服务转为呼叫座席,实现人与人的对话,并且将客户的 帐号、口令等信息传给座席计算机。需要人工座席服务时,语音服务进程执行 call lady 函数,将客户信息传递给座席进程,座席进程接收消息后按一定算法如均衡呼 叫算法)连通空闲的座席电话。uNIX 进程间的通信一般有消息队列、共享内存和管 道三种方式。接人时我们采用消息队列。消息队列是内存的一部分,任何进程都可以 定义消息队列,并在队列中写入或取出消息内容。我们规定了进程通信协议,以下是 语音接人处理进程发向座席接人进程的部分代码。 if( FAILED(m_Tapi.InitializeTapi() ) MessageBox(“致命错误:TAPI 初始化失败!“); return FALSE; 初始化按钮状态 m_btCall.EnableWindow(); m_btDisconnect.EnableWindow(); m_btPickup.EnableWindow(FALSE); SetStatusMessage(“准备就绪,等待来电.“); 等待来电如下图 4.4 所示。 图 4.4 等待来电 准备就绪,等待来电就是已经配置好了当呼入电话时而在没有人接听的情况下, 自动应答系统所能提供的应答语音,其中包括欢迎话语语音,应答紧急事件语音,主 人应答语音。还配置好了当呼入来电时而主人不在时所要留言录音的路径。即是要把 录音文件存放的位置先配置好。 部分代码如下所示。 HBITMAP hBitmap; m_stcImage.SetBitmap(hBitmap); return TRUE; 除非设置了控件的焦点,否则返回 TRUE void CtapiPhoneDlg:OnSysCommand(UINT nID, LPARAM lParam) if (nID dlgAbout.DoModal(); else CDialog:OnSysCommand(nID, lParam); 如果向对话框添加最小化按钮,则需要下面的代码来绘制该图标。对于使用文档 视图模型的 MFC 应用程序,这将由框架自动完成。 void CtapiPhoneDlg:OnPaint() if (IsIconic() CPaintDC dc(this); 用于绘制的设备上下文 SendMessage(WM_ICONERASEBKGND, reinterpret_cast(dc.GetSafeHdc(), 0); 使图标在工作矩形中居中的部分代码。 int cxIcon = GetSystemMetrics(SM_CXICON); int cyIcon = GetSystemMetrics(SM_CYICON); CRect rect; GetClientRect( int x = (rect.Width() - cxIcon + 1) 2; int y = (rect.Height() - cyIcon + 1) 2; 绘制图标部分代码。 dc.DrawIcon(x, y, m_hIcon); else CDialog:OnPaint(); 接听事件处理是在 CtapiPhoneDlg 类中实现的,在 CtapiPhoneDlg 类中首先创建一 个 CTAPI 对象 m_Tapi,然后将应用程序主窗口句柄 m_hWnd 传递给 Ctapi,这样二者 之间就建 了联系。TAPI 采用了消息机制来响应 TAPI 事件,在创建和初始化一个 TAPI 对象以后,TAPI 对象解析在计算机上的可用地址,选择呼叫对象进行消息侦听, 当接收到由对象发送过来的消息时,根据当前的消息类型分别调用对应的处理函数对 消息进行处理。 一般交互式语音自动应答系统设置的要捕获的 TAPI 消息主要有: TE_CALLNOTIFICATION(发现一个呼入的电话) 、TE_CALLSTATE(呼叫状态) 、 TE_MEDIA(有何种类型的媒体流到达) 、TE_DIGITEVENT(按键事件消息,响应用 户所按的键号) 、TE_FILETERMINAL(响应文件终端事件)等。 IVRAPI 模块利用面向对象的程序设计思想,将各种常见的语音流程控制函数封装 起来,为它们提供统一的函数接口。为业务流程编辑器,可实现业务流程图形化设计, 采用简单的目录树形菜单设计,同时兼顾流程设计需要的条件判断、转移、循环,使 业务设计随心所欲且简单快速,调试容易。其中 IVR 流程的构造采用了树形结构,更 符合现实中 IVR 系统的模型,基于控制和子流程的方式,系统结构一目了然,系统内 容可繁可简,克服了图标方式的流程混乱、内容杂乱等缺点。编辑完毕的电话会议流 程树以文件的形式存取,以便于 IVRFlowservice 模块加载并

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论