创建 CTI 桌面管理器

 

发布日期: 2016年11月

适用于: Dynamics 365 (online),Dynamics 365 (on-premises),Dynamics CRM 2013,Dynamics CRM 2015,Dynamics CRM 2016

CTI 桌面管理器组件是计算机电话集成 (CTI) 系统和 Unified Service Desk 或 User Interface Integration (UII) 之间的接口。 CTI 桌面管理器组件用于创建以下两个在一次调用中集中管理状态和数据的对象:

  • CallStateManagerCtiCallStateManager 类用作基类,其中包含的属性、方法和事件可用于与 CTI 连接器进行通信以发出与呼叫管理相关的命令,例如呼叫应答、挂断、保持通话和呼叫转移。 它提供要连接到的 CTI 控件的多呼叫管理功能和预连线事件,以及特定于供应商的自定义的基本实施和扩展性要点。

  • AgentStateManagerCtiAgentStateManager 用作基类,其中包含的属性、方法和事件可用于与代理状态管理(代理的可用性,例如可用、忙、离开)所关联的 CTI 连接器组件进行通信。 它提供要连接到的 CTI 控件的预连线事件,以及特定于供应商的自定义的基本实施和扩展性要点。

本主题内容

定义 CTI 桌面管理器组件

当呼叫达到时,提出搜索请求

访问呼叫数据和事件

启用或禁用呼叫操作

在 Unified Service Desk 中配置 CTI 桌面管理器托管控件

定义 CTI 桌面管理器组件

CTI 桌面管理器实现以下接口:

定义 CTI 桌面管理器组件所用的项目和用来使用“USD CTI 连接器”项目模板定义 CTI 连接器的项目相同。 有关使用此模板的详细信息,请参阅 创建 CTI 连接器

使用“USD CTI 连接器”项目模板中的 BaseCtiDesktopManagerControl.cs 文件来配置 CTI 管理器,使用 AgentStateManager.cs 和 CallStateManager.cs 文件来配置呼叫和代理状态。 这些文档提供提预连线方法和说明(采用注释的形式)来帮助您创建 CTI 桌面管理器组件。

管理 CTI 桌面管理器

当呼叫达到时,提出搜索请求

在新电话呼入时,您可以调用搜索请求在 Microsoft Dynamics 365 库中查找自动号码识别 (ANI) 号码,获取额外信息,例如名字、姓氏,等等,并创建一个会话。User Interface Integration (UII) 提供描述 CTI 系统发送给客户搜索提供程序的客户查找请求的 CtiLookupRequest 类。 此类描述 CTI 系统将提供的常见数据元素。 它还将使您能够向请求中添加自定义数据。

客户查找或搜索的实施取决于您是在 Unified Service Desk 还是在 UII 中搜索:

  • Unified Service Desk:搜索请求由全局管理器托管控件处理。

  • User Interface Integration (UII):查找请求发送到 ICustomerSearch,而且它取决于您实现搜索控件的方式。 还可以使用 AddLookupRequestItem 方法向搜索请求发送更多数据。 UII 提供了项目模板,用以创建基于 Windows 窗体或基于 WPF 的客户搜索控件(CTI 搜索请求是预连线的)。

访问呼叫数据和事件

使用 CallInfoData 类可访问有关正在 UII 桌面(例如 Unified Service Desk)中处理的呼叫的信息。 以下示例显示该类的语法:

CallInfoData calldata = GetCallInfoData(ctiCallRefCallId);

启用或禁用呼叫操作

使用 CtiCallActionOptions 类可启用或禁用呼叫操作。 以下示例代码演示如何使用该类来处理呼叫。

public override void OnCallStateChanged(CtiCoreEventArgs e)
{
   CallEventArgs CallArgs = (CallEventArgs)e.EventInfo;

   // Set the state of the call in the call list. 
   CallInfoData calldata = GetCallInfoData(CallArgs.Call.CallID.ToString(CultureInfo.CurrentUICulture));
   if (calldata != null)
      calldata.CurrentCallState = string.IsNullOrEmpty(CallArgs.State.ToString()) ? string.Empty : CallArgs.State.ToString();

   UpdateCallInfoItemEntry(calldata); // update call data.. 

   CtiCallEventArgs args = null;
   switch (CallArgs.State)
   {
      case CallClassProvider.CallState.Connected:
      args = new CtiCallEventArgs(calldata.GetCtiCallRefId, CtiCallStates.OFFHOOK, new CtiCallActionOptions());
      break;

      case CallClassProvider.CallState.Disconnected:
      args = new CtiCallEventArgs(calldata.GetCtiCallRefId, CtiCallStates.DISCONNECTED, new CtiCallActionOptions());
      break;

      case CallClassProvider.CallState.Hold:
      args = new CtiCallEventArgs(calldata.GetCtiCallRefId, CtiCallStates.ONHOLD, new CtiCallActionOptions());
      break;

      case CallClassProvider.CallState.Idle:
      args = new CtiCallEventArgs(calldata.GetCtiCallRefId, CtiCallStates.DISCONNECTED, new CtiCallActionOptions());
      break;

      case CallClassProvider.CallState.Incoming_Call:
      args = new CtiCallEventArgs(calldata.GetCtiCallRefId, CtiCallStates.PICKUPPENDING, new CtiCallActionOptions());
      break;

      case CallClassProvider.CallState.Ringing:
      args = new CtiCallEventArgs(calldata.GetCtiCallRefId, CtiCallStates.RINGING, new CtiCallActionOptions());
      break;

      default:
      System.Diagnostics.Trace.WriteLine(ResourceStrings.UNSUPPORTEDEVENT + CallArgs.State.ToString());
      break;
   }
   // Raise status change event. 
   RaiseCallStateChangeEvent(args);
}

在 Unified Service Desk 中配置 CTI 桌面管理器托管控件

在随 CTI 连接器一同创建 CTI 桌面管理器后,您必须在 Unified Service Desk 中将这些功能配置为托管控件。Unified Service Desk 提供可用于在 Unified Service Desk 中配置 CTI 桌面管理器的类型为 CTI 桌面管理器的托管控件。 CTI 连接器应配置为 UII 托管控件。详细信息:在统一服务台中配置 CTI 连接器托管控件

  1. 登录到 Microsoft Dynamics 365。

  2. 在导航栏上,选择”Microsoft Dynamics 365“ > “设置” > “统一服务台”。

  3. 在“统一服务台”页面,单击“托管控件”。

  4. 在“托管控件”页面上,单击“新建”。

  5. 在“新托管控件”页面上,指定以下值:

    字段

    客户

    按照您的选择给定名称。

    USD 组件类型

    CTI 桌面管理器

    显示组

    HiddenPanel

    程序集 URI

    这是您在上一步生成的程序集 (.dll) 文件的名称。

    程序集类型

    这是您的程序集的名称,后跟点号 (.),然后是 CTI 连接器的类名称。 例如,如果您的程序集名称为 MyCtiManager,CTI 项目的类名为 DesktopManager,则必须在此字段中键入下列值:MyCtiManager.DesktopManager。

    配置 CTI 桌面管理器托管控件

  6. 单击“保存”创建托管控件。

重要

在 Unified Service Desk 中配置 CTI 桌面管理器托管控件后,您必须配置:

  • CTI 桌面管理器托管控件的操作。详细信息:支持电话功能的操作

  • 窗口导航规则,用以相应地传递 CTI 搜索请求以创建会话并在 Unified Service Desk详细信息:CTI 搜索中显示搜索结果

另请参阅

配置通用侦听器适配器的 CTI 桌面管理器托管控件
创建 CTI 连接器
创建 CTI 控件
演练:为 CTI 事件路由使用通用侦听器适配器
UII 计算机电话服务集成 (CTI) 框架

Unified Service Desk 2.0

© 2017 Microsoft。 保留所有权利。 版权