알림 클라이언트 - 클라이언트

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

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

    NotifyClient - 클라이언트(객체 notifyConfig, 부울 initializeVendorClientLazily)

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

    표 1. 매개변수
    이름 유형 설명
    initializeVendorClientLazily 부울 setCallerId() 메서드에 전달된 autoSelectVendorCallback 함수를 사용하여 호출자와 연결된 공급업체를 자동으로 설정할지 여부를 나타내는 플래그입니다(notifyConfig.vendor생성자에서 정의할 필요는 없음).
    • false: 기본값. autoSelectVendorCallback 함수를 사용하여 호출자의 공급업체를 설정하지 마세요. 벤더는 생성자에서 설정해야 합니다.
    • true: 호출자 ID가 설정된 경우 autoSelectVendorCallback 함수를 사용하여 공급업체를 정의합니다.
    알림 구성 객체 알림 WebRTC 클라이언트에 대한 구성 설정을 포함하는 JSON 객체입니다.
    notifyConfig.autoLoadScriptResources 부울 벤더 클라이언트에 필요한 코어 JS 라이브러리를 로드하는 방법을 나타내는 플래그입니다.
    • false: 기본값. 벤더별 코드를 사용하여 필요한 벤더 JS 라이브러리를 로드합니다(이전 버전과의 호환성 활성화).
    • true: notifyClient.js 사용하여 핵심 JS 라이브러리를 로드합니다.
    알림구성.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)
      • 메시지: 표시할 오류 메시지입니다.
      • errCode: 선택 사항입니다. 관련된 오류 코드입니다.
    • INCOMING_CALL: 전화가 오고 있습니다. 매개변수: from(string), to(string), callId(string), parentId(string), sysId(string), isFromClient(boolean)
      • 발신자: 발신자의 전화 번호입니다.
      • 받는 사람: 호출된 전화 번호입니다.
      • callId: 호출의 SID입니다.
      • parentId: 부모 notify_call 참조입니다. skipParentId가 true로 설정된 경우 이 매개 변수를 전달하면 안 됩니다.
      • sysId: WebRTC에서 WebRTC 간 호출 전용입니다. 호출자의 고유 식별자(sys_id)입니다.
      • isFromClient: WebRTC에서 WebRTC로의 호출만 해당됩니다. 다른 WebRTC 클라이언트에서 호출했는지 여부를 나타내는 플래그입니다.
    • CALL_MUTE: 클라이언트가 음소거되었습니다.
    • CALL_UNMUTE: 클라이언트가 음소거 해제되었습니다.
    • 오프라인: 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.

    알림 클라이언트 - 호출(객체 식별자)

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

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

    Notify WebRTC Session(알림 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();
      }
    },

    알림 클라이언트 - 삭제 ()

    현재 알림 클라이언트를 강제 종료하여 사용할 수 없게 만듭니다.

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

    NotifyClient - forwardCall(객체 인수)

    진행 중인 수신 또는 발신 전화 통화를 다른 전화 번호 또는 다른 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

    알림 클라이언트 - 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();
    });

    알림 클라이언트 - sendDtmf(문자열 숫자)

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

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

    이 예제에서는 현재 호출에 DTMF 신호를 보내는 방법을 보여 줍니다.

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

    알림 클라이언트 - 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();
    });

    알림 클라이언트 - setClientAvailable(부울 사용 가능)

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

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

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

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