NotifyClient - 클라이언트

  • 릴리스 버전: Xanadu
  • 업데이트 날짜 2024년 08월 01일
  • 읽기16분
  • NotifyClient API는 웹 브라우저에서 전화를 걸고 받는 것과 같은 알림 전화 통신 기능을 사용할 수 있는 메서드를 제공합니다.

    여러 NotifyClient 메서드는 콜백 함수를 매개 변수로 사용합니다. NotifyClient 메서드 호출은 비동기적으로 수행되므로 이러한 메서드는 값을 직접 반환할 수 없습니다. 콜백 함수를 사용하여 변수를 할당하거나 다른 API를 호출하는 등의 방법으로 반환된 데이터를 구문 분석합니다.

    NotifyClient - Client(Object notifyConfig, Boolean initializeVendorClientLazily)

    새 알림 WebRTC 클라이언트 개체를 인스턴스화합니다.

    표 1. 매개변수
    이름 유형 설명
    initializeVendorClientLazily (영문) 부울 setCallerId() 메서드에 전달된 autoSelectVendorCallback 함수를 사용하여 호출자의 연결된 공급업체를 자동으로 설정할지 여부를 나타내는 플래그입니다(notifyConfig.vendor생성자에 정의할 필요가 없음).
    • false: 기본값. autoSelectVendorCallback 함수를 사용하여 호출자의 공급업체를 설정하지 마세요. 공급업체는 생성자에서 설정해야 합니다.
    • true: 호출자 ID가 설정될 때 autoSelectVendorCallback 함수를 사용하여 공급업체를 정의합니다.
    알림 구성 객체 알림 WebRTC 클라이언트에 대한 구성 설정을 포함하는 JSON 객체입니다.
    notifyConfig.autoLoadScriptResources 부울 벤더 클라이언트에 필요한 핵심 JS 라이브러리를 로드하는 방법을 나타내는 플래그입니다.
    • false: 기본값. 벤더별 코드를 사용하여 필요한 벤더 JS 라이브러리를 로드합니다(이전 버전과의 호환성 사용).
    • true: notifyClient.js 사용하여 핵심 JS 라이브러리를 로드합니다.
    notifyConfig.callerId 번호 사용할 등록된 알림 번호입니다. 이 값을 직접 설정하지 마십시오. notifyClient.setCallerID() 메서드를 사용하여 이 값을 설정합니다.
    notifyConfig.forceRefreshToken 부울 만료된 클라이언트 토큰을 자동 갱신할지 여부를 나타내는 플래그입니다.
    • false: 클라이언트 토큰이 만료될 때 자동으로 갱신하지 않습니다.
    • true: 기본값입니다. 클라이언트 토큰이 만료되면 자동으로 갱신합니다.
    notifyConfig.skipParentId 부울 수신 호출에 대해 onIncoming 호출자를 즉시 호출할지 여부를 나타내는 플래그입니다.
    • false: 기본값. onIncoming 이벤트 처리기를 즉시 호출하지 마십시오.
    • true: onIncoming 이벤트 처리기를 즉시 호출합니다. 이 플래그를 설정하면 <Dial><Client> Twiml이 들어오는 호출을 발생시킨 다른 호출이 있는 경우 이 플래그를 설정하면 시스템이 백엔드를 자동으로 폴링합니다. 이 자동 폴링은 상위 notify_call 참조를 가져옵니다.
    notifyConfig.vendor 상수 호출자가 속한 벤더입니다.
    • SNC입니다. Notify.Vendor.TWILIO_DIRECT
    • SNC입니다. Notify.Vendor.TWILIO(구형, 사용 중단된 Twilio 드라이버)

    다음 예제에서는 NotifyClient 생성자를 만들고, 다양한 이벤트 수신기를 등록하고, 클라이언트 드라이버를 초기화하는 방법을 보여 줍니다.

    jQuery(function () {
    
      var notifyConfig = {
        autoLoadScriptResources: true // This will take care of auto loading the JS resources needed by the client (if any)
      };
      var client = new SNC.Notify.Client(notifyConfig, true); // The second argument ensures that the proper vendor for the given number is auto determined
      client.setCallerId('valid_notify_long_number', function () {
        // This is called after the vendor has been determined.
    
        if (!notifyConfig.vendor) // Means this number has no compatible vendor
          return;
    
        client.addEventListener(SNC.Notify.STD_EVENTS.ONLINE, function () {
          // Ability to call is available
        });
        client.addEventListener(SNC.Notify.STD_EVENTS.OFFLINE, function () {
          // Ability to call is _not_ available right now
        });
        client.addEventListener(SNC.Notify.STD_EVENTS.ERROR, function (msg, code) {
          // Some error happened
        });
          //... register other event handlers here
          //Show UI elements which can be used to invoke client.call() and other APIs
        client.init(); // This is important to call this.
        });
    });

    알림 클라이언트 - addEventListener(문자열 이벤트, 함수 fn)

    알림 클라이언트에서 변경 내용을 수신하는 이벤트 핸들러를 등록합니다.

    이 방법을 사용하면 여러 수신기를 등록할 수 있습니다. 각 수신기는 별도의 메서드 호출이어야 합니다.

    표 2. 매개변수
    이름 유형 설명
    이벤트 문자열 수신할 이벤트의 이름입니다.

    문자열을 전달하는 대신 SNC에 정의된 상수를 사용합니다 . Notify.STD_EVENTS.

    • CALL_START: 통화가 시작되어 진행 중입니다.
    • CALL_CANCEL: 호출자가 통화를 취소했습니다.
    • CALL_INIT: WebRTC가 통화(수신 또는 발신)에 연결되었습니다.
    • CALL_DISCONNECT: 현재 통화의 연결이 끊어졌습니다.
    • 오류: 오류가 발생했습니다. 매개변수: message(string), errCode(string)
      • message: 표시할 오류 메시지입니다.
      • errCode: 선택 사항입니다. 관련된 오류 코드입니다.
    • INCOMING_CALL: 전화가 걸려옵니다. 매개변수: from(string), to(string), callId(string), parentId(string), sysId(string), isFromClient(boolean)
      • 보낸사람: 발신자의 전화번호입니다.
      • 받는 사람: 전화를 건 전화 번호입니다.
      • callId: 호출의 SID입니다.
      • parentId: 상위 notify_call 참조입니다. skipParentId가 true로 설정된 경우 이 매개 변수를 전달해서는 안 됩니다.
      • sysId: WebRTC 간 호출만 해당됩니다. 호출자의 sys_id(고유 식별자)입니다.
      • isFromClient: WebRTC 간 호출만 해당됩니다. 호출이 다른 WebRTC 클라이언트에서 온 것인지 여부를 나타내는 플래그입니다.
    • CALL_MUTE: 클라이언트가 음소거되었습니다.
    • CALL_UNMUTE: 클라이언트가 음소거 해제되었습니다.
    • OFFLINE: WebRTC 세션이 활성화되지 않았습니다.
    • 온라인: WebRTC 세션이 준비되었습니다. init() 메서드를 호출한 후에 설정해야 합니다.
    표 3. 반환
    유형 설명
    기능 수신기의 등록을 취소하는 데 사용할 함수입니다.

    이 예에서는 여러 수신기를 등록하는 방법을 보여 줍니다.

    jQuery(function () {
    
      var notifyConfig = {
        autoLoadScriptResources: true // This will take care of auto loading the JS resources needed by the client (if any)
      };
      var client = new SNC.Notify.Client(notifyConfig, true); // The second argument ensures that the proper client for the given number is auto determined
      client.setCallerId('valid_notify_long_number', function () {
        // This is called after the client has been determined.
    
        if (!notifyConfig.vendor) // Means this number has no compatible client
          return;
    
        client.addEventListener(SNC.Notify.STD_EVENTS.ONLINE, function () {
          // Ability to call is available
        });
        client.addEventListener(SNC.Notify.STD_EVENTS.OFFLINE, function () {
          // Ability to call is _not_ available right now
        });
        client.addEventListener(SNC.Notify.STD_EVENTS.ERROR, function (msg, code) {
          // Some error happened
        });
          //... register other event handlers here
         
        client.init(); // This is important to call this.
        });
    });

    이 예제에서는 수신기의 등록을 취소하는 방법을 보여 줍니다.

    var dereg = notifyClient.addEventListener(SNC.Notify.STD_EVENTS.ONLINE, function () {
     ... 
     }); 
     dereg(); 
      // The event listener function is no longer triggered.

    NotifyClient - call(객체 식별자)

    지정된 전화 번호 또는 지정된 사용자와 연결된 전화 번호로 전화를 겁니다.

    주:
    호출/연결 상태를 확인할 때는 항상 SNC에서 제공하는 상수와 비교하십시오 . Notify.Status입니다.
    표 4. 매개변수
    이름 유형 설명
    식별자 객체 전화를 걸 전화번호 또는 WebRTC 사용자의 sys_id가 포함된 JSON 객체입니다. 사용자 sys_id 전달하면 브라우저 간 통신을 통해 호출이 수행됩니다.

    알림 WebRTC 세션 테이블에서 사용자 sys_id 얻을 수 있습니다.

    주:
    전화 번호와 사용자 sys_id 모두 제공하는 경우 메서드는 전화 번호만 사용합니다.
    표 5. 반환
    유형 설명
    void

    이 예제에서는 전화 번호를 함수 매개 변수로 전달하는 방법을 보여 줍니다.

    notifyClient.call({
        phoneNumber: "+18001112223"
    });

    이 예제에서는 사용자 레코드 sys_id 함수 매개 변수로 전달하는 방법을 보여 줍니다.

    notifyClient.call({
        userId: "6816f79cc0a8016401c5a33be04be441"
    });

    이 예제에서는 단추 클릭 처리기를 보여 줍니다.

    $j("#pickupCallBtn").on("click", function() {
    	notifyClient.hangupCall();
    });

    이 예제에서는 이벤트 처리기를 보여 줍니다.

    onConnect: function(status) {  
      // webRTC receives a call connection event (incoming or outgoing).
      if (status == SNC.Notify.Status.OPEN) {
        setStatus(getTimeStamp() + " -- Successfully established call");
        showHangupButton();
      }
    },

    NotifyClient - destroy()

    현재 노티파이 클라이언트를 종료하여 사용할 수 없게 만듭니다.

    표 6. 매개변수
    이름 유형 설명
    없음
    표 7. 반환
    유형 설명
    void

    NotifyClient - forwardCall(Object 인수)

    진행 중인 수신 또는 발신 전화 통화를 다른 전화 번호 또는 다른 WebRTC 클라이언트로 전달합니다.

    표 8. 매개변수
    이름 유형 설명
    논쟁 객체 호출을 전화 번호 또는 WebRTC 클라이언트(사용자 sys_id)로 전달하는 데 필요한 정보를 포함하는 JSON 객체입니다. 이 sys_id 알림 WebRTC 세션 테이블에서 얻을 수 있습니다.
    표 9. 반환
    유형 설명
    void

    이 예에서는 다른 전화 번호로 통화를 착신 전환하는 방법을 보여 줍니다. dtmf 특성을 사용하면 DTMF 발신음을 수신 번호로 보낼 수 있습니다.

    var arg = {
        type: "number",
        id: "+17012345678",
        dtmf: "1234"
    }
    client.forwardCall(arg);

    이 예제에서는 다른 알림 클라이언트로 통화를 전달하는 방법을 보여 줍니다.

    var arg = {
        type: "userId",
        id: "6816f79cc0a8016401c5a33be04be441"
    }
    client.forwardCall(arg);

    NotifyClient - getAvailableClients(함수 콜백)

    호출을 수락할 수 있는 클라이언트 목록을 반환합니다.

    이 메서드는 목록에서 현재 클라이언트를 제외합니다. 동등한 Notify-getAvailableClients() 메서드는 사용자를 필터링하지 않습니다.

    표 10. 매개변수
    이름 유형 설명
    콜백 기능 클라이언트 목록을 구문 분석하는 데 사용할 함수입니다. 이 함수는 단일 매개변수, 즉 다음 형식의 JSON 객체 배열을 허용합니다.
    [{
        sys_id: "...",  // user's sys_id
        name: "..." // user's name
    }]
    표 11. 반환
    유형 설명
    void

    NotifyClient - getParentId(문자열 callId, 함수 콜백)

    지정된 호출 식별자의 상위 호출 식별자를 반환합니다(있는 경우).

    전화 통신 공급자에 따라 부모 호출 식별자가 반환되기까지 지연이 있을 수 있습니다. 따라서 콜백 함수를 제공해야 합니다.

    표 12. 매개변수
    이름 유형 설명
    callID 문자열 상위 호출 식별자를 반환할 호출의 고유 식별자입니다.
    콜백 기능 상위 호출 식별자 또는 여러 번 시도한 후에도 식별자를 가져올 수 없는 경우 오류 메시지가 포함된 JSON 객체를 가져오는 함수입니다.
    표 13. 반환
    유형 설명
    문자열 상위 콜 식별자입니다.

    이 예제에서는 이 메서드를 사용하여 부모 호출 식별자를 가져오는 방법을 보여 줍니다.

    notifyClient.getParentId( callId, function(jsonObj) {} );

    이 예제에서는 jsonObj 매개 변수의 내용을 보여 줍니다.

    {
    	parentId: "xyz",
    	error: "msg"
    }

    알림 클라이언트 - getStatus()

    현재 호출의 정규화된 상태를 반환합니다.

    표 14. 매개변수
    이름 유형 설명
    없음
    표 15. 반환
    유형 설명
    문자열 호출의 현재 상태입니다. 전화 통신 공급자 API에서 반환되는 값은 반환된 드라이버 값을 SNC에 정의된 해당 값으로 대체하여 정규화됩니다. Notify.Status입니다.

    이 예제에서는 현재 알림 클라이언트의 상태를 가져오는 방법을 보여 줍니다.

    clientStatus = notifyClient.getStatus();

    알림 클라이언트 - hangupCall()

    현재 통화를 종료합니다.

    표 16. 매개변수
    이름 유형 설명
    없음
    표 17. 반환
    유형 설명
    void

    이 예는 전화를 끊는 방법입니다.

    $j("#pickupCallBtn").on("click", function() {
        notifyClient.hangupCall();
    });

    알림 클라이언트 - init()

    클라이언트 드라이버를 초기화합니다.

    예를 들어 Twilio 클라이언트를 사용하는 경우 Twilio.Device.setup() 메서드를 호출합니다. 사용자가 페이지와 상호 작용한 후 이 메서드를 호출합니다. 이 초기화 프로세스는 비동기적이므로 ONLINE 이벤트 처리기를 제공해야 합니다. 이 처리기는 설치 프로세스가 완료되고 시스템에서 전화를 받거나 걸 준비가 되었을 때 호출됩니다.

    표 18. 매개변수
    이름 유형 설명
    없음
    표 19. 반환
    유형 설명
    void

    이 예제에서는 알림 클라이언트를 초기화하는 방법을 보여줍니다.

    $j(function() {
      notifyClient = new SNC.Notify.Client( notifyConfig );
      notifyClient.setCallerId( '+31858889170' );
      notifyClient.init();
    });

    NotifyClient - 음소거(부울 음소거)

    현재 클라이언트를 음소거하거나 음소거 해제합니다.

    표 20. 매개변수
    이름 유형 설명
    음소거 부울 현재 호출을 음소거하거나 음소거 해제합니다.
    • false: (또는 true가 아닌 값) 현재 호출을 음소거 해제합니다.
    • true: 현재 호출을 음소거합니다.
    표 21. 반환
    유형 설명
    void

    이 예에서는 현재 통화를 음소거하는 방법을 보여줍니다.

    notifyClient.mute( "true" );

    알림 클라이언트 - pickupCall()

    WebRTC 클라이언트에서 걸려오는 전화에 응답하고 연결합니다.

    들어오는 호출에 대한 알림이 있을 때 이 메서드를 호출합니다.

    표 22. 매개변수
    이름 유형 설명
    없음
    표 23. 반환
    유형 설명
    void

    이 예에서는 전화를 당겨받는 방법을 보여 줍니다.

    $j("#pickupCallBtn").on("click", function() {
        notifyClient.pickupCall();
    });

    NotifyClient - sendDtmf(문자열 숫자)

    현재 통화에 대해 하나 이상의 DTMF 유효 숫자를 보냅니다.

    표 24. 매개변수
    이름 유형 설명
    자리 문자열 하나 이상의 DTMF 유효 숫자입니다.
    표 25. 반환
    유형 설명
    void

    이 예에서는 DTMF 신호를 현재 통화로 전송하는 방법을 보여줍니다.

    notifyClient.SendDtmf( "1246AF" ) {} );

    NotifyClient - setCallerId(문자열 값, 함수 autoSelectVendorCallback)

    현재 클라이언트 세션에 대한 호출자 ID를 설정합니다.

    발신자 ID는 언제든지 변경하거나 업데이트할 수 있지만 발신자 ID는 동일한 벤더에 속해야 합니다.

    표 26. 매개변수
    이름 유형 설명
    문자열 전화를 걸고 받는 데 사용할 전화 번호입니다.
    autoSelectVendorCallback (영문) 기능 선택적. initializeVendorClientLazily 이 함수를 사용하려면 생성자에서 "true"로 설정해야 하며, 그렇지 않으면 오류가 발생합니다.

    지정된 전화번호에 대해 벤더가 자동으로 설정되면 호출할 콜백 함수의 이름입니다. 이 옵션을 사용하면 생성자()notifyConfig.vendor에 공급업체를 지정할 필요가 없습니다. 자동 벤더 선택은 비동기 작업입니다. 따라서 이 콜백은 notifyConfig.init()를 호출하는 것이 안전한 시기를 나타내는 데 필요하며, 이 메서드는 호출되기 전에 공급업체를 설정해야 합니다. 또한 공급업체가 지정되었는지 확인하기 위해 콜백에 설정되었는지 확인해야 notifyConfig.vendor 합니다.

    표 27. 반환
    유형 설명
    void

    이 예에서는 발신자 ID를 설정하는 방법을 보여 줍니다. 이 예제에서는 공급업체가 생성자에 설정되어 있다고 가정합니다.

    $j(function() {
      notifyClient = new SNC.Notify.Client( notifyConfig );
      notifyClient.setCallerId( '+31858889170' );
      notifyClient.init();
    });

    NotifyClient - setClientAvailable(부울 사용 가능)

    활성 WebRTC 클라이언트 에이전트의 가용성을 설정합니다.

    이러한 유형의 가용성은 에이전트가 통화 중일 때와 다릅니다. 이 경우, 활성 WebRTC 클라이언트는 통화 중이 아니라 연결되어 있을 수 있지만, 전화를 받고 싶지 않을 수 있습니다.

    이 메서드를 호출하면 이 클라이언트 세션과 연결된 알림 클라이언트 연결 세션 [notify_client_session] 레코드의 사용 가능 필드 값이 업데이트됩니다. getAvailableClients() 메서드를 사용하여 사용 가능한 클라이언트 목록을 가져올 수 있습니다.

    표 28. 매개변수
    이름 유형 설명
    사용 가능 부울 활성 WebRTC 클라이언트가 호출을 수신할지 여부를 나타내는 플래그입니다.
    • false: 클라이언트가 전화를 받지 않으려고 합니다.
    • true: 클라이언트가 전화를 받으려고 합니다.
    표 29. 반환
    유형 설명
    void