跨平台CTIClient控制系统设计思路及实践

    |     2015年7月12日   |   文库   |     评论已关闭   |    1242

||2005-10-09


1.基本思想:
  由于CTI中间件产品的基本功能都大同小异,但是目前提供CTI中间件产品的厂商却很多。集成商需要针对不同的用户,不同的厂商重复开发大量的功能类似的集成产品,且集成后的所谓产品复用度很低。针对一个用户、一个项目开发出来的产品很难在其它项目上直接使用,导致集成商的重复开发。

  本文尝试针对不同的厂商、不同的用户,提供相对统一的集成方法。基本思想如下:

将CTIClient控制系统划分为三个层次:


  • 控件封装层;
      控件封装层要根据不同的厂商提供的CTIClient产品进行封装,形成一组接口统一的控件产品,供系统控制层调用。下面在”控件封装层功能实现”部分会详细说明该部分的接口要求。


  • 系统控制层;
      系统控制层主要完成座席软电话系统中座席操作界面与控件之间的交互。这种交互有两种,一种是界面向控件发送方法调用请求;一种是控件向界面触发事件。下面在”系统控制层功能实现” 部分会详细说明该部分的功能实现。


  • 界面展现层;
      界面展现层主要完成最终用户界面的展现部分的处理。根据不同的用户,该部分可以有很大的不同。该部分的开发工作量只是一个页面而已,工作量非常小。
2.设计详细说明:

2.1. 控件封装层功能实现;
  该层主要根据设计好的接口在一个具体的平台上实现对CTIClient功能的控制封装。主要有以下几类功能接口:


  • 属性接口:

  • 方法接口:

  • 事件接口:
下面分别详细说明:

2.1.1. 属性接口:

属性接口可分为两类:


  • 服务器相关的属性:


    • CTI ServerIP地址;

    • CTI Server服务端口号;


  • 座席相关的属性:


    • 座席号;

    • 登录密码;

    • 登录分机号;

    • 技能组号;
  属性的赋值在控件载入时进行,即在控件所在的页面的onload事件中进行。

2.1.2. 方法接口:


  • 联接类方法


    • 联接服务器

    • 断开与服务器的联接


  • 座席状态类方法


    • 签入

    • 签出

    • 就绪

    • 未就绪

    • 工作就绪

    • 工作未就绪

    • 获取最新状态代码


  • 呼叫处理类方法


    • 摘机

    • 挂机

    • 候机

    • 复机

    • 转接

    • 单步转接

    • 会议

    • 单步会议

    • 咨询(求助)

    • 恢复

    • 拨号

    • 话后处理


  • 管理员相关方法

  • 监听

  • 强插

  • 强拆

  • 强行就绪

  • 强行签出
2.1.3. 事件接口:


  • 联接类事件


    • 与服务器联接成功事件

    • 断开与服务器联接事件


  • 座席状态类事件


    • 签入事件

    • 签出事件

    • 就绪事件

    • 未就绪事件

    • 座席状态变化事件


  • 呼叫处理类事件


    • 震铃事件

    • 呼叫建立事件

    • 通话事件

    • 候机事件

    • 复机事件

    • 挂机事件

    • 话后处理事件

    • 电话转接事件

    • 电话会议事件

    • 咨询成功事件

    • 咨询恢复成功事件

    • 拨号事件
2.2.系统控制层功能实现;
  系统控制层主要实现控件与页面之间的交互控制。主要有以下几类:

2.2.1. 向控件发送方法调用请求;
  在页面载入、页面关闭和用户点击页面上相关的按钮时,向控件发送相应的方法调用。如页面载入时,给控件的联接属性赋值并调用联接方法;点击就绪按钮时调用就绪方法等。详细说明如下:


  • 链接服务器的控制方法:
      在页面载入时调用。首先给控件相关属性赋值(CTI ServerIP地址、CTI Server服务端口号),然后调用”联接服务器”方法;

  • 签入的控制方法:
      在用户点击”签入”按钮时调用。使当前按钮失效,调用控件的”签入”方法,记录相关日志;该方法调用成功后,系统会收到”签入事件”

  • 就绪的控制方法:
      在用户点击”就绪”按钮时调用。使当前按钮失效,调用控件的”就绪”方法,记录相关日志;该方法调用成功后,系统会收到”就绪事件”

  • 未就绪的控制方法:
      在用户点击”未就绪”按钮时调用。使当前按钮失效,调用控件的”未就绪”方法,记录相关日志;该方法调用成功后,系统会收到”未就绪事件”

  • 签出的控制方法:
      在用户点击”签出”按钮时调用。使当前按钮失效,调用控件的”签出”方法,记录相关日志,关闭主窗口。

  • 应答
      座席来电时,系统会收到了”震铃”事件,在震铃事件的控制逻辑中会点亮”应答” 按钮,在用户点击”应答”按钮时调用本处理过程。使当前按钮失效,调用控件的”应答”方法,记录相关日志;该方法调用成功后,系统会收到”通话事件”。

  • 挂机
      座席应答成功后,系统会收到了”通话事件”,在通话事件的控制逻辑中会点亮”挂机” 按钮,在用户点击”挂机”按钮时调用本处理过程。使当前按钮失效,调用控件的”挂机”方法,记录相关日志;该方法调用成功后,系统会收到”座席状态变化事件”。

  • 候机
      座席应答成功后,系统会收到了”通话事件”,在通话事件的控制逻辑中会点亮”候机” 按钮,在用户点击”候机”按钮时调用本处理过程。使当前按钮失效,调用控件的”候机”方法,记录相关日志;该方法调用成功后,系统会收到”候机事件”。

  • 复机
      座席候机成功后,系统会收到了”候机事件”,在候机事件的控制逻辑中会点亮”复机” 按钮,在用户点击”复机”按钮时调用本处理过程。使当前按钮失效,调用控件的”复机”方法,记录相关日志;该方法调用成功后,系统会收到”座席状态变化事件”。

  • 转接
      座席应答成功后,系统会收到了”通话事件”,在通话事件的控制逻辑中会点亮”转接” 按钮,在用户点击”转接”按钮时,系统打开转接对话框,输入目标号码后,确定,调用本处理过程。使当前按钮失效,调用控件的”转接”方法,记录相关日志;该方法调用成功后,系统会收到”电话转接事件”。

  • 会议
      座席应答成功或外拨成功后,系统会收到了”通话事件”,在通话事件的控制逻辑中会点亮”会议” 按钮,在用户点击”会议”按钮时,系统打开会议对话框,输入目标号码后,确定,调用本处理过程。使当前按钮失效,调用控件的”会议”方法,记录相关日志;该方法调用成功后,系统会收到”电话会议事件”。

  • 外拨
      座席处于就绪状态或签入未就绪状态下或候机状态下,可以进行外拨,在用户点击”外拨”按钮时,系统打开外拨对话框,输入目标号码后,确定,调用本处理过程。使当前按钮失效,调用控件的”拨号”方法,记录相关日志;该方法调用成功后,系统会收到”通话事件”。

  • 内线
      座席处于就绪状态或签入未就绪状态下或候机状态下,可以进行内线,在用户点击”内线”按钮时,系统打开内线对话框,选择目标座席后,确定,调用本处理过程。使当前按钮失效,调用控件的”拨号”方法,记录相关日志;该方法调用成功后,系统会收到”通话事件”。

  • 话后处理
      座席处于通话状态时,点亮”话后处理”按钮,在用户点击”话后处理”按钮时,调用本处理过程。使当前按钮失效,调用控件的”话后处理”方法,记录相关日志;该方法调用成功后,系统在电话终止时收到”话后处理事件”。

  • 临时签退
      座席处于未就绪状态时,点亮”临时签退”按钮,在用户点击”临时签退”按钮时,调用本处理过程。使当前按钮失效,调用控件的”签出”方法,记录相关日志;该方法调用成功后,系统会收到”签出事件”。
2.2.2. 控件的事件处理;

  系统联接情况发生变化、座席状态发生变化、呼叫状态或信息发生变化时,CTIServer会通过控件触发相关的事件。该部分完成对各个事件的处理方法的调用。


  • 与服务器联接成功事件
      在该事件中,点亮”签入”按钮。此时座席只能做签入操作。

  • 断开与服务器联接事件
      在该事件中,使所有按钮失效。此时座席不能做任何操作。

  • 签入事件
      在该事件中,点亮”就绪”、”签出”、”临时签退”、”外拨”、”内线”按钮。此时座席可以做相关操作。


  • 签出事件
      在该事件中,使所有按钮失效,可以考虑关闭主窗口。

  • 就绪事件
      在该事件中,点亮”未就绪”、”外拨”、”内线”按钮。此时座席可以做相关操作。

  • 未就绪事件
      在该事件中,点亮”就绪”、”签出”、”临时签退”、”外拨”、”内线”按钮。此时座席可以做相关操作。

  • 座席状态变化事件
      在该事件中,根据座席最新的状态码,点亮相关的状态按钮。

  • 震铃事件
      座席来电时,触发该事件。在该事件中,首先使所有按钮失效,点亮”应答” 按钮,此时座席只能做应答操作。

  • 呼叫建立事件
      呼叫到达时或外拨开始时触发该事件。在该事件中,可以做一些呼叫开始的信息处理。

  • 通话事件
      在来电应答或外拨接通时触发该事件。在该事件中,点亮”挂机”、”转接”、”会议”、”候机”、”求助”等按钮。此时座席可以做相关操作。

  • 候机事件
      在座席候机成功时触发该事件。在该事件中,点亮”复机”、”外拨”、”内线”等按钮。此时座席可以做相关操作。

  • 复机事件
      在座席复机成功时触发该事件。在该事件中,点亮与通话事件相同的按钮。此时座席可以做相关操作。

  • 挂机事件
      在客户挂机或座席挂机成功时触发该事件。在该事件中,处理呼叫结束相关的事情,并回到”就绪”或”未就绪”状态。

  • 话后处理事件
      在座席与客户通话期间,座席点击了”话后处理”按钮,该通话结束后,系统会收到”话后处理”事件,在该事件中,首先使所有按钮失效,同时点亮”就绪”、”未就绪”按钮,座席可以执行相关操作,结束话后处理状态,也可以等待话后处理时间到达后,自动结束话后处理状态。

  • 电话转接事件
      在座席成功发起转接操作或接收到转接到达电话时,触发该事件,系统可以根据两种情况分别进行处理。

  • 电话会议事件
      在座席成功发起会议操作或接收到会议到达电话时,触发该事件,系统可以根据两种情况分别进行处理。

  • 咨询成功事件
      在座席成功发起求助操作时,触发该事件。

  • 咨询恢复成功事件
      座席在求助状态下,成功进行”恢复”操作时,触发该事件。

  • 拨号事件
      座席在发起外拨或内线电话操作时,触发该事件。
2.3. 界面展现层功能实现;

  界面展现层主要实现界面页面的显示并负责完成对控制层的调用。该部分的界面如下图所示:

跨平台CTIClient控制系统设计思路及实践

该部分的开发主要有以下内容:


  • 页面及风格开发;
      这是不同的用户个性化要求最多的地方。针对不同的最终用户可以开发不同的页面。

  • 对控制层的调用;
      对控制层的调用主要在页面载入、页面关闭和用户点击页面上的按钮时发生。该部分只要在相关页面事件中对控制层提供的不同的方法进行调用即可,与最终用户的界面需求和不同厂商提供的产品没有关系。
3.优点介绍
  按照本设计思想,针对不同的厂商提供的不同的CTI产品,只需要提供基本的控件层的封装即可(控件开发);针对不同的用户,只需要提供不同的展现层的实现即可(页面开发)。对系统中最复杂的控制层功能实现成功实现了剥离,从而实现了功能的复用,并能够灵活的满足不同用户的要求。

  按照本设计思想进行”CTIClient控制系统”的开发,可以极大的提高开发效率,非常容易的将系统应用到不同的厂商提供的产品平台上,非常容易的满足不同客户对展现层不同风格的个性需求;可以极大的降低系统后期维护的成本(页面风格的修改,不会影响到控件功能的实现和控制层脚本的调用),从而为公司节省可贵的人力资源。

  按照本设计思路设计开发的软电话产品已经成功的在北京农行上线使用。

责编:admin

转载请注明来源:跨平台CTIClient控制系统设计思路及实践

相关文章

  • 没有相关文章!

噢!评论已关闭。