openFrameAPI - 클라이언트

  • 릴리스 버전: Yokohama
  • 업데이트 날짜 2025년 01월 30일
  • 읽기61분
  • openFrameAPI는 OpenFrame과 상호 작용하는 메서드를 제공합니다. OpenFrame은 통신 파트너가 시스템을 ServiceNow 플랫폼에 통합하는 데 사용할 수 있는 어디에나 존재하는 프레임입니다.

    핵심 요구사항 중 하나는 파트너 하위 시스템과 원활하게 연결할 수 있는 여러 도메인의 코드를 연결하고 제공하는 기능입니다. 이 교차 도메인 연결은 교차 도메인 문제 없이 연결 및 콜백을 통신 시스템에 등록하는 데 필요합니다.

    OpenFrame에는 두 가지 중요한 부분이 있습니다. 하나는 애플리케이션(TopFrame이라고 함)과 파트너 애플리케이션에서 제공되는 이 API에 있습니다 ServiceNow . 이 API에는 TopFrame과 통신하고 OpenFrame의 시각적 기능을 제어하는 데 필요한 메서드가 있습니다.
    주:
    최신 OpenFrame 라이브러리 참조가 필요한 경우 다음 자원 URI를 사용합니다. https://[servicenow instance]/scripts/openframe/latest/openFrameAPI.min.js.

    openFrameAPI - getAWAAgentPresence(문자열 성공, 문자열 실패)

    로그인한 에이전트의 현재 현재 상태를 반환합니다.

    표 1. 매개변수
    이름 유형 설명
    성공 문자열 메서드가 성공하면 호출할 콜백 함수의 이름입니다.
    실패 문자열 메서드가 실패하면 호출할 콜백 함수의 이름입니다.
    표 2. 반환
    유형 설명
    presence OpenFrame 인프라에 의해 성공 콜백 함수에 전달된 결과입니다.

    데이터 유형: 객체

    "presence": {  
      "available": Boolean, 
      "channels": [Array],
      "name": "String", 
      "sys_id": "String"
    }
    presence.available 연결된 에이전트를 사용할 수 있는지 여부를 나타내는 플래그입니다.
    유효한 값은 다음과 같습니다.
    • true: 에이전트를 사용할 수 있습니다.
    • false: 에이전트를 사용할 수 없습니다.

    데이터 유형: 부울

    presence.channels 에이전트와 통신할 수 있는 채널 목록입니다.

    데이터 유형: 객체 배열

    "channels": [
      { 
        "available": Boolean,
        "name": "String",
        "restrict_update": Boolean,
        "service_channel_type": "String",
        "sys_id": "String"
      }
    ]
    presence.channels.available 채널을 사용할 수 있는지 여부를 나타내는 플래그입니다.
    유효한 값은 다음과 같습니다.
    • true: 채널을 사용할 수 있습니다.
    • false: 채널을 사용할 수 없습니다.

    데이터 유형 부울

    presence.channels.name 채팅 또는 전화와 같은 채널의 이름입니다.

    데이터 유형: 문자열

    presence.channels.restrict_update 사용자가 채널에 대한 업데이트를 제한할 수 있는지 여부를 나타내는 플래그입니다.
    유효한 값은 다음과 같습니다.
    • true: 사용자가 채널 업데이트를 제한할 수 있습니다.
    • false: 사용자가 채널 업데이트를 제한할 수 없습니다.

    데이터 유형 부울

    presence.channels.service_channel_type 서비스 채널의 유형입니다.

    데이터 유형: 문자열

    presence.channels.sys_id 채널 기록의 Sys_id입니다.

    데이터 유형: 문자열

    표: 서비스 채널 [awa_service_channel]

    presence.name 에이전트의 현재 상태 이름입니다.

    데이터 유형: 문자열

    presence.sys_id 현재 상태 기록의 Sys_id입니다.

    데이터 유형: 문자열

    테이블: 현재 상태 [awa_presence_state]

    다음 코드 예제에서는 이 메서드를 호출하는 방법을 보여 줍니다.

    function failure(data)
    {
      console.log("failure: " + JSON.stringify(data));
    }
     
    function success(data)
    {
      console.log("success: " + JSON.stringify(data));
    }
     
    openFrameAPI.getAWAAgentPresence(success, failure)

    성공 콜백 함수에 대한 응답:

    success: { 
      "presence": { 
        "name": "Available", 
        "sys_id": "0b10223c57a313005baaaa65ef94f970", 
        "available": true, 
        "channels": [ 
          { 
            "name": "Chat", 
            "available": true, 
            "sys_id": "27f675e3739713004a905ee515f6a7c3", 
            "restrict_update": false, 
            "service_channel_type": "chat" 
          } 
        ] 
      } 
    }

    openFrameAPI - hide()

    TopFrame에서 OpenFrame을 숨깁니다.

    표 3. 매개변수
    이름 유형 설명
    없음
    표 4. 반환
    유형 설명
    void
    openFrameAPI.hide()

    openFrameAPI - init(config 객체, successCallback 함수, failureCallback 함수)

    OpenFrame을 초기화합니다. 이 메서드는 호출하는 첫 번째 메서드여야 합니다.

    이 메서드는 TopFrame에 대한 통신을 초기화하고 매개변수에 전달된 모든 시각적 요소를 초기화합니다 config .

    표 5. 매개변수
    이름 유형 설명
    구성 객체 초기화 프로세스 중에 사용할 이름-값 쌍입니다.
    가능한 키:
    • height
    • subTitle
    • 제목
    • 제목 아이콘
    • width
    모든 키는 옵션입니다. 이러한 키-값 쌍을 설정하지 않으려면 빈 객체를 전달합니다.
    successCallback 함수 init 메서드가 성공할 경우 사용할 콜백 함수의 이름입니다. 시스템에 저장된 OpenFrame 구성은 콜백 함수에 매개변수로 전달됩니다.
    failureCallback 함수 init 메서드가 실패할 경우 사용할 콜백 함수의 이름입니다.
    표 6. 반환
    유형 설명
    void
    var config = {
    height: 300,
    width: 200
    }
    function handleCommunicationEvent(context) {
    console.log("Communication from Topframe", context);
    }
    function initSuccess(snConfig) {
    console.log("openframe configuration", snConfig);
    //register for communication event from TopFrame
    openFrameAPI.subscribe(openFrameAPI.EVENTS.COMMUNICATION_EVENT,
    handleCommunicationEvent);
    }
    function initFailure(error) {
    console.log("OpenFrame init failed...", error);
    }
    openFrameAPI.init(config, initSuccess, initFailure);

    openFrameAPI - isVisible(callback 함수)

    TopFrame에 OpenFrame이 표시되는지 확인합니다.

    표 7. 매개변수
    이름 유형 설명
    callback 함수 callback 함수는 true 또는 false 값을 가진 매개변수를 받습니다. OpenFrame이 표시되면 true이고 표시되지 않으면 false입니다.
    표 8. 반환
    유형 설명
    void
    function callback(isVisible) {
    console.log(isVisible)
    }
    openFrameAPI.isVisible(callback)

    openFrameAPI - openCustomURL(details 문자열)

    UI16 인터페이스에서 사용자 지정 URL을 엽니다.

    표 9. 매개변수
    이름 유형 설명
    URL 문자열 사용자 지정 URL의 텍스트입니다.

    최대 크기: 2083자

    표 10. 반환
    유형 설명
    void
    openFrameAPI.openCustomURL('10_cool_things.do');
    

    openFrameAPI - openServiceNowForm(details 객체)

    양식 URL을 엽니다.

    에이전트가 걸려오는 전화를 받으면 OpenFrame 창에 계정, 연락처 또는 소비자와 같은 정보가 표시됩니다. OpenFrame 창에서 링크를 클릭하면 해당 기록이 표시됩니다.
    • 플랫폼 인터페이스에서 이 API는 TopFrame에 양식 URL을 엽니다.
    • 에이전트 작업 공간에서는 이 API가 상호작용 탭 관리를 지원합니다. 에이전트 작업 공간에서는 상호작용 기록이 상위 탭에 열리고 지정된 엔터티 기록이 상호작용 탭 아래의 하위 탭에 열립니다.
    표 11. 매개변수
    이름 유형 설명
    details 객체 열려는 양식 URL을 식별 하는 키-값 쌍입니다.
    "details": {
      "entity": "String";
      "interaction_sys_id": "String";
      "query": "String"
    }
    details.entity 문자열 테이블 또는 엔터티 이름입니다.
    details.interaction_sys_id 문자열 옵션입니다. 에서 상위 탭으로 에이전트 작업 공간열 상호작용 기록의 Sys_id.
    주:
    플랫폼 인터페이스에서는 interaction_sys_id가 무시됩니다.
    details.query 문자열 열려는 기록을 식별하는 쿼리입니다(예: query:'sys_id=<record_sys_id>').
    표 12. 반환
    유형 설명
    void

    다음 예제는 플랫폼에서의 기본 사용법을 보여줍니다.

    openFrameAPI.openServiceNowForm({entity:'customer_account', 
    query:'sys_id=447832786f0331003b3c498f5d3ee452', 'interaction_sys_id':'3be092313b711300758ce9b534efc4dd'});

    다음 예에서는 매개 변수를 사용하여 query 작업 공간의 이름 필드와 성 필드를 채우기 위해 sysparm_query 및 인코딩된 쿼리를 사용하여 양식에 제공된 데이터로 새 기록을 만드는 방법을 보여줍니다.

    openFrameAPI.openServiceNowForm({ entity: 'sys_user',
    query: 'sys_id=-1&sysparm_query=first_name=Ivan^last_name=Greggor' });

    openFrameAPI - openServiceNowFormwithChildTab()

    작업 공간에서 호출되면 하위 탭이 있는 양식을 열고 ServiceNow , UI16 인터페이스에서 호출되면 엔터티를 엽니다.

    표 13. 매개변수
    이름 유형 설명
    openServiceNowFormwithChildTab 객체 API가 작업 공간에서 호출되는 경우 하위 탭이 있는 양식을 열지 ServiceNow 또는 UI16 인터페이스에서 호출되는 경우 엔터티를 열지 정의합니다.
    openFrameAPI.openServiceNowFormwithChildTab({
      entity: "String",
      sys_id: String", 	
      parent_entity: "String",	
      parent_entity_sys_id: "String"
    })
    openServiceNowFormwithChildTab.entity 문자열 열려는 기록이 들어 있는 테이블의 이름입니다.
    openServiceNowFormwithChildTab.sys_id 문자열 열려는 기록의 Sys_id.
    openServiceNowFormwithChildTab.parent_entity 문자열 상위 탭으로 열 테이블의 이름입니다.
    openServiceNowFormwithChildTab.parent_entity_sys_id 문자열 열려는 상위 기록의 Sys_id.
    표 14. 반환
    유형 설명
    안 함

    다음 예제에서는 구성된 작업 영역에서 상위 엔터티를 상위 탭으로 열거나 UI16에서 호출된 경우 엔터티만 엽니다.

    openFrameAPI.openServiceNowFormwithChildTab({
      entity: "customer_account", 
      sys_id: "447832786f0331003b3c498f5d3ee452", 	
      parent_entity: "interaction", 
      parent_entity_sys_id: "3be092313b711300758ce9b534efc4dd"
    });

    openFrameAPI - openServiceNowList(details 객체)

    UI16 인터페이스에서 목록 URL을 엽니다.

    표 15. 매개변수
    이름 유형 설명
    details 객체 목록 URL을 열 때 사용할 콘텐츠를 설명하는 키 값 쌍입니다.

    유효한 값은 다음과 같습니다.

    표 16. 반환
    유형 설명
    void
    openFrameAPI.openServiceNowList({entity:'case', query:'active=true'});

    openFrameAPI - setFrameMode(mode)

    OpenFrame 모드를 설정합니다.

    이 API에 전달된 모드:
    • 헤더에 적절한 아이콘을 설정합니다(축소 또는 확장).
    • CTI의 관련 이벤트를 발생시킵니다.
      • openFrameAPI.EVENTS.COLLAPSE
      • openFrameAPI.EVENTS.EXPAND
    표 17. 매개변수
    이름 유형 설명
    Mode 문자열 OpenFrame 모드를 설정합니다. 열거 옵션:
    1. openFrameAPI.FRAME_MODE.COLLAPSE
    2. openFrameAPI.FRAME_MODE.EXPAND
    표 18. 반환
    유형 설명
    void
    openFrameAPI.setFrameMode(openFrameAPI.FRAME_MODE.COLLAPSE);
    

    openFrameAPI - setHeight(height)

    OpenFrame 높이를 설정합니다.

    표 19. 매개변수
    이름 유형 설명
    높이 번호 높이(픽셀)
    표 20. 반환
    유형 설명
    void
    openFrameAPI.setHeight(100);

    openFrameAPI - setICContext(String Type, Object <Context>)

    클라이언트의 상호작용 통제와 관련된 컨텍스트 데이터를 설정합니다. 이 컨텍스트 데이터를 사용하여 OpenFrame에 표시할 클라이언트 UI를 결정합니다.

    대화형 컨트롤에 대한 자세한 내용은 다음을 참조하십시오 Interaction Controls Component.

    상호작용 기록에 대한 자세한 내용은 문서를 CSM voice interaction record page참조하십시오.

    표 21. 매개변수
    이름 유형 설명
    유형 문자열 설정할 컨텍스트 데이터의 유형입니다.
    유효한 값은 다음과 같습니다.
    • activeCall: 진행 중인 활성 통화 구성요소에 대한 컨텍스트를 설정합니다. 이 컨텍스트 형식을 전달할 때 activeCall[] JSON도 매개 변수로 Context 전달해야 합니다.

      활성 통화 구성요소

    • idleState: 현재 사용자의 유휴 상태 기능을 설정합니다. 이 옵션을 설정하면 OpenFrame에 유휴 상태 UI(다이얼 패드)가 나타납니다. 이 컨텍스트 형식을 전달할 때 <idleState>{} JSON도 매개 변수로 Context 전달해야 합니다.

      키패드 구성요소

    • searchTargetList: 전화번호부 컨텍스트를 설정합니다. 이 옵션을 설정하면 활성 통화 구성요소에서 통화 이전 이 활성화됩니다. 이 컨텍스트 형식을 전달할 때 searchTargetList[] JSON도 Context 매개 변수로 전달해야 합니다.

      호출 구성요소 이전
    <문맥> 객체 설정할 컨텍스트 데이터입니다. 각 컨텍스트 데이터 유형에는 서로 다른 가능한 입력 데이터 세트가 있습니다.
    유효한 Context 데이터 객체:
    • 액티브콜
    • <idleState>
    • searchTargetList
    액티브콜 객체 배열 활성 통화에 대한 상세 정보입니다. 각 객체는 진행 중인 활성 통화를 나타냅니다.
    "activeCall": [
      { 
        "currentParticipant": {Object},
        "customPayload: {Object},
        "direction": "String",
        "externalId": "String",
        "nowRecordId": "String",
        "nowRecordTable": "String",
        "participants": [Array],
        "type": "String"
      }
    ]
    activeCall.currentParticipant 객체 필수 현재 참가자의 통화 기능 및 통화 상태에 대한 상세 정보입니다.
    "currentParticipant": {
      "actor": "String",
      "callStartTime": "String",
      "capabilities": {Object},
      "connectedTime": "String",
      "custom-capability-state-1": Boolean,
      "flagged": Boolean,
      "held": Boolean,
      "id": "String",
      "muted": Boolean,
      "name": "String",
      "paused": Boolean,
      "recording": "String",
      "state": "String",
      "wrapUP": {Object}
    }
    activeCall.currentParticipant.actor 문자열 통화 참가자의 유형입니다.
    유효한 값은 다음과 같습니다.
    • 에이전트
    주:
    나중에 추가될 다른 참가자 유형입니다.
    activeCall.currentParticipant.callStartTime 문자열 호출이 시작된 날짜 및 시간입니다.

    시간 표준: UTC

    형식: RSS - "<요일>, dd mmm yyyy hh:MM:ss GMT". 예: "Wed, 17 Dec 2024 05:23:41 GMT"

    activeCall.currentParticipant.capabilities 객체 현재(에이전트) 참가자가 통화 중에 수행할 수 있는 역량에 대한 상세 정보입니다. 연결된 아이콘은 활성화된 기능에 대한 활성 통화 구성요소에 표시됩니다.

    역량 아이콘이 있는 활성 통화 구성요소 스크린샷
    "capabilities": {
      "dtmf": Boolean,
      "endCall": Boolean,
      "flag": Boolean,
      "hold": Boolean,
      "leaveAndTransfer": Boolean,
      "mergeCall": Boolean,
      "mute": Boolean,
      "resumeRecording": Boolean,
      "pauseRecording": Boolean,
      "startRecording": Boolean,
      "stopRecording": Boolean,
      "transfer": Boolean
    }
    activeCall.currentParticipant.capabilities입니다.DTMF 부울 에이전트에 현재 통화에 대한 DTMF(Dual Tone Multi-frequency) 기능이 있는지 여부를 나타내는 플래그입니다.
    유효한 값은 다음과 같습니다.
    • true: 참가자에게 DTMF 역량이 있습니다.
    • false: 참가자에게 DTMF 역량이 없습니다.

    기본값: false

    activeCall.currentParticipant.capabilities입니다.엔드콜 부울 연결된 참가자가 통화를 종료할 수 있는지 여부를 나타내는 플래그입니다.
    유효한 값은 다음과 같습니다.
    • true: 참가자가 통화를 종료할 수 있습니다. 통화 종료 버튼은 UI에서 활성화됩니다.
    • false: 참가자가 통화를 종료할 수 없습니다. UI에서 통화 종료 버튼이 비활성화되어 있습니다.

    기본값: false

    activeCall.currentParticipant.capabilities입니다.기 부울 참가자가 음성 품질 문제 등의 품질 문제에 대해 통화에 플래그를 지정할 수 있는지 여부를 나타내는 플래그입니다.
    유효한 값은 다음과 같습니다.
    • true: 참가자가 문제 통화에 플래그를 지정할 수 있습니다.
    • false: 참가자가 문제 통화에 플래그를 지정할 수 없습니다.

    기본값: false

    activeCall.currentParticipant.capabilities입니다.들다 부울 참가자가 통화를 보류할 수 있는지 여부를 나타내는 플래그입니다.
    유효한 값은 다음과 같습니다.
    • true: 참가자가 통화를 보류할 수 있습니다. 보류 버튼은 UI에서 활성화됩니다.
    • false: 참가자가 통화를 보류할 수 없습니다. UI에서 보류 버튼이 비활성화되어 있습니다.

    기본값: false

    activeCall.currentParticipant.capabilities입니다.leaveAndTransfer 부울 참가자가 다른 에이전트에게 호출을 전송한 다음 호출을 중단할 수 있는지 여부를 나타내는 플래그입니다. 상담 대상 사용자가 통화의 소유자가 아닌 상담 전송과 같은 작업에 이 기능을 활성화합니다.
    유효한 값은 다음과 같습니다.
    • true: 참가자가 전화를 전환하고 중단할 수 있습니다.
    • false: 참가자가 전화를 전환하거나 끊을 수 없습니다.

    기본값: false

    activeCall.currentParticipant.capabilities입니다.mergeCall 부울 참가자가 통화를 병합할 수 있는지 여부를 나타내는 플래그입니다. 참가자의 통화 레그가 병합될 수 있는 경우 이 기능을 사용합니다.
    유효한 값은 다음과 같습니다.
    • true: 참가자가 통화를 병합할 수 있습니다. 병합 버튼은 UI에서 활성화되어 있습니다.
    • false: 참가자가 통화를 병합할 수 없습니다. UI에서 병합 버튼이 비활성화되어 있습니다.

    기본값: false

    activeCall.currentParticipant.capabilities입니다.음소거 부울 참가자가 호출을 음소거할 수 있는지 여부를 나타내는 플래그입니다.
    유효한 값은 다음과 같습니다.
    • true: 참가자가 통화를 음소거할 수 있습니다. 음소거 버튼은 UI에서 활성화됩니다.
    • false: 참가자가 통화를 음소거할 수 없습니다. UI에서 음소거 버튼이 비활성화되어 있습니다.

    기본값: false

    activeCall.currentParticipant.capabilities입니다.재개녹화 부울 참가자가 통화 기록을 다시 시작할 수 있는지 여부를 나타내는 플래그입니다.
    유효한 값은 다음과 같습니다.
    • true: 참가자가 통화 기록을 다시 시작할 수 있습니다. UI에서 기록 일시 중지 버튼을 사용할 수 있습니다.
    • false: 참가자가 통화 녹음을 다시 시작할 수 없습니다. UI에서 기록 일시 중지 버튼이 비활성화되어 있습니다.

    기본값: false

    activeCall.currentParticipant.capabilities입니다.pauseRecording 부울 참가자가 통화 기록을 일시 중지할 수 있는지 여부를 나타내는 플래그입니다.
    유효한 값은 다음과 같습니다.
    • true: 참가자가 통화 기록을 일시 중지할 수 있습니다. UI에서 기록 일시 중지 버튼을 사용할 수 있습니다.
    • false: 참가자가 통화 녹음을 일시 중지할 수 없습니다. UI에서 기록 일시 중지 버튼이 비활성화되어 있습니다.

    기본값: false

    activeCall.currentParticipant.capabilities입니다.startRecording 부울 참가자가 통화 기록을 시작할 수 있는지 여부를 나타내는 플래그입니다.
    유효한 값은 다음과 같습니다.
    • true: 참가자가 통화 녹음을 시작할 수 있습니다. 기록 버튼은 UI에서 활성화됩니다.
    • false: 참가자가 통화 녹음을 시작할 수 없습니다. UI에서 기록 버튼이 비활성화되어 있습니다.

    기본값: false

    activeCall.currentParticipant.capabilities입니다.녹화 중지 부울 참가자가 통화 기록을 중지할 수 있는지 여부를 나타내는 플래그입니다.
    유효한 값은 다음과 같습니다.
    • true: 참가자가 통화 녹음을 중지할 수 있습니다. 기록 중지 버튼은 UI에서 활성화됩니다.
    • false: 참가자가 통화 녹음을 중지할 수 없습니다. UI에서 기록 중지 버튼이 비활성화되어 있습니다.

    기본값: false

    activeCall.currentParticipant.capabilities입니다.갈아타다 부울 참가자가 통화를 전송할 수 있는지 여부를 나타내는 플래그입니다.
    유효한 값은 다음과 같습니다.
    • true: 참가자가 통화를 전환할 수 있습니다. 전송 버튼은 UI에서 활성화되어 있습니다.
    • false: 참가자가 통화를 전환할 수 없습니다. UI에서 전송 버튼이 비활성화되어 있습니다.

    기본값: false

    activeCall.currentParticipant.connectedTime 문자열 호출이 처음 연결된 날짜 및 시간입니다.

    시간 기준: UTC

    형식: RSS - "<요일>, dd mmm yyyy hh:MM:ss GMT". 예: "Wed, 17 Dec 2024 05:23:41 GMT"

    activeCall.currentParticipant.custom-capability-state-1 부울 향후 사용.
    activeCall.currentParticipant.flagged 부울 음성 품질 문제와 같은 문제에 대해 호출에 플래그가 지정되었는지 여부를 나타내는 플래그입니다.
    유효한 값은 다음과 같습니다.
    • true: 호출에 문제가 있다고 플래그가 지정되었습니다.
    • false: 호출에 문제가 플래그가 지정되지 않았습니다.

    기본값: false

    activeCall.currentParticipant.held 부울 참가자의 보류 상태를 나타내는 플래그입니다.
    유효한 값은 다음과 같습니다.
    • true: 참가자가 보류 중입니다.
    • false: 참가자가 보류 중이 아닙니다.

    기본값: false

    activeCall.currentParticipant.id 문자열 필수 에이전트의 sys_id와 같은 연결된 참가자 기록의 Sys_id입니다.

    테이블: 사용자 [sys_user]

    activeCall.currentParticipant.muted 부울 참가자의 음소거 상태를 나타내는 플래그입니다.
    유효한 값은 다음과 같습니다.
    • true: 참가자가 음소거되었습니다.
    • false: 참가자가 음소거되지 않았습니다.

    기본값: false

    activeCall.currentParticipant.name 문자열 참가자의 이름입니다.
    activeCall.currentParticipant.paused 부울 참가자의 일시 중지된 상태를 나타내는 플래그입니다.
    유효한 값은 다음과 같습니다.
    • true: 참가자가 일시 중지되었습니다.
    • false: 참가자가 일시 중지되지 않았습니다.

    기본값: false

    activeCall.currentParticipant.recording 문자열 통화의 현재 기록 상태입니다.
    유효한 값은 다음과 같습니다.
    • in_progress
    • 안 함
    activeCall.currentParticipant.wrapUP 객체 향후 사용.
    activeCall.customPayload 객체 OpenFrame에 전달할 사용자 지정 페이로드입니다. 자유 형식 객체이며 버튼 또는 텍스트 추가와 같은 활성 통화 구성요소를 사용자 지정하는 데 필요한 모든 데이터를 포함할 수 있습니다.
    activeCall.direction 문자열 관련 참가자에 대한 호출의 방향입니다.
    유효한 값은 다음과 같습니다.
    • 인바운드
    • 아웃바운드
    activeCall.externalId 필수 연결된 외부 시스템에서 현재 활성 통화를 식별하는 고유 값입니다.
    activeCall 입니다.nowRecordId 문자열 필수 활성 통화 기록의 Sys_id입니다.

    테이블: 상호작용 [interaction] 기본 시스템에 대해서만 지원되는 옵션입니다.

    activeCall 입니다.nowRecordTable 문자열 필수 활성 호출이 속한 테이블입니다.

    테이블: 상호작용 [interaction] 기본 시스템에 대해서만 지원되는 옵션입니다.

    activeCall 입니다.참가자 객체 배열 필수 통화의 추가 참가자 목록입니다. 참가자는 에이전트, 고객, 에이전트나 고객이 아닌 외부 사람 또는 큐가 될 수 있습니다.
    "participants": [
      {
        "actor": "String",
        "ani": "String",
        "address": "String",
        "capabilities": {Object},
        "callStartTime" "String",
        "connectedTime": "String",
        "customPayload": {Object},
        "dnis": "String",
        "held": Boolean,
        "heldAtTime": "String",
        "id": "String",
        "muted": Boolean,
        "name": "String",
        "requestACW": Boolean,
        "requireWrapup": Boolean,
        "state": "String"
      }
    ]
    activeCall 입니다.참가자.배우 문자열 연결된 참가자의 액터 유형입니다.
    예:
    • 에이전트
    • 고객
    • 외부
    activeCall 입니다.참가자.애니 자동 번호 식별. 전화 수신자에게 표시할 전화번호입니다.
    activeCall 입니다.참가자.주소 문자열 참가자의 전화번호입니다.
    activeCall 입니다.참가자.기능 객체 관련 통화에 대해 참가자가 가지고 있는 기능 유형에 대한 상세 정보입니다.
    "capabilities": {
      "endCall": Boolean,
      "hold": Boolean,
      "mute": Boolean
    }
    activeCall 입니다.참가자.기능.엔드콜 부울 연결된 참가자가 통화를 종료할 수 있는지 여부를 나타내는 플래그입니다.
    유효한 값은 다음과 같습니다.
    • true: 참가자가 통화를 종료할 수 있습니다. 통화 종료 버튼은 UI에서 활성화됩니다.
    • false: 참가자가 통화를 종료할 수 없습니다. UI에서 통화 종료 버튼이 비활성화되어 있습니다.

    기본값: false

    activeCall 입니다.참가자.기능.들다 부울 참가자가 통화를 보류할 수 있는지 여부를 나타내는 플래그입니다.
    유효한 값은 다음과 같습니다.
    • true: 참가자가 통화를 보류할 수 있습니다. 보류 버튼은 UI에서 활성화됩니다.
    • false: 참가자가 통화를 보류할 수 없습니다. UI에서 보류 버튼이 비활성화되어 있습니다.

    기본값: false

    activeCall 입니다.참가자.기능.음소거 부울 참가자가 호출을 음소거할 수 있는지 여부를 나타내는 플래그입니다.
    유효한 값은 다음과 같습니다.
    • true: 참가자가 통화를 음소거할 수 있습니다. 음소거 버튼은 UI에서 활성화됩니다.
    • false: 참가자가 통화를 음소거할 수 없습니다. UI에서 음소거 버튼이 비활성화되어 있습니다.

    기본값: false

    activeCall 입니다.참가자.커넥티즌타임 문자열 필수 참가자가 처음 통화에 연결한 날짜 및 시간입니다.

    시간 표준: UTC

    형식: RSS - "<요일>, dd mmm yyyy hh:MM:ss GMT". 예: "Wed, 17 Dec 2024 05:23:41 GMT"

    activeCall 입니다.참가자.사용자 지정 페이로드 객체 OpenFrame에 전달할 사용자 지정 페이로드입니다. 자유 형식 객체이며 버튼 또는 텍스트 추가와 같이 활성 통화 구성요소를 사용자 지정하는 데 필요한 모든 데이터를 포함할 수 있습니다.
    activeCall 입니다.참가자.DNI 문자열 전화 건 번호 식별 서비스. 참가자가 다이얼한 전화 번호입니다.
    activeCall 입니다.참가자.개최 부울 참가자의 보류 상태를 나타내는 플래그입니다.
    유효한 값은 다음과 같습니다.
    • true: 참가자가 보류 중입니다.
    • false: 참가자가 보류 중이 아닙니다.

    기본값: false

    activeCall 입니다.참가자.'heldAtTime' 문자열 통화에 대한 참가자의 연결이 보류된 날짜 및 시간입니다.

    시간 기준: UTC

    형식: RSS - "<요일>, dd mmm yyyy hh:MM:ss GMT". 예: "Wed, 17 Dec 2024 05:23:41 GMT"

    activeCall 입니다.참가자.아이디 문자열 필수 CCaaS(연락처 센터 서비스형) 시스템의 참가자 고유 ID입니다.
    activeCall 입니다.참가자.음소거 부울 참가자의 음소거 상태를 나타내는 플래그입니다.
    유효한 값은 다음과 같습니다.
    • true: 참가자가 음소거되었습니다.
    • false: 참가자가 음소거되지 않았습니다.

    기본값: false

    activeCall 입니다.참가자.이름 문자열 참가자의 이름입니다.
    activeCall 입니다.참가자.요청ACW 부울 is " activeCall.currentParticipant.actor agent"인 경우에만 유효합니다.

    참가자가 고객과 후속 조치를 취해야 함을 나타내는플래그입니다.

    유효한 값은 다음과 같습니다.
    • true: 후속 조치가 필요합니다.
    • false: 추가 작업이 필요하지 않습니다.

    기본값: false

    activeCall 입니다.참가자.요구 래핑 부울 is " activeCall.currentParticipant.actor agent"인 경우에만 유효합니다.

    호출이 완료된 후 마무리 구성요소를 표시할지 여부를 나타내는 플래그입니다.


    마무리 구성요소 스크린샷
    유효한 값은 다음과 같습니다.
    • true: 호출 완료 시 마무리 구성요소를 표시합니다.
    • false: 통화 완료 시 마무리 구성요소를 표시하지 않습니다.

    기본값: false

    activeCall 입니다.참가자.상태 문자열 참가자의 호출 레그의 상태입니다. 활성 통화 구성요소의 전화 번호 아래에 표시됩니다.
    상태를 표시하는 활성 통화 창
    다음과 같은 의미 있는 텍스트일 수 있습니다.
    • 경고
    • 연결됨
    • 벨 울림
    activeCall.type 문자열 통화 유형입니다.
    유효한 값은 다음과 같습니다.
    • 외침
    • 콜백 요청
    • 음성 메일
    <idleState> 객체 에이전트의 유휴 상태 컨텍스트를 설명합니다. 이 컨텍스트 데이터는 에이전트가 통화를 대기할 때 다이얼 패드에 나타나는 정보와 이 다이얼 패드를 통해 사용할 수 있는 기능을 결정합니다.
    <idleState> {
     "capability": {Object},
     "currentInboundId": "String",
     "dialpadInfoMessage": {Object},
     "enableState": {Object}
    }
    <idleState>.capability 객체 현재 사용자의 유휴 상태 기능에 대한 설명입니다.
    "capability": {
      "globalContactSearch": Boolean,
      "logOut": Boolean,
      "outBoundCall": Boolean
    }
    <idleState>.capability입니다.globalContactSerarch 부울 유휴 상태일 때 전역 연락처 목록을 표시할지 여부를 나타내는 플래그입니다.
    유효한 값은 다음과 같습니다.
    • true: 전역 연락처 목록을 표시합니다.
    • false: 전역 연락처 목록을 표시하지 않습니다.

    기본값: false

    <idleState>.capability입니다.로그아웃 부울 사용자가 유휴 상태일 때 로그아웃할 수 있는지 여부를 나타내는 플래그입니다.
    유효한 값은 다음과 같습니다.
    • true: 호출이 유휴 상태일 때 사용자가 로그아웃할 수 있습니다. 로그아웃 버튼은 다이얼 패드에 나타납니다.
    • false: 호출이 유휴 상태일 때 사용자가 로그아웃할 수 없습니다.

    기본값: false

    <idleState>.capability입니다.아웃바운드콜 부울 사용자가 유휴 상태일 때 아웃바운드 호출을 할 수 있는지 여부를 나타내는 플래그입니다.
    유효한 값은 다음과 같습니다.
    • true: 호출이 유휴 상태일 때 사용자가 아웃바운드 호출을 할 수 있습니다.
    • false: 호출이 유휴 상태일 때 사용자가 아웃바운드 호출을 할 수 없습니다.

    기본값: false

    <idleState>입니다.currentInboundId 문자열 아웃바운드 콜 상호작용을 작성하는 데 사용된 제공자 애플리케이션의 인바운드 식별자입니다.

    테이블: 제공자 채널 자격 증명 [sys_cs_provider_application] 테이블의 id 필드에 있습니다.

    기본값: 기본 시스템 제공자 애플리케이션

    <idleState>입니다.dialpadInfo메시지 객체 사용자의 다이얼 패드에 표시할 정보 메시지(예: 현재 선택된 큐)에 대한 상세 정보입니다.
    "dialpadInfoMessage": {
       "label": "String",
       "value": "String"
     }

    다음 예시에서 label is Selected 큐: 및 is valueCustomer Inquiries가 있습니다. 선택한 큐: 고객 문의에서 또는 value 매개변수를 사용할 label 수도 있습니다.


    정보 메시지가 있는 다이얼 패드의 스크린샷
    <idleState>입니다.dialpadInfoMessage를 사용합니다.레이블 문자열 다이얼 패드에 표시할 자유 형식 레이블입니다.
    <idleState>입니다.dialpadInfoMessage를 사용합니다.값 문자열 다이얼 패드의 레이블 뒤에 표시할 자유 형식 메시지 텍스트입니다.
    <idleState>입니다.enableState 객체 다이얼 패드의 버튼 사용 상태에 대한 상세 정보입니다.
    "enableState": {
       "logOut": Boolean,
       "outBoundCall": Boolean
     }
    <idleState>입니다.enableState입니다.로그아웃 부울 유휴 상태일 때 UI에서 로그아웃 버튼을 활성화할지 여부를 나타내는 플래그입니다.
    유효한 값은 다음과 같습니다.
    • true: 유휴 상태일 때 로그아웃 버튼을 표시합니다.
    • false: 유휴 상태일 때는 로그아웃 버튼을 표시하지 않습니다.

    기본값: false

    <idleState>입니다.enableState입니다.아웃바운드콜 부울 유휴 상태일 때 UI에서 아웃바운드 호출 버튼을 사용할지 여부를 나타내는 플래그입니다.
    유효한 값은 다음과 같습니다.
    • true: 유휴 상태일 때 발신 콜 버튼을 표시합니다.
    • false: 유휴 상태일 때는 아웃바운드 호출 단추를 표시하지 않습니다.

    기본값: false

    searchTargetList 객체 배열 테이블의 전송 관련 데이터에 대한 상세 정보입니다 ServiceNow .
    "searchTargetList": [
      {
        "externalId": "String",
        "nowRecordId": "String",
        "nowRecordTable": "String",
        "participantID": "String",
        "targets": [Array]
      }
    ]
    searchTargetList를 사용합니다.외부 ID 문자열 CCaaS 시스템에서 연결된 호출의 고유 식별자입니다.
    searchTargetList를 사용합니다.nowRecordId 문자열 필수 searchTargetList가 속한 기록의 Sys_id입니다.
    주:
    상호작용 [interaction] 테이블의 기록만 현재 지원됩니다.
    searchTargetList를 사용합니다.nowRecordTable 문자열 필수. ServiceNow searchTargetList가 속한 테이블입니다.

    테이블: 유효한 값인 "interaction"

    searchTargetList를 사용합니다.참가자 ID 문자열 CCaaS 시스템의 참가자에 대한 고유 식별자입니다.
    searchTargetList를 사용합니다.대상 객체 배열 통화를 전송할 수 있는 에이전트, 외부 사용자 및/또는 큐에 대한 상세 정보입니다.
    "targets": [
      {
        "payload": {Object},
        "transferSubtypes": [Array],
        "type": "String"
      }
    ]
    searchTargetList를 사용합니다.대상.페이로드 객체 통화 전환 제어에 표시할 정보에 대한 상세 정보입니다.

    다음은 통화를 전송할 수 있는 에이전트 목록이 포함된 호출 전송 컨트롤의 예입니다. 스크린샷은 컨트롤의 각 매개 변수가 UI의 어떤 요소인지 list.payload 보여줍니다.


    매개변수 연결을 보여주는 호출 이전 창 스크린샷
    "payload": {
      "list": [Array]
    }

    이 예는 에이전트 페이로드("searchTargetList.targets.type" : "agent")를 보여줍니다.

    "payload": {
      "list": [
        {
          "name": "Alice Anderson",
          "id": "agent1Id",
          "hasStats": "true",
          "presence": "available",
          "moreInfo": [
            {
              "label": "Skill",
              "value": "CRM certified"
            }
          ]
        }
      ]
    }

    다음은 큐 페이로드("searchTargetList.targets.type" : "queue")의 예를 보여줍니다.

    "payload": {
      "list": [
        {
          "name": "Product Support Queue",
          "id": "queue1Id",
          "hasStats": "true",
          "moreInfo": [
            {
              "label": "Skill",
              "value": "10sec"
            },
            {
              "label": "Queue Skill",
              "value": "German"
            }
          ]
        },
        {
          "name": "Billing Queue",
          "id": "queue2Id",
          "hasStats": "true",
          "moreInfo": [
            {
               "label": "Skill",
               "value": "10sec"
            }
          ]
        }
      ]
    }
    searchTargetList를 사용합니다.대상.페이로드.목록 객체 배열 각 대상 유형의 페이로드에 대한 상세 정보입니다.
    "list": [
      {
        "hasStats": Boolean,
        "id": "String",
        "moreInfo": [Array],
        "name": "String",
        "presence": "String"
      }
    ]
    searchTargetList를 사용합니다.대상.페이로드.목록.hasStats 부울 연결된 대상에 큐 대기 시간 등의 추가 통계가 있는지 여부를 나타내는 플래그입니다.
    유효한 값은 다음과 같습니다.
    • true: 대상에 추가 통계가 있습니다. 에이전트 이름 또는 큐 옆에 정보 아이콘이 나타납니다.
    • false: Target에 추가 통계가 없습니다.

    기본값: false

    searchTargetList를 사용합니다.대상.페이로드.목록.아이디 문자열 CCaaS 시스템의 에이전트 또는 큐에 대한 고유 식별자입니다.
    searchTargetList를 사용합니다.대상.페이로드.목록.더 많은 정보 객체 배열 "예"로 설정된 경우 searchTargetList.targets.payload.list.hasStats 필요합니다. 에이전트 또는 큐가 보유한 기술 목록입니다. 이 정보는 사용자가 엔터티 이름 끝에 있는 정보 아이콘을 선택할 때 팝업 창에 나타납니다.
    "moreInfo": [
      {
        "label": "String",
        "value": "String"
      }
    ]
    searchTargetList를 사용합니다.대상.페이로드.목록.moreInfo입니다.레이블 문자열 팝업 창에 표시할 정보(예: 기술 또는 언어)에 대한 자유 형식 레이블입니다.
    searchTargetList를 사용합니다.대상.페이로드.목록.moreInfo입니다.값 문자열 레이블 뒤에 팝업 창에 표시할 텍스트입니다(예: CRM 인증됨 또는 독일어).
    searchTargetList를 사용합니다.대상.페이로드.목록.이름 문자열 에이전트, 외부 사용자 또는 큐의 이름입니다. CCaaS 시스템에 있습니다.
    searchTargetList를 사용합니다.대상.페이로드.목록.존재 문자열 연결된 에이전트의 현재 상태입니다. 이 매개변수는 "에이전트"에만 searchTargetList.targets.type 유효합니다.
    유효한 값은 다음과 같습니다.
    • 사용 가능
    • 자리 비움
    • 통화 중
    • 오프라인
    searchTargetList를 사용합니다.대상.transferSubtypes 객체 배열 지정된 searchTargetList.targets.type.

    이 정보는 사용자가 UI에서 대상 이름 옆에 있는 타원을 클릭할 때 나타납니다.


    전송 유형을 보여주는 이전 호출 구성요소

    예를 들어, 현재 대상 유형(예: 대기열)에 대해 상담 유형만 지원되는 경우 이 배열에는 전송의 상담 유형을 나타내는 하나의 개체가 포함됩니다.

    "transferSubtypes": [
      {
        "id": "String",
        "label": "String"
      }
    ]
    searchTargetList를 사용합니다.대상.transferSubtypes를 사용합니다.아이디 문자열 이전 하위 유형의 식별자입니다.
    유효한 값은 다음과 같습니다.
    • 블라인드: 에이전트가 먼저 에이전트에게 말하지 않고 고객 통화를 다른 에이전트 또는 큐로 직접 전환합니다.
    • 상담: 상담자가 상담을 원하는 상담사에게 연락한 다음 고객을 상담 상담사와의 통화에 병합합니다.

    이 값은 의 값과 searchTargetList.targets.transferSubtypes.label일치해야 합니다.

    searchTargetList를 사용합니다.대상.transferSubtypes를 사용합니다.레이블 문자열 이전 하위 유형의 레이블입니다. 레이블을 전달하지 않으면 전송 하위 유형에 대한 UI에 아무 것도 표시되지 않습니다.
    유효한 값은 다음과 같습니다.
    • 눈 먼
    • 상담하다

    이 값은 의 값과 searchTargetList.targets.transferSubtypes.id일치해야 합니다.

    searchTargetList를 사용합니다.대상.형 문자열 대상의 유형입니다.
    유효한 값은 다음과 같습니다.
    • 에이전트
    • 외부
    표 22. 반환
    유형 설명
    안 함

    다음 코드 예제에서는 활성 상태 컨텍스트를 설정하는 방법을 보여 줍니다.

    openFrameAPI.setICContext("activeCall", {
      "activeCall": [
        { 
          "nowRecordTable": "interaction",
          "nowRecordId": "12345675678903456",
          "externalId": "1234567890",
          "type": "call",
          "direction": "inbound",
          "currentParticipant": {
            "id": "participant1",
            "name": "John 1",
            "actor": "agent",
            "state": "connected",
            "connectedTime": "Fri, 12 Jul 2024 05:23:41 GMT",
            "callStartTime": "Fri, 12 Jul 2024 04:20:22 GMT",
            "muted": false,
            "held": true,
            "paused": true,
            "flagged": true,
            "recording": "in_progress",
            "capabilities": {
              "hold": false,
              "mute": true,
              "endCall": true,
              "startRecording": true,
              "pauseRecording": true,
              "stopRecording": true,
              "resumeRecording": true,
              "transfer": true,
              "mergeCall": true,
              "leaveAndTransfer": true,
              "dtmf": true,
              "flag": true
            }
          },
          "participants": [
            {
              "id": "customer1",
              "name": "Gilly 1",
              "actor": "customer",
              "address": "+18582359874",
              "ani": "+16193287356", 
              "dnis": "+18004346258",
              "state": "connected",
              "connectedTime": "Fri, 12 Jul 2024 00:23:41 GMT",
              "callStartTime": "Fri, 12 Jul 2024 20:55:04 GMT",
              "muted": false,
              "held": false,
              "heldAtTime": "Fri, 12 Jul 2024 20:55:04 GMT", 
              "capabilities": {
                "mute": true,
                "hold": true,
                "endCall": true
              }
            },
            {
              "id": "agent2",
              "name": "Ned",
              "actor": "agent",
              "address": "+3134787324",
              "ani": "+13134787324", 
              "dnis": "+14773286943",
              "state": "Ringing...",
              "requireWrapup": true,
              "requestACW": true,
              "connectedTime": "Fri, 12 Jul 2024 20:24:41 GMT",
              "callStartTime": "Fri, 12 Jul 2024 20:56:34 GMT",
              "muted": true,
              "held": true,
              "heldAtTime": "Fri, 12 Jul 2024 20:55:41 GMT",
              "capabilities": {
                "mute": true,
                "endCall": true,
                "hold": true 
              }
            }
          ]
        },
        {
          "nowRecordTable": "interaction",
          "nowRecordId": "12345yhedfh534576u5",
          "externalId": "1234567890",
          "type": "call",
          "direction": "inbound",
          "currentParticipant": {
            "id": "participant1",
            "name": "John 1",
            "actor": "agent",
            "state": "connected",
            "muted": true,
            "held": false,
            "recording": "in_progress",
            "paused": true,
            "flagged": true,
            "capabilities": {
              "hold": false,
              "mute": true,
              "endCall": true,
              "record": true,
              "startRecording": true,
              "stopRecording": true,
              "transfer": true,
              },
              "mergeCall": false,
              "dtmf": true,
              "flag": true
            }
          },
          "participants": [
            {
              "id": "customer1",
              "name": "Gilly 2",
              "actor": "customer",
              "address": "+123456789",
              "state": "connected",
              "connectedTime": "Wed, 04 Dec 2024 00:23:41 GMT",
              "muted": true,
              "held": false,
              "heldAtTime": "Fri, 12 Jul 2024 20:24:41 GMT”,
              "capabilities": {
                "mute": true,
                "hold": true,
                "endCall": true
              }
            },
            {
              "id": "agent2",
              "name": "Ned 2",
              "actor": "agent",
              "address": "+123456789",
              "state": "Ringing...",
              "connectedTime": "Fri, 12 Jul 2024 20:24:41 GMT",
              "muted": true,
              "held": true,
              "heldaAtTime": "Fri, 12 Jul 2024 20:24:41 GMT”,
              "capabilities": {
                "mute": true,
                "endCall": true,
                "hold": true
              }
            }
          ]
         }
        ]
      }
    );
    

    다음 예제에서는 유휴 상태 컨텍스트를 설정하는 방법을 보여 줍니다.

    openFrameAPI.setICContext("idleState", {
      "capability": {
        "outBoundCall": true,
        "logOut": true 
      },
      "enableState": {
        "outBoundCall": true,
        "logOut": true
      },
      "dialpadInfoMessage": {
        "label": "Info Message Label",
        "value": "Info Message Value"
      },
      "currentInboundId": "1234"
    });

    다음 예제에서는 검색 대상 목록 컨텍스트를 설정하는 방법을 보여 줍니다.

    openFrameAPI.setICContext("searchTargetList",
      {
        "searchTargetList": [
          {
            "nowRecordTable": "interaction",
            "nowRecordId": "1234",
            "externalId": "5678",
            "participantID": "participant1",
            "targets": [
              {
                "type": "agent",
                "transferSubtypes": [
                  {
                    "id": "consult",
                    "label": "Consult"
                  },
                  {
                    "id": "blind",
                    "label": "Blind"
                  }
                ],
                "payload": {
                  "list": [
                    {
                      "name": "John Jason",
                      "id": "agent1Id",
                      "hasStats": "true",
                      "presence": "away",
                      "moreInfo": [
                        {
                          "label": "Skill",
                          "value": "10sec"
                        }
                      ]
                    }
                  ]
                }
              },
              {
                "type": "queue",
                "transferSubtypes": [
                  {
                    "id": "consult",
                    "label": "Consult"
                  },
                  {
                    "id": "blind",
                    "label": "Blind"
                  }
                ],
                "payload": {
                  "list": [
                    {
                      "name": "Product Support Queue",
                      "id": "queue1Id",
                      "hasStats": "true",
                      "moreInfo": [
                        {
                          "label": "Skill",
                          "value": "10sec"
                        },
                        {
                          "label": "Queue Skill",
                          "value": "German"
                        }
                      ]
                    },
                    {
                      "name": "Billing Queue",
                      "id": "queue2Id",
                      "hasStats": "true",
                      "moreInfo": [
                        {
                          "label": "Skill",
                          "value": "10sec"
                        }
                      ]
                    }
                  ]
                }
              }
            ],
            "customPayload": {}
          }
        ],
        "customPayload": {}
      });

    openFrameAPI - setIcons(icons 배열)

    닫기 아이콘 옆에 놓인 OpenFrame 헤더의 아이콘을 정의합니다.

    표 23. 매개변수
    이름 유형 설명
    아이콘 객체 배열 아이콘 구성의 목록으로, 여기서 각 아이콘 구성은 키 값 imageURL, imageTitle및 기타 필요한 컨텍스트가 있는 객체입니다.

    최대 크기: 아이콘은 최대 16x16픽셀일 수 있습니다. 더 큰 이미지는 이 최대값으로 자동 조정됩니다.

    표 24. 반환
    유형 설명
    void
    openFrameAPI.setIcons([{imageURL:'https://mydomian.com/image/mute.png',
    imageTitle:'mute', id:101}, {imageURL:'https://mydomian.com/image/hold.png',
    imageTitle:'hold', id:102}]);

    openFrameAPI - setPresenceIndicator(presence)

    작업 영역에서 에이전트 가용성을 표시하도록 현재 상태 표시기를 설정합니다.

    OpenFrame 구성에 대한 자세한 내용은 OpenFrame 구성 만들기를 참조하십시오.

    표 25. 매개변수
    이름 유형 설명
    state 문자열 에이전트의 현재 상태입니다.

    기본 상태:

    • 연락 가능
    • 자리 비움
    • 오프라인

    사용자 지정 상태를 지정할 수도 있습니다.

    color 문자열 작업 영역의 현재 상태 표시기 색입니다.

    지원되는 색:

    • 빨간색
    • 주황색
    • 회색
    • 녹색
    표 26. 반환
    유형 설명
    void
    openframeAPI.setPresenceIndicator('Available', 'green');

    openFrameAPI - setSize(width 숫자, height 숫자)

    OpenFrame 크기를 설정합니다.

    표 27. 매개변수
    이름 유형 설명
    width 번호 0보다 커야 합니다.
    height 번호 0보다 커야 합니다.
    표 28. 반환
    유형 설명
    void
    openFrameAPI.setSize(300, 370);

    openFrameAPI - setSubtitle(subTitle 문자열)

    OpenFrame 부제목을 설정합니다.

    표 29. 매개변수
    이름 유형 설명
    subTitle 문자열 256자 이하의 문자열입니다.
    표 30. 반환
    유형 설명
    void
    openFrameAPI.setSubtitle('+18888888888');

    openFrameAPI - setTitle(title 문자열)

    OpenFrame 제목을 설정합니다.

    표 31. 매개변수
    이름 유형 설명
    제목 문자열 256자 이하의 문자열입니다.
    표 32. 반환
    유형 설명
    void
    openFrameAPI.setTitle('Incoming Call');

    openFrameAPI - setTitleIcon(icon 객체)

    OpenFrame의 제목 아이콘을 설정합니다.

    표 33. 매개변수
    이름 유형 설명
    icon 객체 키 값 쌍의 객체입니다. 키에는 , imageTitle, 및 필요한 기타 컨텍스트가 포함됩니다imageURL.

    최대 크기: 아이콘은 최대 16x16픽셀일 수 있습니다. 더 큰 이미지는 이 최대값으로 자동 조정됩니다.

    표 34. 반환
    유형 설명
    void
    openFrameAPI.setTitleIcon({imageURL:'/my/image/path.png', imageTitle:'mute', id:101});
    openFrameAPI.setTitleIcon({imageURL:'https://mydomian.com/image/path.png',
    imageTitle:'mute', id:101});

    openFrameAPI - setWidth(width)

    OpenFrame 너비를 설정합니다.

    표 35. 매개변수
    이름 유형 설명
    너비 번호 너비(픽셀)
    표 36. 반환
    유형 설명
    void
    openFrameAPI.setWidth(100);

    openFrameAPI - show()

    TopFrame에서 OpenFrame을 표시합니다.

    표 37. 매개변수
    이름 유형 설명
    없음
    표 38. 반환
    유형 설명
    void
    openFrameAPI.show()

    openFrameAPI - subscribe(openFrameAPIEVENT 이벤트, eventCallback 함수)

    지정된 이벤트를 구독합니다.

    표 39. 매개변수
    이름 유형 설명
    이벤트 openFrameAPIEVENT 구독할 이벤트:
    • openframe_agent_off_interaction: 채팅 중인 에이전트의 현재 상태를 꺼짐 또는 사용 가능으로 나타냅니다.
    • openframe_awa_agent_presence: ()AWA에서 고급 작업 할당 이 이벤트는 에이전트 현재 상태가 변경될 때 발생합니다. CTI(컴퓨터 전화 통합 시스템) 개발자는 이 이벤트를 구독하여 현재 상태 변경 사항을 수신할 수 있습니다.
    • openframe_awa_workitem_accepted: 에이전트가 작업 항목을 수락할 때 발생합니다.
    • openframe_awa_workitem_offered: 작업 항목이 에이전트에게 제공될 때 발생합니다.
    • openframe_awa_workitem_rejected: 에이전트가 작업 항목을 거부한 경우에 발생합니다.
    • openframe_before_destroy: TopFrame이 언로드되기 전에 발생합니다.
    • openframe_collapse: OpenFrame 헤더에서 축소 아이콘을 선택하면 발생합니다.
    • openframe_communication: 애플리케이션에 한정되며 사용자 지정할 수 있습니다.
    • openframe_communication_failure: TopFrame으로의 통신이 실패하면 발생합니다.
    • openframe_expand: OpenFrame 헤더에서 확장 아이콘을 선택하면 발생합니다.
    • openframe_heart_beat: 사용자 세션이 확장되거나 로그아웃될 때 발생합니다.
    • openframe_header_icon_clicked: 사용되지 않습니다. 대신 openframe_icon_clicked 또는 openframe_title_icon_clicked를 사용하십시오.
    • openframe_hidden: OpenFrame이 숨겨지면 발생합니다.
    • openframe_icon_clicked: OpenFrame 바닥글에서 닫기 아이콘 이외의 아이콘을 선택하면 발생합니다. callback이 icon 객체를 매개변수로 받습니다.
    • openframe_shown: OpenFrame이 표시되면 발생합니다.
    • openframe_title_icon_clicked: OpenFrame에서 제목 아이콘을 선택할 때 발생합니다. callback이 titleIcon 객체를 매개변수로 받습니다.
    • openframe_wrap_up_submitted: 마무리 기간이 마무리 모덜리스 대화 상자에서 끝날 때 발생합니다. 이벤트는 마무리가 외부인 경우에만 트리거됩니다.
    eventCallback 함수 지정된 이벤트가 발생할 때 호출할 함수입니다.
    표 40. 반환
    유형 설명
    결과 대부분의 이벤트 구독에는 반환 값이 없습니다. 값을 반환하는 이벤트 구독은 다음 표 항목에 설명되어 있습니다.
    openframe_awa_agent_presence 에서 AWAopenframe_awa_agent_presence 이벤트는 현재 상태 객체를 반환합니다.
    "presence":{
      "available": Boolean,
      "channels":[
        {
          "available": Boolean,
          "name": "String",
          "restrict_update": Boolean,
          "sys_id": "String"
        }
      ],
      "name": "String",
      "sys_id": "String"
    }
    presence: 에이전트의 현재 상태 및 채널에 대한 정보입니다.
    • presence.available: 에이전트를 사용할 수 있는지 여부를 나타내는 플래그입니다.
    • presence.channels: 에이전트와의 사용 가능한 통신 채널을 설명하는 객체 목록입니다.
      • presence.channels.available: 채널을 사용할 수 있는지 여부를 나타내는 플래그입니다.
      • presence.channels.name: 채팅 또는 전화 같은 채널 이름입니다.
      • presence.channels.restrict_update: 사용자가 업데이트를 제한할 수 있는지 여부를 나타내는 플래그입니다.
      • presence.channels.sys_id: 채널 sys_id.
    • presence.name: 에이전트의 현재 상태 이름입니다.
    • presence.sys_id: 현재 상태 sys_id.
    openframe_awa_workitem_accepted 및 openframe_awa_workitem_offered 에서 AWAopenframe_awa_workitem_accepted and openframe_awa_workitem_offered 이벤트는 workItem 객체를 반환합니다.
    "workItem": {
      "document": {
        "sys_id": "String",
        "table": "String"
      },
      "isAutoAccepted": Boolean,
      "isQueueTransferred": Boolean,
      "previousWorkItem": "String",
      "serviceChannel": {
        "name": "String",
        "sys_id": "String"
      },
      "size": Number,
      "sys_id": "String"
    }

    workItem: 이벤트와 연결된 작업 항목에 대한 정보입니다.

    • workItem.document: 작업 항목 작업과 연결된 문서의 목록입니다.
      • workItem.document.sys_id: 작업 항목 작업에 할당된 문서의 Sys_id입니다.
      • workItem.document.table: 작업에 할당된 문서 테이블의 이름입니다.
    • workItem.isAutoAccepted: 시스템에서 작업 항목을 자동으로 수락했는지 여부를 나타내는 플래그입니다. 작업 항목이 자동으로 수락된 경우 true로 설정합니다.
    • workItem.isQueueTransferred: 작업 항목이 큐 전송되었는지 여부를 나타내는 플래그입니다. 작업 항목이 큐로 전송되면 true로 설정하고, 그렇지 않으면 false로 설정합니다. 큐 전송에 대한 자세한 내용은 다음 문서를 참조하십시오 Transfer a chat to another queue.
    • workItem.previousWorkItem: 동일한 문서 ID에 대한 이전 작업 항목의 Sys_id입니다. 전송되지 않은 작업 항목의 경우 이 값은 비어 있습니다.
    • workItem.serviceChannel: 작업 항목 작업과 연결된 서비스 채널의 목록입니다.
      • workItem.serviceChannel.name: 채팅 또는 전화와 같은 서비스 채널의 이름입니다.
      • workItem.serviceChannel.sys_id: 서비스 채널의 Sys_id입니다.
    • workItem.size: 이 작업 항목이 에이전트에 할당될 때 사용되는 에이전트의 용량입니다.
    • workItem.sys_id: 수락되거나 제안된 작업 항목의 Sys_id입니다.
    openframe_awa_workitem_rejected 에서 AWAopenframe_awa_workitem_rejected 이벤트는 workItem 객체를 반환합니다.
    "workItem": {
      "document": {
        "sys_id": "String",
        "table": "String"
      },
      "isQueueTransferred": Boolean,
      "previousWorkItem": "String",
      "rejection": {
        "reason": "String",
        "sys_id": "String"
      },
      "serviceChannel": {
        "name": "String",
        "sys_id": "String"
      },
      "size": Number,
      "sys_id": "String"
    }

    workItem: 이벤트와 연결된 작업 항목에 대한 정보입니다.

    • workItem.document: 작업 항목 작업과 연결된 문서의 목록입니다.
      • workItem.document.sys_id: 작업 항목 작업에 할당된 문서의 Sys_id입니다.
      • workItem.document.table: 작업에 할당된 문서 테이블의 이름입니다.
    • workItem.isQueueTransferred: 작업 항목이 큐 전송되었는지 여부를 나타내는 플래그입니다. 작업 항목이 큐로 전송되면 true로 설정하고, 그렇지 않으면 false로 설정합니다. 큐 전송에 대한 자세한 내용은 다음 문서를 참조하십시오 Transfer a chat to another queue.
    • workItem.previousWorkItem: 동일한 문서 ID에 대한 이전 작업 항목의 Sys_id입니다. 전송되지 않은 작업 항목의 경우 이 값은 비어 있습니다.
    • workItem.rejection: 작업 항목을 거부한 이유 목록입니다.
      • workItem.rejection.reason: 작업 항목을 거부하는 이유의 이름입니다.
      • workItem.rejection.sys_id: 거부 이유의 Sys_id입니다.

        테이블: 거부 사유[awa_reject_reason]

    • workItem.serviceChannel: 작업 항목 작업과 연결된 서비스 채널의 목록입니다.
      • workItem.serviceChannel.name: 채팅 또는 전화와 같은 서비스 채널의 이름입니다.
      • workItem.serviceChannel.sys_id: 서비스 채널의 Sys_id입니다.
    • workItem.size: 이 작업 항목이 에이전트에 할당될 때 사용되는 에이전트의 용량입니다.
    • workItem.sys_id: 수락되거나 제안된 작업 항목의 Sys_id입니다.
    openframe_heart_beat openframe_heart_beat 이벤트는 다음 객체를 반환합니다.
    {
      "lastUiActivity": "String",
      "sessionLoggedIn": Boolean
    }
    • lastUiActivity:선택적. 사용자 세션을 확장한 마지막 UI 활동의 타임스탬프입니다.
    • sessionLoggedIn 사용자가 로그인했는지 여부를 나타내는 플래그입니다.
      • true: 사용자가 로그인했습니다.
      • false: 사용자가 로그인하지 않았습니다.
    openframe_wrap_up_submitted openframe_wrap_up_submitted 이벤트는 다음 객체를 반환합니다.
    { 
      "wrapUp": {
        "external": Boolean,
        "externalSegmentId": "String", 
        "recordId": "String",
        "recordTable": "String",
        "wrapUpCode": "String",
        "wrapUpNotes": "String",
        "wrapUpSegmentId": "String"
      }
    }
    • external: 마무리가 인스턴스에서 내부적으로 ServiceNow 처리되는지 또는 다른 호출 시스템에 의해 인스턴스 외부에서 ServiceNow 관리되는지 여부를 나타내는 플래그입니다.
      • true: 외부 호출 시스템에서 마무리를 처리합니다.
      • false: 인스턴스가 마무리 ServiceNow 를 처리합니다.
    • externalSegmentId: 외부 마무리를 트리거한 외부 데이터 개체의 고유 식별자입니다.
    • recordId: 마무리 중인 상호작용 기록의 Sys_id입니다.
    • recordTable: 기록이 포함된 테이블의 이름입니다. 항상 "상호작용"으로 설정됩니다.
    • wrapUpCode: 상호작용이 해결된 방법을 나타내는 마무리 작업 중 사용자가 선택한 코드입니다.
    • wrapUpNotes: 마무리 작업 중에 사용자가 입력한 상호작용이 해결된 방법을 설명하는 자유 형식 텍스트입니다.
    • wrapUpSegmentId: 상호작용과 연관된 상호작용 마무리 세그먼트 기록의 Sys_id. 마무리 세그먼트 [interaction_wrap_up_segment] 테이블에 있습니다. 마무리 데이터를 포함합니다.

    다음 코드 예제에서는 openframe_awa_agent_presence 이벤트에 대해 이 메서드를 호출하는 방법을 보여 줍니다.

    function handleIconClick(context) {
    console.log("Icon was clicked", context);
    }
    openFrameAPI.subscribe(openFrameAPI.events.openframe_awa_agent_presence, handleIconClick);

    출력:

    // Sample presence object output
    // openframe_awa_agent_presence event only
    
    {
      "result":{
        "presence":{
          "name":"Available",
          "sys_id":"27f675e3739713004a905ee515f6a7c3",
          "available":true,
          "channels":[
            {
              "name":"Chat",
              "available":true,
              "sys_id":"36f675e4239713124a905fe515f6a832",
              "restrict_update":false
            },
            {
              "name":"Phone",
              "available":true,
              "sys_id":"9378a530a1820610f809018efd9bc01e",
              "restrict_update":false
            }
          ]
        }
      }
    }

    다음 코드 예제에서는 openframe_awa_workitem_accepted 이벤트에 대해 이 메서드를 호출하는 방법을 보여 줍니다.

    function handleIconClick(context) {
    console.log("Icon was clicked", context);
    }
    openFrameAPI.subscribe(openFrameAPI.events.openframe_awa_workitem_accepted, handleIconClick);

    출력:

    // Sample workItem object output
    // openframe_awa_workitem_accepted event only
    {
      "result": {
        "workItem": {
          "sys_id": "14c86c40a1650610f87701807d9bc0be",
          "size": 1,
          "serviceChannel": {
            "name": "Chat",
            "sys_id": "27f675e3739713004a905ee515f6a7c3"
          },
          "document": {
            "sys_id": "aa582040a1650610f87701807d9bc076",
            "table": "interaction"
          },
          "previousWorkItem": "7c78a440a1650610f87701807d9bc02b",
          "isQueueTransferred": true,
          "isAutoAccepted": true
        }
      }
    }

    다음 코드 예제에서는 openframe_awa_workitem_rejected 이벤트에 대해 이 메서드를 호출하는 방법을 보여 줍니다.

    function handleIconClick(context) {
    console.log("Icon was clicked", context);
    }
    openFrameAPI.subscribe(openFrameAPI.events.openframe_awa_workitem_rejected, handleIconClick);

    출력:

    // Sample workItem object output
    // openframe_awa_workitem_rejected event only
    {
      "payload": {
        "workItem": {
          "sys_id": "2c3bdc4824250610f8775e73b116f8de",
          "size": "1",
          "serviceChannel": {
            "name": "Chat",
            "sysID": "27f675e3739713004a905ee515f6a7c3"
          },
          "document": {
            "sys_id": "cf0a180824250610f8775e73b116f80c",
            "table": "interaction"
          },
          "rejection": {
            "reason": "Busy",
            "sys_id": "4e93fa29b38023002e7b6e5f26a8dc20"
          },
          "previousWorkItem": "831b9c4824250610f8775e73b116f841",
          "isQueueTransferred": true
        }
      }
    }

    openFrameAPI - version()

    OpenFrame API 버전을 반환합니다.

    표 41. 매개변수
    이름 유형 설명
    없음
    표 42. 반환
    유형 설명
    문자열 OpenFrame API 버전
    var version = openFrameAPI.version();
    
    console.log("API version " + version);