Чтобы проверить, поддерживает ли устройство пользователя технологию 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); });
Java
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");
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')
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 возвращает список функций , поддерживаемых указанным устройством, в формате 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 (номер телефона) подключался к службе RCS в течение последних 31 дня. Это означает, что устройство пользователя подключалось к нашему RCS-серверу в течение этого периода времени. Устройства, подключенные к сети и поддерживающие RCS, подключаются в среднем каждые 1-4 часа.
Если пользователь переставляет свою SIM-карту в другое устройство с поддержкой RCS, предыдущая привязка устройства удаляется, и создается новая, обновляя возможности устройства в службе RCS.
Если SIM-карта установлена в устройство, в котором функция RCS отключена оператором связи или производителем, или если SIM-карта остается неиспользованной, служба RCS все равно будет пытаться доставлять сообщения на ранее подключенное устройство в течение до 31 дня.
Вот что вызывает ошибки 404:
Пользователь недоступен через RBM — например, если его устройство не поддерживает RCS.
У пользователя есть RCS, но ваш агент не запущен в его мобильной сети.
Офлайн-очередь
Сообщения ставятся в очередь на срок до 31 дня и доставляются, когда устройство снова подключается к сети. Это означает, что даже если устройство отключается от сети на длительный период (до 31 дня), сообщения из очереди будут доставлены при повторном подключении, при условии, что MSISDN подключался к службе RCS в течение последних 31 дня.
Массовые проверки возможностей
Для оценки количества пользователей, доступных через RBM, выполните массовую проверку доступности. Массовые проверки показывают, доступен ли номер телефона, но не указывают, какие функции поддерживает этот номер.
Для каждой массовой проверки возможностей необходимо указать от 500 до 10 000 уникальных телефонных номеров. Для проверки большего количества номеров выполните несколько проверок. Вы можете совершать до 600 звонков в минуту. Используйте скрипт массовой проверки возможностей , чтобы использовать CSV-файлы в качестве входного формата. Массовые проверки считывают данные из кэша возможностей, который обновляется клиентами автоматически с помощью RCS. Агенты не запрашивают возможности каждого устройства напрямую. По этой причине результаты могут быть неактуальными.
Функция массовой проверки доступности возвращает список номеров, с которыми ваш агент может связаться у операторов связи, где запущена его система, а также приблизительные оценки общего числа доступных пользователей у всех операторов. См. ответ на массовую проверку доступности .
Оцените общее количество доступных пользователей.
В ответах на массовые проверки содержится список телефонных номеров, доступных для немедленной связи с операторами, запущенными вашим агентом ( reachableUsers ), а также два значения, которые помогут вам оценить общее количество доступных пользователей по всем операторам.
Как это работает
Когда ваш агент выполняет массовую проверку доступности, RBM случайным образом выбирает примерно 75% этих номеров для проверки всех операторов связи (отображается в totalRandomSampleUserCount ). RBM также возвращает количество доступных для RBM номеров из случайной выборки, независимо от статуса запуска у оператора связи ( reachableRandomSampleUserCount ). Разделив reachableRandomSampleUserCount на totalRandomSampleUserCount , вы можете оценить процент номеров, до которых ваш агент мог бы дотянуться, если бы он был запущен у всех операторов связи.
Например, если вы укажете 5000 телефонных номеров в проверке доступности для пакетной обработки, и RBM случайным образом выберет примерно 75% из указанных номеров, totalRandomSampleUserCount может быть 3750 Если reachableRandomSampleUserCount равно 3000 , то 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); });
Java
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"));
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'])
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 возвращает ответ в формате JSON.
{
"reachableUsers": [
"PHONE_NUMBER"
],
"totalRandomSampleUserCount": "COUNT_OF_SAMPLE",
"reachableRandomSampleUserCount": "REACHABLE_FROM_SAMPLE"
}| Поле | Описание |
|---|---|
reachableUsers | Список доступных пользователей у операторов связи, с которыми работает агент. |
totalRandomSampleUserCount | Подсчет количества чисел в случайной выборке из заданного набора. Обычно составляет около 75% от заданного количества чисел. |
reachableRandomSampleUserCount | Количество чисел из случайной выборки, доступных через RBM у всех операторов связи, независимо от того, у какого оператора запущен агент. Это количество используется для приблизительной оценки общего числа доступных пользователей у всех операторов связи. |
reachableUsersMap | Только для вывода. Сопоставление идентификатора оператора связи со списком доступных пользователей у этого оператора. Это поле заполняется только для телефонных номеров США. |
Инструмент: Скрипт для массовой проверки возможностей
ОнСкрипт проверки работоспособности Buck ( для скачивания войдите в систему )Выполняет массовую проверку возможностей, используя CSV-файлы в качестве входных и выходных форматов. Скрипт анализирует CSV-файл с MSISDN и использует RBM SDK для проверки возможностей каждого устройства из списка.
Виртуальная машина с 2 процессорами и 4 ГБ оперативной памяти, запускающая скрипт с 500 потоками, может достичь примерно 1000 запросов в секунду, но общая производительность зависит от используемой машины, страны устройств, региональной конфигурации вашего агента и используемой конечной точки API.
Предварительные требования
Перед использованием инструмента для массовой проверки возможностей получите следующее:
- Путь к CSV-файлу с MSISDN для выполнения проверок возможностей.
- Путь к ключу учетной записи службы вашего агента на вашем компьютере для разработки.
Кроме того, на вашем компьютере для разработки должно быть установлено следующее программное обеспечение:
- Apache Maven 3.3.9 или выше
- Java 8
Настраивать
Для настройки вашей машины разработки для проверки возможностей системы в пакетном режиме выполните следующие действия:
- Скачайте и распакуйтеСкрипт для массовой проверки возможностей ( для загрузки войдите в систему ).
- Следуйте инструкциям в файле README.
Выполните проверку возможностей пакета данных.
Для выполнения массовой проверки выполните следующие действия:
- В терминале перейдите в корневой каталог скрипта.
Выполните следующие команды:
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 for Business. welcome-botINPUT_FILE Путь к входному CSV-файлу. input.csvOUTPUT_FILE Путь к выходному CSV-файлу. output.csvNUM_OF_THREADS Количество потоков, выделяемых для проверок возможностей. 500START_INDEX Необязательно. Значение в CSV-файле, с которого начнутся проверки. 5END_INDEX Необязательно. Значение в CSV-файле, после которого будут производиться проверки. 500После завершения работы скрипта откройте выходной CSV-файл, чтобы просмотреть результаты.