Crear un Administrador del escritorio de CTI en Unified Service Desk
El componente del administrador de escritorio de CTI es la interfaz entre el sistema de integración de telefonía informática (CTI) y Unified Service Desk o User Interface Integration (UII). El componente Administrador de escritorio de CTI crea los dos objetos siguientes que administran colectivamente el estado y los datos en una llamada:
CallStateManager
: La clase CtiCallStateManager se usa como clase base que contiene propiedades, métodos, y eventos para comunicarse con el componente Conector de CTI para emitir comandos relacionados con la administración de llamadas como contestar llamadas, colgar, retener llamadas y transferir llamadas. Ofrece características de administración de varias llamadas y eventos preconectados para que se conecten los Controles de CTI (interfaz de usuario), y puntos de implementación y extensibilidad base para personalizaciones específicas del proveedor.AgentStateManager
: El CtiAgentStateManager se usa como clase base que contiene propiedades, métodos, y eventos para comunicarse con componente Conector de CTI relacionado con la administración de estados del agente (disponibilidad del agente como disponible, ocupado y ausente). Ofrece eventos preconectados para que se conecten los Controles de CTI (interfaz de usuario), y puntos de implementación y extensibilidad base para personalizaciones específicas del proveedor.
Definir un componente Administrador de escritorio de CTI
El Administrador de escritorio de CTI implementa las interfaces siguientes:
-
Defina un componente Administrador de escritorio de CTI en el mismo proyecto que usa para definir el conector de CTI utilizando la plantilla del proyecto Conector USD CTI. Para obtener más información acerca del uso de esta plantilla, vea Crear un conector CTI.
Use el archivo BaseCtiDesktopManagerControl.cs de la plantilla de proyecto Conector USD CTI para configurar el Administrador de escritorio de CTI, y los archivos AgentStateManager.cs y CallStateManager.cs para configurar los estados de llamadas y agentes. Estos archivos proporcionan métodos e instrucciones preconectados (en forma de comentarios) para ayudarle a crear un componente Administrador de escritorio de CTI.
Realice una solicitud de búsqueda cuando llegue una llamada
Cuando llega una nueva llamada, puede invocar una solicitud de búsqueda para consultar el número de identificación automática de número (ANI) en un repositorio de Microsoft Dataverse, obtener información adicional, como nombre, apellidos, etc., y crear una sesión. User Interface Integration (UII) proporciona la clase CtiLookupRequest que describe una solicitud de búsqueda de cliente que el sistema CTI envía a un proveedor de búsqueda de clientes. Esta clase describe los elementos de datos comunes que el sistema CTI proporcionará. También proporciona la capacidad de agregar datos personalizados a la solicitud.
La consulta o búsqueda de clientes se implementa en función de si busca en Unified Service Desk o en UII:
Unified Service Desk: La solicitud de búsqueda es administrada por el control hospedado Administrador global.
User Interface Integration (UII): La solicitud de búsqueda se envía a ICustomerSearch, y usted decide cómo desea implementar el control de búsqueda. También puede enviar datos adicionales a la solicitud de búsqueda mediante el método String). UII le proporciona plantillas de proyecto para crear un control de búsqueda de clientes basado en formularios de Windows o en WPF con la solicitud de búsqueda de CTI preconectada.
Acceder a datos y eventos de llamada
Use la clase CallInfoData para tener acceso a información sobre una llamada que está en proceso en el escritorio de UII (como Unified Service Desk). El siguiente ejemplo muestra la sintaxis de esta clase:
CallInfoData calldata = GetCallInfoData(ctiCallRefCallId);
Habilitar o deshabilitar acciones de llamada
Use la clase CtiCallActionOptions para habilitar o deshabilitar acciones de llamadas. El código del siguiente ejemplo muestra cómo usar esta clase para administrar una llamada.
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);
}
Configure el control hospedado Administrador de escritorio de CTI en Unified Service Desk
Una vez creado el Administrador de escritorio de CTI junto con el conector CTI, debe configurar estos como controles hospedadas en Unified Service Desk. Unified Service Desk proporciona un control hospedado de tipo Administrador de escritorio de CTI que se puede usar para configurar su Administrador de escritorio de CTI en Unified Service Desk. El Conector de CTI se debe configurar como control hospedado de UII. Más información: Configurar un control hospedado para el conector CTI en Unified Service Desk
Inicie sesión en el Administrador de Unified Service Desk.
Seleccione Controles hospedados en Configuración básica.
Seleccione + Nuevo.
En la página Nuevo control hospedado, especifique los siguientes valores:
Campo valor Nombre Asigne el nombre que prefiera. Tipo de componente de USD Administrador de escritorio de CTI Grupo de presentación HiddenPanel Seleccione la pestaña Hospedaje y especifique los siguientes valores
Campo Valor URI de ensamblado Este es el nombre del archivo de ensamblado (.dll) que integró en el paso anterior. Tipo de ensamblado Este es el nombre del archivo de ensamblado seguido de un punto, y luego el nombre de clase del Control de CTI. Por ejemplo, si el nombre del ensamblado es MyCtiManager, y el nombre de la clase del proyecto CTI es DesktopManager, debe escribir el valor siguiente en este campo: MyCtiManager.DesktopManager. Seleccione Guardar para crear el control hospedado.
Importante
Una vez que haya configurado el control hospedados Administrador de escritorio de CTI en Unified Service Desk, debe configurar:
- Acciones para el control hospedado Administrador de escritorio de CTI. Más información: Acciones compatibles con funciones telefónicas
- Las reglas de navegación de ventanas para distribuir las solicitudes de búsqueda de CTI adecuadamente para crear sesiones y mostrar los resultados de la búsqueda Unified Service Desk. Más información: Búsqueda de CTI
Consulte también
Configure el control hospedado del Administrador de escritorio de CTI para adaptador de escucha genérico
Crear un conector CTI
Crear un control CTI
Tutorial: Usar el Administrador de escritorio de CTI para crear un adaptador de CTI
Marco de integración de telefonía informática (CTI) de UII