기능 확인

사용자의 기기가 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": [
    "RICHCARD_STANDALONE",
    "RICHCARD_CAROUSEL",
    "ACTION_CREATE_CALENDAR_EVENT",
    "ACTION_DIAL",
    "ACTION_OPEN_URL",
    "ACTION_SHARE_LOCATION",
    "ACTION_VIEW_LOCATION",
    "ACTION_OPEN_URL_IN_WEBVIEW",
    "PDF_IN_RICH_CARDS"
  ]
}

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

성공적인 응답은 MSISDN (전화번호)이 지난 31일 이내에 RCS 서비스에 연결된 경우에만 반환됩니다. 이는 해당 기간 내에 사용자의 기기가 Google의 RCS 서버에 체크인했음을 의미합니다. 온라인 및 RCS 지원 기기는 평균 1~4시간마다 체크인합니다.

사용자가 SIM 카드를 RCS 지원 기기로 이동하면 이전 기기 연결이 삭제되고 새 연결이 생성되어 RCS 서비스의 기기 기능이 업데이트됩니다.

이동통신사나 제조업체에서 RCS를 사용 중지한 기기에 SIM 카드를 넣거나 SIM 카드를 사용하지 않은 상태로 두면 RCS 서비스는 최대 31일 동안 이전에 연결된 기기에 메시지를 전송하려고 시도합니다.

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

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

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

오프라인 대기열

메시지는 최대 31일 동안 대기열에 추가되며 기기가 다시 온라인 상태가 되면 전송됩니다. 즉, 기기가 최대 31일 동안 오프라인 상태가 되더라도 지난 31일 이내에 MSISDN이 RCS 서비스에 연결된 경우 다시 연결 시 대기열에 추가된 메시지가 전송됩니다.

대량 기능 확인

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에 도달할 수 있는 무작위 샘플의 번호 수입니다. 이 수는 모든 이동통신사에서 도달 가능한 총 사용자 수를 대략적으로 추정하는 데 사용됩니다.
reachableUsersMap 출력 전용입니다. 운송업체 ID와 해당 운송업체에서 연결 가능한 사용자 목록의 맵입니다. 이 필드는 미국 전화번호에만 채워집니다.

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

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

500개의 스레드로 스크립트를 실행하는 CPU 2개 및 RAM 4GB의 가상 머신은 약 1, 000QPS에 도달할 수 있지만 전체 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 파일을 열어 결과를 확인합니다.