次の方法で共有


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 デスクトップ マネージャー コンポーネントは、コールの状態とデータをまとめて管理する次の 2 つのオブジェクトを作成します。

  • CallStateManager: CtiCallStateManager クラスは、回答、切断、保留、転送などのコール管理に関連するコマンドを発行するために CTI コネクタ コンポーネントと通信するためのプロパティ、メソッド、およびイベントを含む基本クラスとして使用します。 接続先の CTI コントロール (ユーザー インターフェイス) に関して複数のコール管理機能と接続済みのイベントを提供し、ベンダー固有のカスタマイズの基本実装と機能拡張のポイントを提供します。

  • AgentStateManager: CtiAgentStateManager は、エージェントの状態管理 (使用可能、ビジー、退席中などのエージェントの空き状況) に関連する 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 デスクトップ マネージャーの管理

コールが到着したときに検索要求を発生させる

新しいコールが到着したとき、検索要求を呼び出し、自動番号識別 (ANI) の番号を Microsoft Dynamics 365 リポジトリで数値を検索し、名、姓などの追加情報を取得し、セッションを作成することができます。User Interface Integration (UII) には、CTI システムが顧客の検索プロバイダーに送信する顧客の検索要求を記述する CtiLookupRequest クラスが用意されています。 このクラスでは、CTI システムが提供する共通のデータ要素を記述します。 要求にカスタム データを追加する機能も提供します。

顧客の検索は、Unified Service Deskまたは UII のどちらで検索するかに応じて実装されます。

  • Unified Service Desk: 検索要求は、グローバル マネージャーにホストされたコントロールによって処理されます。

  • User Interface Integration (UII): 検索要求は ICustomerSearch に送信され、検索コントロールを実装する方法は自由に決定できます。AddLookupRequestItem メソッドを使用して検索要求に追加のデータを送信することもできます。 UII は、CTI 検索要求が接続済みの Windows フォームベースまたは WPF ベースの顧客検索コントロールを作成するプロジェクト テンプレートを提供します。

コール データとイベントへのアクセス

UII デスクトップ (Unified Service Deskなど) で処理中のコールに関する情報にアクセスするには、CallInfoData クラスを使用します。 次の例は、このクラスの構文を示しています。

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 のホストされたコントロールとして構成する必要があります。詳細:Unified Service Desk で CTI コネクタのホストされたコントロールを構成する

  1. Microsoft Dynamics 365 にサインインします。

  2. ナビゲーション バーで、Microsoft Dynamics 365 > [設定] > [Unified Service Desk] を選択します。

  3. [Unified Service Desk] ページで、[ホストされたコントロール] をクリックします。

  4. [ホストされたコントロール] ページで、[新規] をクリックします。

  5. [新しいホストされたコントロール] ページで、次の値を指定します。

    フィールド

    名前

    好みで名前を付けます。

    USD コンポーネントの種類

    CTI デスクトップ マネージャー

    表示グループ

    HiddenPanel

    アセンブリ URI

    これは、以前の手順で作成したアセンブリ (.dll) ファイルの名前です。

    アセンブリの種類

    これは、後ろにドット、次に CTI コネクタのクラス名が付いたアセンブリの名前です。 たとえば、アセンブリ名が MyCtiManager で、CTI プロジェクトのクラス名が DesktopManager である場合、このフィールドには MyCtiManager.DesktopManager と入力する必要があります。

    CTI デスクトップ マネージャーにホストされたコントロールの構成

  6. [保存] をクリックして、ホストされたコントロールを作成します。

重要

CTI デスクトップ マネージャーにホストされたコントロールをUnified Service Deskで構成したら、以下を構成する必要があります。

  • CTI デスクトップ マネージャーにホストされたコントロールの操作。詳細:電話サービス機能をサポートする操作

  • CTI 検索要求を適切にルーティングし、セッションを作成して Unified Service Desk で検索結果を表示するウィンドウ ナビゲーション ルール。詳細:CTI 検索

関連項目

汎用リスナー アダプターに対して CTI デスクトップ マネージャーのホストされたコントロールを構成する
CTI コネクタの作成
CTI コントロールの作成
チュートリアル: CTI イベントのルーティングに対する汎用リスナー アダプターを使用する
UII コンピューター テレフォニー統合 (CTI) フレームワーク

Unified Service Desk 2.0

© 2017 Microsoft. All rights reserved. 著作権