Para verificar si el dispositivo de un usuario está habilitado para RCS y puede comunicarse con un agente de RBM, puedes solicitar las capacidades del dispositivo. Identificar las funciones que admite un dispositivo, si las hay, permite que tu agente adapte la conversación a las capacidades del dispositivo y evite presentar interacciones que sean difíciles o imposibles de completar para el usuario.
Si el dispositivo de un usuario no puede recibir mensajes RCS, puedes comunicarte con él a través de otros servicios, como SMS o MMS.
Cómo verificar las funciones del dispositivo
El siguiente código envía una verificación de capacidades y espera una respuesta. Para ver las opciones de formato y valor, consulta 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");
Respuesta de capacidad
Después de ejecutar una verificación de funciones, la plataforma de RBM muestra una lista con formato JSON de las funciones que admite el dispositivo especificado.
{ "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", ] }
La solicitud muestra una respuesta o un error.
Se muestra una respuesta correcta solo si el MSISDN (número de teléfono) se conectó al servicio de RCS en las últimas 24 horas.
A continuación, se indican las causas de los errores 404:
El RBM no puede comunicarse con el usuario (por ejemplo, si su dispositivo no admite RCS).
El usuario tiene RCS, pero tu agente no se inició en su red móvil.
Creación de filas sin conexión
Los mensajes se ponen en cola hasta por 30 días y se entregan cuando el dispositivo vuelve a estar en línea. Para garantizar la entrega, el dispositivo debe haber mostrado signos de actividad de RCS dentro de las 24 horas posteriores al envío del mensaje. Esto significa que, incluso si un dispositivo se desconecta durante un período prolongado (hasta 30 días), los mensajes en cola se seguirán entregando cuando se vuelva a conectar, siempre y cuando se haya cumplido el período de actividad de 24 horas en el momento del envío.
Verificaciones masivas de capacidades
Para estimar la cantidad de usuarios a los que se puede llegar con la RBM, realiza una verificación masiva de capacidades. Las verificaciones masivas indican si se puede comunicar con un número de teléfono, pero no qué funciones admite.
Para cada verificación masiva de capacidades, debes proporcionar entre 500 y 10,000 números de teléfono únicos. Para verificar más números, realiza varias verificaciones. Puedes realizar hasta 600 llamadas por minuto. Usa la secuencia de comandos de verificación de capacidades masivas para usar archivos CSV como formato de entrada. Las verificaciones masivas se leen de la caché de capacidades, que los clientes actualizan de forma orgánica con RCS. Los agentes no solicitan directamente las capacidades de cada dispositivo. Por este motivo, es posible que los resultados no sean actuales.
Las verificaciones masivas de capacidades muestran una lista de los números a los que puede llamar tu agente en los operadores en los que se lanzó, así como estimaciones de la cantidad total de usuarios a los que se puede llamar en todos los operadores. Consulta Respuesta de la verificación masiva de capacidades.
Estimación del total de usuarios alcanzables
Si bien las respuestas de la verificación masiva incluyen una lista de números de teléfono que se pueden alcanzar de inmediato en los operadores lanzados de tu agente (reachableUsers
), las respuestas también incluyen dos valores que pueden ayudarte a estimar la cantidad total de usuarios que se pueden alcanzar en todos los operadores.
Cómo funciona
Cuando tu agente realiza una verificación masiva de capacidades, RBM toma muestras de forma aleatoria de aproximadamente el 75% de esos números para verificar todos los operadores (se informa en totalRandomSampleUserCount
). RBM también muestra el recuento de números a los que se puede acceder desde RBM a partir de la muestra aleatoria, independientemente del estado de lanzamiento del operador (reachableRandomSampleUserCount
). Si divides reachableRandomSampleUserCount
por totalRandomSampleUserCount
, puedes estimar el porcentaje de números a los que podría llegar tu agente si se lanzara en todos los operadores.
Por ejemplo, si especificas 5,000 números de teléfono en la verificación de capacidades masivas y la RBM toma muestras de forma aleatoria de alrededor del 75% de los números especificados, totalRandomSampleUserCount
puede ser 3750
. Si reachableRandomSampleUserCount
es 3000
, se pudo establecer conexión con el 80% de los números muestreados.
Ten en cuenta el muestreo aleatorio
Probar muestras aleatorias puede generar variaciones en los porcentajes. Para tener en cuenta los efectos del muestreo aleatorio, ejecuta verificaciones de capacidad masivas con cantidades mayores de números de teléfono. También puedes realizar verificaciones con los mismos lotes de números variadas veces y, luego, promediar los resultados para normalizar el comportamiento del muestreo aleatorio.
Cómo enviar una verificación masiva de capacidades
El siguiente código envía una verificación masiva de capacidades y espera una respuesta. Para ver las opciones de formato y valor, consulta users.batchGet
.
Los números de teléfono deben tener el formato E.164 (por ejemplo, "+12223334444") y la lista debe contener entre 500 y 10,000 números de teléfono únicos.
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"}));
Respuesta de la verificación masiva de capacidades
Después de ejecutar una verificación masiva de capacidades, RBM muestra una respuesta en formato JSON.
{ "reachableUsers": [ "PHONE_NUMBER" ], "totalRandomSampleUserCount": "COUNT_OF_SAMPLE", "reachableRandomSampleUserCount": "REACHABLE_FROM_SAMPLE" }
Campo | Descripción |
---|---|
reachableUsers
|
Es una lista de usuarios accesibles en los operadores lanzados del agente. |
totalRandomSampleUserCount
|
Es el recuento de una muestra aleatoria de números especificados. Por lo general, alrededor del 75% de los números especificados. |
reachableRandomSampleUserCount
|
Es el recuento de números de la muestra aleatoria que son accesibles para la RBM en todos los operadores, independientemente de los operadores en los que se inicia el agente. Este recuento se usa para proporcionar una estimación aproximada de la cantidad total de usuarios alcanzables en todos los operadores. |
Herramienta: Secuencia de comandos de verificación masiva de capacidades
La secuencia de comandos de verificación de capacidades de Buck (Accede para descargar) realiza verificaciones de capacidades masivas con archivos CSV como formatos de entrada y salida. La secuencia de comandos analiza el archivo CSV de MSISDN y usa el SDK de RBM para verificar las capacidades de cada dispositivo de la lista.
Una máquina virtual de 2 CPUs y 4 GB de RAM que ejecuta la secuencia de comandos con 500 subprocesos puede alcanzar aproximadamente 1, 000 QPS, pero la QPS general depende de la máquina que se usa, el país de los dispositivos, la configuración regional de tu agente y el extremo de la API que se usa.
Requisitos previos
Antes de usar la herramienta para realizar una verificación masiva de capacidades, obtén lo siguiente:
- Es la ruta de acceso a un archivo CSV con MSISDN para realizar verificaciones de capacidades.
- La ruta de acceso a la clave de la cuenta de servicio de tu agente en tu máquina de desarrollo
Además, debes tener instalado el siguiente software en tu máquina de desarrollo:
- Apache Maven 3.3.9 o superior
- Java 8
Configurar
Para configurar tu máquina de desarrollo para una verificación masiva de capacidades, haz lo siguiente:
- Descarga y extrae la Secuencia de comandos de verificación de capacidades masivas (Accede para descargarla).
- Sigue los pasos que se indican en el archivo readme.
Ejecuta una verificación masiva de capacidades
Para ejecutar una verificación masiva, sigue estos pasos:
- En una terminal, navega al directorio raíz de la secuencia de comandos.
Ejecuta los siguientes comandos:
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"
Reemplaza las variables por los valores que identificaste.
Reemplazar Con Ejemplo AGENT_ID Es el ID del agente de RCS Business Messaging. welcome-bot
INPUT_FILE Es la ruta de acceso al archivo CSV de entrada. input.csv
OUTPUT_FILE Es la ruta de acceso al archivo CSV de salida. output.csv
NUM_OF_THREADS Es la cantidad de subprocesos que se dedicarán a las verificaciones de capacidades. 500
START_INDEX Opcional. Es el valor del archivo CSV con el que se deben comenzar a ejecutar las verificaciones. 5
END_INDEX Opcional. Es el valor del archivo CSV que se debe verificar después. 500
Cuando se complete la secuencia de comandos, abre el archivo CSV de salida para ver los resultados.