点击或拖拽改变大小

CtiSdk 类

MVB2000V5 WebCti接口类,也是CtiSdk的入口类。
继承层次
SystemObject
  Ipxchina.Sdk.CtiCtiSdk

命名空间: Ipxchina.Sdk.Cti
程序集: CtiSdk (在 CtiSdk.dll 中) 版本:1.0.0.2 (1.0.0.2)
语法
public sealed class CtiSdk : IDisposable

CtiSdk 类型公开以下成员。

构造函数
 名称说明
公共方法CtiSdk(String, String) 初始化 CtiSdk 类的新实例,使用默认的 HTTP 超时时间(60 秒)和默认的 HTTP 客户端处理程序。
公共方法CtiSdk(String, String, Int32) 初始化 CtiSdk 类的新实例,允许指定自定义的 HTTP 超时时间,使用默认的 HTTP 客户端处理程序。
公共方法CtiSdk(String, String, Int32, HttpClientHandler) 初始化 CtiSdk 类的新实例。
Top
属性
 名称说明
公共属性AgentSDK 包含 CTI 作为座席端模式操作的对象。
公共属性AsyncEvent 指定是否使用异步方式触发事件。 默认:否
公共属性ServerSDK 包含 CTI 作为服务端模式操作的对象。
公共属性WebCtiUrl Web CTI 服务的基本 URL 地址。 通常格式为:http://IP地址/webservice2/
公共属性WebKey 用于身份验证和授权的 Web Key。
Top
方法
 名称说明
公共方法CallApiT 调用 HTTP API 接口并异步返回结果。
公共方法ChangeWebUrlAndWebkey 变更接口配置参数
公共方法Dispose 释放资源
公共方法Equals
(继承自 Object。)
公共方法GetHashCode
(继承自 Object。)
公共方法GetSdkVersion 返回SDK库的版本信息。
公共方法GetServiceTask 获取轮询线程句柄。
公共方法GetType
(继承自 Object。)
公共方法StartService(CtiSdkServiceType) 采用默认间隔启动轮询任务。
坐席方式: 只监测指定的坐席状态和相关事件,通常用于C/S架构的服务端程序。
服务端方式: 监测全部坐席状态和相关事件,通常用于B/S架构的服务端程序。
公共方法StartService(CtiSdkServiceType, Int32) 采用指定间隔启动轮询任务。
公共方法StopService 停止轮询后台线程
公共方法ToString
(继承自 Object。)
Top
事件
 名称说明
公共事件DeviceBindChanged 当分机绑定关系变化时被触发。
公共事件DeviceHold 设备保持或取消保持时被触发。仅用于座席轮询模式
公共事件DeviceStateChanged 当设备状态变化时被触发。
公共事件Heartbeat 当轮询成功时被触发。
公共事件PopupScreen 当来电弹屏数据到达时被触发。
公共事件QueueAgentOffline 当来队列成员下线时被触发。
公共事件QueueAgentOnline 当来队列成员上线时被触发。
公共事件QueueAgentPause 当队列成员示忙/示闲时被触发。
Top
字段
 名称说明
公共字段静态成员DefaultPollingInterval 默认轮询间隔的常量,以毫秒为单位。
Top
备注
本项目是封装MVB2000 V5 WebCti接口的SDK,用于集成方构建呼叫中心应用,支持:
1、坐席端模式: 桌面应用所需的指定坐席状态监控和控制。
2、服务端模式: 后台服务监控和控制所有坐席并向前台分发事件的B/S应用。
3、事件触发支持同步和异步模式。

使用方法示例:
1、实例化客户端。
CtiLogger.Init(); var api = new CtiSdk("http://192.168.0.218/webservice2/", "来自MVB2000平台的webkey");

2、指定事件处理程序
api.ExtensionStateChanged += MyEventHandler;
此处可能需要绑定多个事件处理程序

3、初始化资源
3.1、初始化坐席资源(坐席端模式使用)
var queues = new List<string> { "90" };
await api.agentSDK.AgentData.Initialize("601","601", queues);

3.2、初始化呼叫中心资源(服务端模式使用)
var users = new List<string> { "601","602","603" };
var devices = new List<string> { "601","602","603" };
var queues = new List<string> { "90" ,"91"};
await api.serverSDK.ServerData.Initialize(users, devices, queues);

4、启动后台线程
4.1、坐席端模式
api.StartService(CtiSdk.ServiceType.Agent);

4.2、服务端模式
api.StartService(CtiSdk.ServiceType.Server);

5、应用逻辑
坐席端模式可调用AgentSDK中的api方法;
服务端模式可调用ServerSDK中的api方法;
未封装的WebCti方法,可以直接调用 CallApi ,根据接口返回数据结构传入继承自ResponseBase的Response
类,以下3个类通用:
ResponseCommon 支持所有无数据项返回的接口ResponseCommon
ResponseWithDynamicData 支持所有包含数据项返回的接口ResponseWithDynamicData
ResponseFileStream 支持文件下载接口ResponseFileStream
....

6、停止后台线程。
api.StopService();
参见