기능 확인

사용자의 기기가 RCS를 지원하고 RBM 에이전트와 통신할 수 있는지 확인하려면 기기의 기능을 요청하면 됩니다. 기기가 지원하는 기능(있는 경우)을 식별하면 상담사가 기기의 기능에 맞게 대화를 조정하고 사용자가 완료하기 어렵거나 불가능한 상호작용을 표시하지 않을 수 있습니다.

사용자의 기기에서 RCS 메시지를 전혀 수신할 수 없는 경우 SMS/MMS와 같은 다른 서비스를 통해 사용자와 통신할 수 있습니다.

기기 기능 확인

다음 코드는 기능 확인을 전송하고 응답을 기다립니다. 형식 지정 및 값 옵션은 getCapabilities를 참고하세요.

cURL

curl -X GET "https://REGION-rcsbusinessmessaging.googleapis.com/v1/phones/PHONE_NUMBER/capabilities?requestId=REQUEST_ID&agentId=AGENT_ID" \
-H "Content-Type: application/json" \
-H "User-Agent: curl/rcs-business-messaging" \
-H "`oauth2l header --json PATH_TO_SERVICE_ACCOUNT_KEY rcsbusinessmessaging`"

Node.js

// Reference to RBM API helper
const rbmApiHelper = require('@google/rcsbusinessmessaging');

// Send a capability check to the device
rbmApiHelper.checkCapability('+12223334444', function(response) {
   // Print capabilities of the device
   console.log(response);
});
이 코드는 RBM 샘플 에이전트의 발췌 부분입니다.

자바

import com.google.rbm.RbmApiHelper;


// Create an instance of the RBM API helper
RbmApiHelper rbmApiHelper = new RbmApiHelper();

// Check the capabilities of the device
boolean capability = rbmApiHelper.getCapability("+12223334444");
이 코드는 RBM 샘플 에이전트의 발췌 부분입니다.

Python

# Reference to RBM Python client helper
from rcs_business_messaging import rbm_service

# Send the tester invite to a device
response = rbm_service.make_cap_request('+12223334444')
이 코드는 RBM 샘플 에이전트의 발췌 부분입니다.

C#

using RCSBusinessMessaging;


// Create an instance of the RBM API helper
RbmApiHelper rbmApiHelper = new RbmApiHelper(credentialsFileLocation,
                                             projectId);

// Register the device as a tester
Capabilities capabilities = rbmApiHelper.GetCapability("+12223334444");
이 코드는 RBM 샘플 에이전트의 발췌 부분입니다.

기능 응답

기능 확인을 실행한 후 RBM 플랫폼은 지정된 기기가 지원하는 기능의 JSON 형식 목록을 반환합니다.

{
  "features": [
    "REVOCATION",
    "RICHCARD_STANDALONE",
    "RICHCARD_CAROUSEL",
    "ACTION_CREATE_CALENDAR_EVENT",
    "ACTION_DIAL",
    "ACTION_OPEN_URL",
    "ACTION_SHARE_LOCATION",
    "ACTION_VIEW_LOCATION",
    "ACTION_OPEN_URL_IN_WEBVIEW",
    "ACTION_COMPOSE",
  ]
}

요청은 응답 또는 오류를 반환합니다.

MSISDN (전화번호)이 지난 24시간 이내에 RCS 서비스에 연결된 경우에 성공 응답이 반환됩니다.

404 오류의 원인은 다음과 같습니다.

  • RBM으로 사용자에게 도달할 수 없습니다(예: 기기가 RCS를 지원하지 않는 경우).

  • 사용자에게 RCS가 있지만 상담사가 모바일 네트워크에서 실행되지 않습니다.

오프라인 현재 재생목록

메시지는 최대 30일 동안 대기열에 추가되며 기기가 다시 온라인 상태가 되면 전송됩니다. 전송을 보장하려면 메시지가 전송된 후 24시간 이내에 기기에 RCS 활동의 징후가 표시되어야 합니다. 즉, 기기가 장기간 (최대 30일) 오프라인 상태가 되더라도 전송 시 24시간 활동 기간이 충족된 한 재연결 시 대기열에 있는 메시지가 계속 전송됩니다.

일괄 기능 확인

RBM에 도달 가능한 사용자 수를 추정하려면 일괄 기능 확인을 실행합니다. 일괄 확인은 전화번호에 연결할 수 있는지 여부를 나타내지만 전화번호에서 지원하는 기능은 나타내지 않습니다.

일괄 기능 확인마다 500~10,000개의 고유한 전화번호를 제공해야 합니다. 더 많은 번호를 확인하려면 여러 번 확인합니다. 분당 최대 600회의 호출을 할 수 있습니다. 일괄 기능 확인 스크립트를 사용하여 CSV 파일을 입력 형식으로 사용합니다. 일괄 검사는 클라이언트가 RCS를 사용하여 유기적으로 업데이트하는 기능 캐시에서 읽습니다. 상담사는 각 기기의 기능을 직접 요청하지 않습니다. 따라서 결과가 최신 상태가 아닐 수 있습니다.

일괄 기능 확인은 상담사가 출시된 이동통신사에서 도달할 수 있는 번호 목록과 모든 이동통신사에서 도달 가능한 총 사용자 수의 추정치를 반환합니다. 일괄 기능 확인 응답을 참고하세요.

도달 가능한 총 사용자 수 추정

일괄 확인 응답에는 상담사의 출시된 이동통신사에서 즉시 연락할 수 있는 전화번호 목록(reachableUsers)이 포함되지만, 응답에는 모든 이동통신사에서 연락 가능한 총 사용자 수를 추정하는 데 도움이 되는 두 가지 값도 포함됩니다.

작동 방식

상담사가 일괄 기능 확인을 실행하면 RBM은 이러한 번호의 약 75% 를 무작위로 샘플링하여 모든 이동통신사를 확인합니다 (totalRandomSampleUserCount에 보고됨). 또한 RBM은 이동통신사 출시 상태 (reachableRandomSampleUserCount)와 관계없이 무작위 샘플에서 RBM에 도달 가능한 번호 수를 반환합니다. reachableRandomSampleUserCounttotalRandomSampleUserCount로 나누면 모든 이동통신사에서 출시된 경우 상담사가 도달할 수 있는 번호의 비율을 추정할 수 있습니다.

예를 들어 일괄 기능 확인에서 전화번호 5,000개를 지정하고 RBM에서 지정된 번호의 약 75% 를 무작위로 샘플링하는 경우 totalRandomSampleUserCount3750일 수 있습니다. reachableRandomSampleUserCount3000이면 샘플링된 숫자의 80% 에 연결할 수 있었습니다.

무작위 샘플링 고려

무작위 샘플을 테스트하면 비율에 차이가 발생할 수 있습니다. 무작위 샘플링의 영향을 고려하려면 더 많은 전화번호로 일괄 기능 검사를 실행하세요. 동일한 숫자 배치를 여러 번 사용하여 검사를 실행한 후 결과의 평균을 구하여 무작위 샘플링 동작을 정규화할 수도 있습니다.

일괄 기능 확인 전송

다음 코드는 일괄 기능 확인을 전송하고 응답을 기다립니다. 형식 지정 및 값 옵션은 users.batchGet를 참고하세요.

전화번호는 E.164 형식 (예: '+12223334444')이어야 하며 목록에는 고유한 전화번호 500~10,000개가 포함되어야 합니다.

cURL

curl -X POST "https://REGION-rcsbusinessmessaging.googleapis.com/v1/users:batchGet?agentId=AGENT_ID \
-H "Content-Type: application/json" \
-H "User-Agent: curl/rcs-business-messaging" \
-H "`oauth2l header --json PATH_TO_SERVICE_ACCOUNT_KEY rcsbusinessmessaging`" \
-d '{
  "users": [
    "PHONE_NUMBER",
  ]
}'

Node.js

// Reference to RBM API helper
const rbmApiHelper = require('@google/rcsbusinessmessaging');

// Specify phone numbers
let phoneNumbers = ['+12223334444', '+12223334444'];

// Perform a bulk capability check
rbmApiHelper.getUsers(phone_numbers, function(response) {
   // Print the bulk capability check response
   console.log(response);
});
이 코드는 RBM 샘플 에이전트를 사용합니다.

자바

import com.google.rbm.RbmApiHelper;


// Create an instance of the RBM API helper
RbmApiHelper rbmApiHelper = new RbmApiHelper();

// Perform a bulk capability check
BatchGetUsersResponse batchGetUsersResponse = rbmApiHelper.getUsers(Arrays.asList("+12223334444", "+12223334444"));
이 코드는 RBM 샘플 에이전트를 사용합니다.

Python

# Reference to RBM Python client helper
from rcs_business_messaging import rbm_service

# Perform a bulk capability check
response = rbm_service.make_batch_cap_request(['+12223334444', '+12223334444'])
이 코드는 RBM 샘플 에이전트를 사용합니다.

C#

using RCSBusinessMessaging;


// Create an instance of the RBM API helper
RbmApiHelper rbmApiHelper = new RbmApiHelper(credentialsFileLocation,
                                             projectId);

// Perform a bulk capability check
BatchGetUsersResponse batchGetUsersResponse = rbmApiHelper.GetUsers(new List({"+12223334444", "+12223334444"}));
이 코드는 RBM 샘플 에이전트를 사용합니다.

일괄 기능 확인 응답

일괄 기능 확인을 실행한 후 RBM은 JSON 형식의 응답을 반환합니다.

{
  "reachableUsers": [
    "PHONE_NUMBER"
  ],
  "totalRandomSampleUserCount": "COUNT_OF_SAMPLE",
  "reachableRandomSampleUserCount": "REACHABLE_FROM_SAMPLE"
}
필드 설명
reachableUsers 상담사가 출시한 이동통신사에서 도달 가능한 사용자의 목록입니다.
totalRandomSampleUserCount 지정된 숫자의 무작위 샘플 수입니다. 일반적으로 지정된 수의 약 75% 입니다.
reachableRandomSampleUserCount 에이전트가 실행된 이동통신사와 관계없이 모든 이동통신사에서 RBM에 도달할 수 있는 무작위 샘플의 번호 수입니다. 이 수치는 모든 이동통신사에서 도달 가능한 총 사용자 수를 대략적으로 추정하는 데 사용됩니다.

도구: 대량 기능 확인 스크립트

일괄 기능 확인 스크립트 (로그인하여 다운로드) CSV 파일을 입력 및 출력 형식으로 사용하여 일괄 기능 확인을 실행합니다. 이 스크립트는 MSISDN의 CSV 파일을 파싱하고 RBM SDK를 사용하여 나열된 모든 기기의 기능을 확인합니다.

500개의 스레드로 스크립트를 실행하는 CPU 2개, RAM 4GB의 가상 머신은 약 1,000개의 QPS에 도달할 수 있지만 전반적인 QPS는 사용되는 머신, 기기의 국가, 상담사의 지역 구성, 사용되는 API 엔드포인트에 따라 다릅니다.

기본 요건

이 도구를 사용하여 일괄 기능 확인을 수행하기 전에 다음을 가져옵니다.

  • 기능 검사를 실행할 MSISDN이 포함된 CSV 파일의 경로
  • 개발 머신에서 에이전트의 서비스 계정 키의 경로

또한 개발 머신에 다음 소프트웨어가 설치되어 있어야 합니다.

설정

일괄 기능 확인을 위해 개발 머신을 설정하려면 다음 단계를 따르세요.

  1. 일괄 기능 확인 스크립트 (로그인하여 다운로드)
  2. README의 단계를 따르세요.

일괄 기능 검사 실행

일괄 검사를 실행하려면 다음 단계를 따르세요.

  1. 터미널에서 스크립트의 루트 디렉터리로 이동합니다.
  2. 다음 명령어를 실행합니다.

    export MAVEN_OPTS="-Xms1024m -Xmx3000m"
    mvn compile && mvn exec:java -Dexec.args="AGENT_ID INPUT_FILE OUTPUT_FILE NUM_OF_THREADS START_INDEX END_INDEX"

    변수를 식별한 값으로 바꿉니다.

    바꾸기 다음으로 바꿈:
    AGENT_ID RCS 비즈니스 메시지 상담사의 ID입니다. welcome-bot
    INPUT_FILE 입력 CSV 파일의 경로입니다. input.csv
    OUTPUT_FILE 출력 CSV 파일의 경로입니다. output.csv
    NUM_OF_THREADS 기능 확인에 전용할 스레드 수입니다. 500
    START_INDEX 선택사항입니다. 검사를 시작할 CSV 파일의 값입니다. 5
    END_INDEX 선택사항입니다. CSV 파일에서 확인을 종료할 값입니다. 500
  3. 스크립트가 완료되면 출력 CSV 파일을 열어 결과를 확인합니다.