CTI 데스크톱 관리자 만들기

 

게시 날짜: 2016년 11월

적용 대상: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2013, Dynamics CRM 2015, Dynamics CRM 2016

CTI 바탕 화면 관리자 구성 요소는 컴퓨터 전화 통신 통합(CTI) 시스템 및 Unified Service Desk 또는 UII(User Interface Integration) 간의 인터페이스입니다. CTI 바탕 화면 관리자 구성 요소는 상태 및 데이터에 대한 호출에서 다음 두 항목을 만듭니다.

  • CallStateManager: CtiCallStateManager 클래스는 이벤트 관리와 같은 호출에 관련된 명령을 실행하는 CTI 커넥터 구성 요소와 통신하기 위한 호출에 응답, 연결 끊기, 통화를 대기 및 통화 전송 및 클래스는 속성, 메서드를 포함하는 기본 클래스로 사용됩니다. 다중 호출 관리 기능과 배선이 이벤트 CTI 컨트롤(사용자 인터페이스)에 연결하고 공급 업체 특정 사용자 지정에 대한 구현과 확장 지점을 기반으로 제공합니다.

  • AgentStateManager: CtiAgentStateManager는 속성, 메서드 및 이벤트 에이전트 상태 관리 (에이전트의 사용 가능 시간 사용할 수 있는, 사용 중, 자리 비움 등)와 관련된 CTI 커넥터 구성 요소와 통신하기 위한 기본 클래스로 사용됩니다. 배선이 이벤트 CTI 컨트롤(사용자 인터페이스)에 연결하고 공급 업체 특정 사용자 지정에 대한 구현과 확장 지점을 기반으로 제공합니다.

이 항목의 내용

CTI 바탕 화면 관리자 구성 요소를 정의합니다.

호출이 도착했을 때 검색 요청을 발생시킵니다

호출 데이터 액세스 및 이벤트

호출 동작을 사용할지 여부

Unified Service Desk에서 CTI 데스크톱 관리자 호스팅된 컨트롤 구성

CTI 바탕 화면 관리자 구성 요소를 정의합니다.

CTI 바탕 화면 관리자는 다음 인터페이스를 구현합니다.

CTI 바탕 화면 관리자 구성 요소를 CTI 커넥터를 정의하는 데 사용하는 것과 동일한 프로젝트에 정의된 USD CTI 커넥터 프로젝트 템플릿을 사용하여 정의합니다. 이 템플릿 사용에 대한 자세한 내용은 CTI 커넥터 만들기 도움말을 참조하십시오.

USD CTI 커넥터 프로젝트 템플릿의 BaseCtiDesktopManagerControl.cs 파일을 사용하여 CTI 바탕 화면 관리자와 AgentStateManager.cs 및CallStateManager.cs 파일을 구성하여 통화 및 에이전트 상태를 구성합니다. CTI 바탕 화면 관리자 구성 요소를 만들 수 있도록 명령 (주석의 형태) 및 배선이 메서드를 제공 하는이 파일입니다.

CTI 데스크톱 관리자 관리

호출이 도착했을 때 검색 요청을 발생시킵니다

새 호출이 수신되면 Microsoft Dynamics 365 저장소에서 자동 번호 식별(ANI) 번호를 조회하는 검색 요청을 호출하고 이름, 성 등의 추가 정보를 가져오고 세션을 만들 수 있습니다.UII(User Interface Integration)는 CTI 시스템이 고객 검색 제공자에게 전송하는 고객 조회 요청을 설명하는 CtiLookupRequest 클래스입니다. 이 클래스는 CTI 시스템을 제공하는 일반적인 데이터 요소를 설명합니다. 또한, 요청에 사용자 지정 데이터를 추가하는 기능을 제공합니다.

고객 조회 또는 검색은 Unified Service Desk 또는 UII에서 검색하는지 여부에 따라 구현됩니다.

  • 서비스 데스크 통합: 글로벌 관리자 호스트 컨트롤 검색 요청을 처리합니다.

  • 사용자 인터페이스 통합(UII): 조회 요청은 ICustomerSearch로 보내지고 검색 컨트롤을 구현하는 방법은 사용자에게 달려 있습니다. 또한 AddLookupRequestItem 메서드를 사용하여 추가 데이터를 사용하여 검색 요청을 보낼 수도 있습니다. UII는 미리 유선 CTI 검색 요청을 사용하여 Windows Forms 또는 WPF 기반 고객 검색 컨트롤을 만들기 위한 템플릿 파일 프로젝트를 제공합니다.

호출 데이터 액세스 및 이벤트

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 호스팅된 컨트롤로 구성해야 합니다.추가 정보: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. 저작권 정보