Partage via


Créer un CTI Desktop Manager dans Unified Service Desk

Le composant Gestionnaire de bureau CTI est l’interface entre le système de couplage de la téléphonie et de l’informatique (CTI) et Unified Service Desk ou User Interface Integration (UII). Le composant CTI Desktop Manager crée les deux objets suivants qui gèrent collectivement dans l’état et les données d’un appel :

  • CallStateManager : la classe CtiCallStateManager est utilisée comme classe de base contenant des propriétés, des méthodes, et des événements pour communiquer avec le composant du Connecteur CTI pour publier des commandes liées à la gestion des appels, comme répondre à un appel, raccrocher, se bloquent, mettre un appel en attente et transférer un appel. Elle fournit des fonctionnalités de gestion de plusieurs appels et des événements précablés pour les contrôles de CTI (interface utilisateur) pour se connecter et baser la mise en œuvre et l’extensibilité de points pour des personnalisations spécifiques au fournisseur.

  • AgentStateManager : la classe CtiAgentStateManager est utilisée comme classe de base contenant des propriétés, des méthodes, et des événements pour communiquer avec le composant Connecteur CTI lié à la gestion de l’état des agents (disponibilité de l’agent comme disponible, occupé, et absent). Elle fournit des fonctionnalités précablées pour les contrôles de CTI (interface utilisateur) pour se connecter et baser la mise en œuvre et l’extensibilité de points pour des personnalisations spécifiques au fournisseur.

Définir un composant CTI Desktop Manager

Le CTI Desktop Manager implémente les interfaces suivantes :

  • ICtiAgentStateManager

  • ICtiCallStateManager

    Vous définissez un composant CTI Desktop Manager dans le même projet que celui que vous utilisez pour définir votre connecteur CTI en utilisant le modèle du projet Connecteur CTI USD. Pour plus d’informations sur l’utilisation de ce modèle, voir Créer un connecteur CTI.

    Utilisez le fichier BaseCtiDesktopManagerControl.cs dans le modèle de projet Connecteur CTI USD pour configurer votre CTI Desktop Manager et les fichiers AgentStateManager.cs et CallStateManager.cs pour configurer l’état des appels et des agents. Ces fichiers fournissent des méthodes et des instructions précablées (dans le formulaire de commentaires) pour vous aider à créer un composant CTI Desktop Manager.

    Gérer le gestionnaire de bureau CTI.

Faire une demande de recherche quand un appel arrive

Lors d’un nouvel appel, vous pouvez appeler une requête de recherche pour trouver le numéro automatique d’identification (ANI) dans un référentiel Microsoft Dataverse, obtenir des informations supplémentaires (comme le prénom, le nom, etc.) et créer une session. User Interface Integration (UII) fournit la classe CtiLookupRequest qui décrit une requête de recherche client que le système CTI envoie à un fournisseur de recherche client. Cette classe décrit les éléments de données communs que le système CTI fournira. Il propose également la possibilité d’ajouter des données personnalisés à la demande.

La recherche client est mise en œuvre selon que vous faites la cherche dans Unified Service Desk ou UII :

  • Unified Service Desk : La requête de recherche est effectuée par le contrôle hébergé Gestionnaire global.

  • User Interface Integration (UII) : La demande de recherche est envoyée à ICustomerSearch, c’est vous qui décidez comment vous souhaitez mettre en œuvre le contrôle de recherche. Vous pouvez également envoyer des données supplémentaires à la demande de recherche utilisant la méthode String). L’UII fournit des modèles de projet pour créer desun contrôle de recherche basé sur un formulaire Windows ou basé sur WPF avec la demande de recherche de précablée CTI.

Accéder aux données et événements d’appel

Utilisez la classe CallInfoData pour accéder aux informations sur un appel en cours dans le bureau UII (comme Unified Service Desk). L’exemple suivant présente la syntaxe de cette classe :

CallInfoData calldata = GetCallInfoData(ctiCallRefCallId);  

Activer ou désactiver les actions d’appel

Utilisez la classe CtiCallActionOptions pour désactiver ou activer des actions d’appel. L’exemple de code suivant présente comment utiliser cette classe pour traiter un appel.

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);  
}  
  

Configurer contrôle hébergé CTI Desktop Manager dans Unified Service Desk

Après avoir créé le gestionnaire de bureau CTI avec votre connecteur CTI, vous devez les configurer sous forme de contrôles hébergés dans Unified Service Desk. Unified Service Desk fournit un contrôle hébergé de type Gestionnaire de bureau CTI qui peut être utilisé pour configurer votre CTI Desktop Manager dans Unified Service Desk. Le connecteur CTI doit être configuré comme un contrôle hébergé UII. En savoir plus : Configurer un contrôle hébergé pour le connecteur CTI dans Unified Service Desk

  1. Connectez-vous à l’administrateur de Unified Service Desk.

  2. Sélectionnez Contrôles hébergés sous Paramètres de base.

  3. Sélectionnez + Nouveau.

  4. Dans la page Nouveau contrôle hébergé, spécifiez les valeurs suivantes :

    Champ valeur
    Nom Communiquez un nom de votre choix.
    Type de composant USD Gestionnaire de bureau CTI
    Afficher le groupe HiddenPanel
  5. Sélectionnez l’onglet Hébergementet spécifiez les valeurs suivantes

    Champ Valeur
    URI d’assembly Il s’agit du nom du fichier de l’assembly (.dll) que vous avez créé dans l’étape précédente.
    Type d’assembly Il s’agit du nom de l’assembly suivi d’un point, puis du nom de classe de votre connecteur CTI. Par exemple, si le nom de votre assembly est MyCtiManager, et le nom de la classe de votre projet CTI est DesktopManager, vous devez taper ce qui suit dans ce champ : MyCtiManager.DesktopManager.
  6. Sélectionnez Enregistrer pour créer le contrôle hébergé.

Important

Après avoir configuré le contrôle hébergé CTI Desktop Manager dans Unified Service Desk, vous devez configurer :

Voir aussi

Configurer le contrôle hébergé Gestionnaire de bureau CTI pour l’adaptateur d’écouteur générique
Créer un connecteur CTI
Créer un contrôle CTI
Guide pas-à-pas : Utiliser le gestionnaire de bureau CTI pour créer un adaptateur CTI
Infrastructure de couplage de la téléphonie et de l’informatique (CTI) UII