板卡呼叫中心详细设计说明书_第1页
板卡呼叫中心详细设计说明书_第2页
板卡呼叫中心详细设计说明书_第3页
板卡呼叫中心详细设计说明书_第4页
板卡呼叫中心详细设计说明书_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

1、 CMMI技术开发体系文件编 号DR-6521.2版 本B02名 称详细设计说明书密 级1页 数23 / 23板卡呼叫中心详细设计说明书文档信息项目名: 板卡呼叫中心项目编号: 标题: 板卡呼叫中心详细设计说明书作者: 姜盛创建日期: 2011-5-19上次更新日期: 2011-5-19版本: V0.4部门名称: 开发中心 融合通信应用分部文档状态文档状态草稿 正式文档评审人员陈晓明评审时间2011-05-22修订文档历史记录日期版本说明作者2011-5-19V0.1详设文档起草姜盛2011-5-21V0.2讨论、评审姜盛、陈晓明2011-5-22V0.3修改相关部分姜盛2011-5-22V0

2、.4文字语句,日志记录相关陈晓明目 录1.系统41.1概述42.功能点详述52.1呼入功能点名称:LE00152.1.1功能描述52.1.2界面设计和说明52.1.3操作流程52.1.4相关类、方法说明82.1.5出错处理92.1.6相关算法102.2呼出功能点名称:LE002102.2.1功能描述102.2.2界面设计和说明102.2.3操作流程102.2.4相关类、方法说明132.2.5出错处理142.2.6相关算法152.3IVR功能点名称:LE003152.3.1功能描述152.3.2界面设计和说明152.3.3操作流程162.3.4相关类、方法说明182.3.5出错处理192.3.6

3、相关算法192.4日志记录功能点名称:LE004202.4.1功能描述202.4.2界面设计和说明202.4.3操作流程202.4.4相关类、方法说明202.4.5出错处理212.4.6相关算法213.附录211. 系统1.1 概述目前,在燃气集团项目中,目前配置信息如下:配置说明东进板卡采用的是D161a系列的,最大支持16路的模拟通道线路;目前燃气使用的是2路外线1路内线,今后可能扩展到4路外线;CTI中间件采用的是多线程的机制,分为一个主进程、通道监听线程、业务线程,存在线程之间的相互调用关系,具体见上图说明;2. 功能点详述2.1 呼入功能点名称:LE0012.1.1 功能描述实现来话

4、的呼入,对来话进行处理(收来电号、抛来电事件等),转相应的IVR(语音导航、按键)、队列(等待、转接座席)进行处理,从而建立双方的通话,最后挂机结束。2.1.2 界面设计和说明暂无2.1.3 操作流程1) 状态图红色线条表示:这些状态表示出现外线挂机后,会恢复到初始的空闲状态;蓝色表示:表示在双方连接的状态下,如果是外线先挂,则内线由外线忙音信息一起复位;如果是内线先挂,则外线有内线主动调用挂机;存在一起挂,则自行判断后处理;当用户需要执行一次呼入操作的时候,其状态流程如下:1 一条(1空闲)的外线,接收到振铃信号,外线转到(2等待应答)l 外线振铃信号检测;l 来电收号;l 状态切换到等待应

5、答,向上层引用抛出事件,信息包括外线通道号和来电号码,除非外线挂机,否则一直等待;2 上层应用根据业务需要对该外线选择放音,外线状态变为(3等待放音)l 通过代码走查发现在每次放音的时候,没有结束放音的操作,只在外线挂机的时候才结束放音;l 东进提供的Demo程序是每次放音,都有结束放音的,本函数对指定通道停止文件放音。3 对该外线放音,外线状态变为(4放音)4 外线用户根据语音提示按键进入功能流程5 上层应用收到正确按键调用内线应答函数,应答函数找一条空闲的内线(5空闲)6 空闲内线被选择,进入(6待使用)7 对内线坐席振铃,进入(7待摘机)8 内线摘机,连接内线和外线通道,内线和外线都变成

6、(8连接)9 外线先挂机,外线成(10空闲),内线成为(1空闲)10 内线先挂机,内线(1空闲),外线(9待挂机)11 外线挂机,外线成(10空闲)2) 时序图详细用例描述:(1) A1A3:用例描述1. 首先初始化板卡(加载驱动,打开板卡资源,设置忙音参数,检测可用的通道号并初始化);2. 进行信号音的维持,并开始新的信号检测;3. 当外线有来电,则会触发东进的RingDetect()函数,将通道状态改为【ChannelWaitAnswer】,并进行来电号码的收号操作,收号完成后,会抛给上层【来电信号事件】;例外情况1、 初始化板卡失败,系统刚启动时才会发生;2、 在听见“嘟”的一声后就挂机

7、,此时未抛来电事件。再次呼入后会一直听见回铃音,无法接入到板卡。(2) A4:用例描述1. CTI服务将接收到【来电信号事件】,通知给平台软件;2. 平台软件解析【来电信号事件】中的来电号码、外线通道号后,调用IVR组件进行操作;例外情况1、 未收到来电信号,来电信号为空;2、 来电信息不正常、不规则;(3) A5A26:用例描述具体参见2.3章节的IVR功能说明2.1.4 相关类、方法说明(1) CTI中间件类/函数描述l CDrisionCTICtrl类:该类用于OCX上层接口实现。如一个软呼出的调用,其上层会调用该类提供的接口函数:AnswerCall(LPCTSTR trunkLine

8、, LPCTSTR telephone, LPCTSTR userLine),上层会提供三个参数,呼出内线通道号,电话号码,内线通道号。调用该函数以后,就可以实现应答外线来电功能。l CChLineMediator类:该类用于上层接口与底层通道类的中间者,防止上层接口直接调用底层通道函数及东进API。如上面如果调用AnswerCall(),则会先调用CChLineMediator中的AnswerCall()函数,由这个函数再去调用通道类中的AnswerCall()。l DJBKChannelLine类:该类主要用于具体的业务功能的实现,包括呼入 呼出 放音 静音 会议等。提供各种功能函数供 C

9、ChLineMediator调用。如其中的AnswerCall()函数就是其板卡调用东进API具体实现应答来电功能。l CChannelLineFactory 类:该类主要是用于初始化板卡的硬件及软件运行环境,创建板卡运行的工厂模式。其中CDrisionCTICtrl 中的InitSystem()就是调用的该类中的Init()函数。(2) 上层应用类/函数描述l CallInTel类来电对象实体类:包括来电时间、号码、外线通道、计时器运作、是否接通等状态信息。l ServerProxy类 :客户端与服务通信所使用的代理类,用来访问CTI端暴露出的语音播放等方法。l 事件:放音结束事件publi

10、c void OnPlayVocEnd(string Oneline, string Message)Oneline(外线通道号)Message(备用)收键事件public void OnPushKey(string number, string key, string port, string message)number(外线通道号)key(收键值)port(备用)message(备用)来电进入事件public void OnOutCallCome(string strComeNumber, string strTrunkNo, string calleeNo, string messag

11、e)strComeNumber(来电号码)strTrunkNo(外线通道号)calleeNo(备用)message(备用)获得指定流程呼入电话private CallInTel FindOutTelByLevel(int level)level (流程编号)2.1.5 出错处理(1) 日志记录输出l 日志格式【yyyy-mm-dd hh24:mi:ss】【信息/错误】【所在.cpp文件】【所在.cpp文件行】【通道号/信号/状态】【说明】l 日志输出例子2011-04-26 21:31:04信息.DJBKChannelLine.cpp618->通道<2>信息:板卡>&g

12、t;>外线来电:04262130678711292011-04-26 21:31:04信息.DJBKChannelLine.cpp17352信号:14;状态:17(2) 异常机制l 每个函数添加trycatch的机制捕捉2.1.6 相关算法暂无2.2 呼出功能点名称:LE0022.2.1 功能描述实现电话(电信、移动等)的呼出,通过输入的呼出号码,采取软电话或硬播号的方式进行,从而建立双方的通话,最后挂机结束;2.2.2 界面设计和说明暂无2.2.3 操作流程1) 状态图红色线条表示:这些状态表示出现内外线挂机后,会恢复到初始的空闲状态;蓝色表示:表示在双方连接的状态下,如果是外线先挂,

13、则内线由外线忙音信息一起复位;如果是内线先挂,则外线有内线主动调用挂机;存在一起挂,则自行判断后处理;当用户需要执行一次呼出操作的时候,其状态流程如下:1 开始,找到一部欲呼出的坐席l 根据指定的内线端口号,进行查找;2 找到与该坐席对应的内线,此时坐席未被使用,内线状态为(1空闲)3 接着上层应用调用呼出函数,选择内线内线状态转为(2选中)4 内线在选中后,对内线振铃内线转为(3待摘机)l 在此配置了等待摘机的超时时间(45秒),如果达到了超时时间,则内线停止振铃并调用复位,同时外线一起复位;5 内线摘机内线转为(4呼叫)l 当内线摘机后,开始往外送号码,实现呼出的操作;6 再调用软呼出函数

14、,先找一条空闲的外线(5空闲)l 需要根据配置文件中外线端口的配置实现随机查找,直到找到空闲的外线,否则呼出失败;7 软呼出函数使用这条外线(6选中)8 拨外线号码,对外线振铃,外线状态变为(7待摘机)9 被叫用户摘机,连接内线和外线,这时内线和外线都成为(8连接)10 内线外线连接后,内线外线成为(9待挂机)11 内线挂机,内线恢复到(1空闲)12 外线挂机,外线恢复到(10空闲)2) 时序图详细用例描述:(1) A1A6(硬拨号):用例描述1 通过座席摘机后,按键呼出号码(电信、移动):l 如果按键完号码后,没有按#号结束,则超时呼出HardDailCallTimeOut=5000,硬拨号

15、呼出间隔,自动呼出的时间间隔;l 如果按键完号码后,如果按#号结束,则立即呼出;2 OCX调用东进API函数,并将呼出号码进行送出:l 通过调用东进API的Sig_CheckDial判断拨号有没有成功,当状态为【S_CONNECT】,说明外线呼出成功,则调用东进API的SetLink()函数建立内线和外线连接,此时说明建立通话成功;l 通过调用东进API的Sig_CheckDial判断拨号有没有成功,当状态为【S_BUSY】、【S_NOSIGNAL】、【S_NOBODY】、【S_NODIALTONE】,则说明呼出失败;例外情况1、 拨号号码长度不做限制;2、 拨不存在的号码(例如:123、45

16、6、9998989);3、 拨号后,等待数秒后挂机;4、 拨号后,等待对方彩铃提示后挂机;5、 拨号后,等待数秒后再按键;(2) A7A14(软拨号):用例描述1. 在座席软件的软拨号盘上输入呼出的号码(电信、移动);2. 将信息传递给平台软件,平台软件通过CTI调用OCX的呼出方法,方法名MakeCallOut()函数,参数包括:内线通道号、呼出号码;3. OCX对MakeCallOut()函数的参数中的内线通道号,判断该内线状态:l 通道号是否为可用(即:Free状态);如果为可用状态,则让该内线振铃,此时坐席软件处于【正在呼出】状态,内线通道处于【待摘机】状态;l 如果内线没有摘机则自动

17、复位,则默认超时UserRingTimeOut=90000ms,即:1分30秒,该参数可以自行修改;4. 当座席摘机后,OCX将该内线状态改成【已摘机】,并将呼出号码进行送出:l 通过调用东进API的Sig_CheckDial判断拨号有没有成功,当状态为【S_CONNECT】,说明外线呼出成功,则调用东进API的SetLink()函数建立内线和外线连接,此时说明建立通话成功;l 通过调用东进API的Sig_CheckDial判断拨号有没有成功,当状态为【S_BUSY】、【S_NOSIGNAL】、【S_NOBODY】、【S_NODIALTONE】,则说明呼出失败;例外情况1、 拨号号码长度不做限

18、制;2、 拨不存在的号码(例如:123、456、9998989);3、 拨号后,等待数秒后挂机;4、 拨号后,等待对方彩铃提示后挂机;5、 拨号后,等待数秒后再按键;2.2.4 相关类、方法说明(1) CTI中间件类/函数描述l CDrisionCTICtrl类:该类用于OCX上层接口实现。如一个软呼出的调用,其上层会调用该类提供的接口函数:MakeCallOut(LPCTSTR userLine, LPCTSTR calleeCode),上层会提供两个参数,呼出内线通道号,被叫号码。调用该函数以后,就可以实现软呼出功能。l CChLineMediator类:该类用于上层接口与底层通道类的中间

19、者,防止上层接口直接调用底层通道函数及东进API。如上面如果调用MakeCallOut(),则会先调用CChLineMediator中的CallOut()函数,由这个函数再去调用通道类中的CallOut()。l DJBKChannelLine类:该类主要用于具体的业务功能的实现,包括呼入 呼出 放音 静音 会议等。提供各种功能函数供 CChLineMediator调用。如其中的CallOut()函数就是其板卡调用东进API具体实现呼出功能。l CChannelLineFactory 类:该类主要是用于初始化板卡的硬件及软件运行环境,创建板卡运行的工厂模式。其中CDrisionCTICtrl 中

20、的InitSystem()就是调用的该类中的Init()函数。(2) 上层应用类/函数描述l ClientInfo类:客户端信息类 ,记录坐席登录事件、状态、呼叫号码等信息。l ServerProxy类 :客户端与服务通信所使用的代理类,用来访问CTI端暴露出的语音播放等方法。拨打外线方法public void CallOut(string innerNo, string CallerNo)innerNo(内线号)CallerNo(被叫号码)呼出成功事件public void OnCallOutSuccess(string strComeNumber, string strInnerNo, s

21、tring message)strComeNumber(被叫号码)strInnerNo(内线号)message(备用)2.2.5 出错处理(1) 日志记录输出l 日志格式【yyyy-mm-dd hh24:mi:ss】【信息/错误】【所在.cpp文件】【所在.cpp文件行】【通道号/信号/状态】【说明】l 日志输出例子2011-04-26 21:31:04信息.DJBKChannelLine.cpp618->通道<2>信息:板卡>>>外线来电:04262130678711292011-04-26 21:31:04信息.DJBKChannelLine.cpp17

22、352信号:14;状态:17(2) 异常机制l 每个函数添加trycatch的机制捕捉2.2.6 相关算法暂无2.3 IVR功能点名称:LE0032.3.1 功能描述实现电话语音菜单的导航、队列等待、语音按键和转接座席;2.3.2 界面设计和说明暂无2.3.3 操作流程详细用例描述:总体说明1、 所有放语音循环为3次;2、 前导语中有按键,则进入下一个流程;3、 按键收号中,如遇错误按键则重新播放,累计播放3次;4、 因用户连续3次按键操作失误,系统给出提示音后挂机;5、 语音内容:l 前导语:由用户自定义;l 欢迎语、菜单语:由用户自定义;l 按键错误提示音:您的按键有误,请重新输入,结束请

23、挂机;l 播放结束语音:谢谢您再次来电,再见;l 队列等待语音:座席正忙,继续等待请按1,结束请挂机;l 转接中语音:正在为您转接话务员,请稍后;l 队列排队等待音:钢琴音(15秒);用例描述IVR流程说明:1. 根据配置文件判断是否有前导语,如果存在前导语文件,则进行播放,只播放一遍,语音播放的方法为:PlayVocFile,参数包括:外线通道号、语音文件;2. 前导语播放完成后,进行欢迎语播放:l 并启用StartTimerOutCallCame计时器线程,用于实现收键超时计时器,每隔15S播放一次欢迎语,重复播放3遍,播放结束语音并进行复位的操作;l 当在播放欢迎语的途中,按键操作,则底

24、层OCX返回按键号,上层判断按键号是否正确,按键错误播放【按键错误的语音】,达到3次错误按键后挂机;l 当在播放欢迎语的途中,按键操作,则底层OCX返回按键号,上层判断按键号是否正确,按键正确,则进入ACD队列等待转接坐席;3. 进入队列排队操作:l 并启用StartTimerWaitConnectCame计时器线程,用于队列的计时;l 如果存在空闲的坐席,按照进入队列的时间的先后顺序(先进先出)进行坐席分配;l 若无空闲的坐席,则每个队列中的来话最大等待2轮后超时复位,提示坐席忙后挂机,每个队列等待的最大时间为45S;4. 坐席空闲:l 当坐席空闲时,IVR将ACD中先进入的来话分给坐席后,

25、启用StartTimer计时器线程,振铃坐席,等待坐席摘机,超时时间为45S,此时坐席的状态为【来电呼入/转接中】;l 当在StartTimer计时器线程的45S内摘机,则建立通话;5. 建立通话:此时坐席的状态为【来电通话中】,直到其中一方挂机后结束;例外情况1、 播放语音文件有误,不存在,格式不正确;2、 语音文件音量过高,对板卡的忙音检测有影响;3、 底层OCX返回的不规则的来电号码;2.3.4 相关类、方法说明(1) CTI中间件类/函数描述l CDrisionCTICtrl类:该类用于OCX上层接口实现。如一个软呼出的调用,其上层会调用该类提供的接口函数:AnswerCall(LPC

26、TSTR trunkLine, LPCTSTR telephone, LPCTSTR userLine),上层会提供三个参数,呼出内线通道号,电话号码,内线通道号。调用该函数以后,就可以实现应答外线来电功能。l CChLineMediator类:该类用于上层接口与底层通道类的中间者,防止上层接口直接调用底层通道函数及东进API。如上面如果调用AnswerCall(),则会先调用CChLineMediator中的AnswerCall()函数,由这个函数再去调用通道类中的AnswerCall()。l DJBKChannelLine类:该类主要用于具体的业务功能的实现,包括呼入 呼出 放音 静音 会

27、议等。提供各种功能函数供 CChLineMediator调用。如其中的AnswerCall()函数就是其板卡调用东进API具体实现应答来电功能。l CChannelLineFactory 类:该类主要是用于初始化板卡的硬件及软件运行环境,创建板卡运行的工厂模式。其中CDrisionCTICtrl 中的InitSystem()就是调用的该类中的Init()函数。(2) 上层应用类/函数描述l CallInTel类来电对象实体类:包括来电时间、号码、外线通道、计时器运作、是否接通等状态信息。l ServerProxy类 :客户端与服务通信所使用的代理类,用来访问CTI端暴露出的语音播放等方法。l

28、事件:放音结束事件public void OnPlayVocEnd(string Oneline, string Message)Oneline(外线通道号)Message(备用)收键事件public void OnPushKey(string number, string key, string port, string message)number(外线通道号)key(收键值)port(备用)message(备用)来电进入事件public void OnOutCallCome(string strComeNumber, string strTrunkNo, string calleeNo,

29、 string message)strComeNumber(来电号码)strTrunkNo(外线通道号)calleeNo(备用)message(备用)获得指定流程呼入电话private CallInTel FindOutTelByLevel(int level)level (流程编号)2.3.5 出错处理(1) 日志记录输出l 日志格式【yyyy-mm-dd hh24:mi:ss】【信息/错误】【说明】(2) 异常机制l 每个函数添加trycatch的机制捕捉2.3.6 相关算法暂无2.4 日志记录功能点名称:LE0042.4.1 功能描述实现对上述三个功能的日志记录,具体包括:(1) 呼入功能Ø 接收来电号码;Ø 通道状态的切换(空闲、等待应答、等待放音、开始放音、结束放音、待摘机、接通、挂机等)Ø 抛出来电事件、开始放音事件、结束放音事件、开始通话事件、结束通话事件等;Ø 内部函数调用;(2) 呼出功能Ø 呼出的号码;Ø 通道状态的切换(空闲、待摘机、呼叫、选中、通话、挂机等)Ø 抛出开始呼叫、结束呼叫、开始应答、结束应答、开始通话、结束通话等;Ø 内部函数调用;(3) IVR功能Ø 每个来话、每个菜单的放音次数、语音和按键等;Ø 每个来话进入队列的开始时间、结束事

温馨提示

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

评论

0/150

提交评论