Verificaciones de capacidades

Para verificar si el dispositivo de un usuario está habilitado con RCS y puede comunicarse con un agente de RBM, puedes solicitar las capacidades del dispositivo. Identificar las funciones que admite un dispositivo, si corresponde, permite que tu agente adapte la conversación a las capacidades de este y evita presentar interacciones que son 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.

Envía una verificación de capacidades

El siguiente código envía una verificación de capacidad 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" \
-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('../libs/rbm_api_helper');

// Send a capability check to the device
rbmApiHelper.checkCapability('+12223334444', function(response) {
   // Print capabilities of the device
   console.log(response);
});
Este código es un extracto de un agente de muestra de RBM.

Java

import com.google.rbm.samples.lib.RbmApiHelper;
…

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

// Check the capabilities of the device
boolean capability = rbmApiHelper.getCapability("+12223334444");
Este código es un extracto de un agente de muestra de 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')
Este código es un extracto de un agente de muestra de 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");
Este código es un extracto de un agente de muestra de RBM.

Respuesta de capacidad

Después de ejecutar una verificación de capacidad, la plataforma de RBM muestra una lista de funciones en formato JSON 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",
  ]
}

Si envías una verificación de capacidad a un usuario al que RBM no puede acceder (por ejemplo, si su dispositivo no es compatible con RCS), la plataforma de RBM mostrará un error 404.

Si envías una verificación de capacidad a un usuario de RCS en una red en la que aún no se inició tu agente, la plataforma de RBM muestra un error 403.

Verificaciones masivas de capacidades

Para estimar la cantidad de usuarios accesibles de RBM, realiza una verificación masiva de capacidades. Las verificaciones masivas indican si se puede acceder a un número de teléfono, pero no si es compatible con un número de teléfono.

Puedes especificar hasta 10,000 números de teléfono por verificación masiva de capacidades. Para verificar más números, realiza varias verificaciones. Usa la secuencia de comandos de verificación de capacidades masivas para usar archivos CSV como formato de entrada.

Las verificaciones de capacidad masivas tienen un máximo de 600 consultas por minuto (QPM).

Las verificaciones de capacidad masiva muestran una lista de los números que puede alcanzar tu agente en los proveedores que se lanzan en la actualidad, así como estimaciones de la cantidad total de usuarios accesibles en todos los operadores. Consulta Respuesta de verificación masiva de capacidades.

Estimar el total de usuarios a los que puedes acceder

Si bien las respuestas de verificación masiva incluyen una lista de números de teléfono a los que se puede acceder de inmediato en los proveedores lanzados de tu agente (reachableUsers), las respuestas también incluyen dos valores que pueden ayudarte a estimar la cantidad total de usuarios a los que puedes acceder en todos los operadores.

Cuando tu agente realiza una verificación de capacidad masiva de más de 500 números de teléfono, RBM toma muestras aleatorias de alrededor del 75% de esos números para verificar todos los operadores (informados en totalRandomSampleUserCount). RBM también muestra el recuento de números accesibles de la muestra aleatoria, independientemente del estado de lanzamiento del proveedor (reachableRandomSampleUserCount). Si divides reachableRandomSampleUserCount por totalRandomSampleUserCount, puedes estimar el porcentaje de números que podría alcanzar 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 capacidad masiva y RBM realiza muestras aleatorias de alrededor del 75% de los números especificados, totalRandomSampleUserCount puede ser 3750. Si reachableRandomSampleUserCount es 3000, entonces, se pudo alcanzar el 80% de los números de la muestra.

Probar muestras aleatorias puede generar variaciones en los porcentajes. Para tener en cuenta los efectos del muestreo aleatorio, ejecuta verificaciones de capacidad masiva con cantidades mayores de números de teléfono. También puedes realizar verificaciones con los mismos lotes de números varias veces y, luego, promediar los resultados para normalizar el comportamiento de muestreo aleatorio.

Envía 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”.

cURL

curl -X POST "https://REGION-rcsbusinessmessaging.googleapis.com/v1/users:batchGet \
-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('../libs/rbm_api_helper');

// 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);
});
Este código usa el agente de muestra de RBM.

Java

import com.google.rbm.samples.lib.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"));
Este código usa el agente de muestra de 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'])
Este código usa el agente de muestra de 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"}));
Este código usa el agente de muestra de RBM.

Respuesta de 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 Una lista de usuarios a los que se puede acceder en los proveedores lanzados actualmente del agente
totalRandomSampleUserCount 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 a los que se puede acceder con RBM en todos los operadores, independientemente de los que el agente haya lanzado en ese momento.

Herramienta: Secuencia de comandos de verificación masiva de capacidades

La secuencia de comandos dede Buck Capability Check (Acceder para descargar)realiza verificaciones de funciones masivas con archivos CSV como formatos de entrada y salida. La secuencia de comandos analiza el archivo CSV de las MSISDN y usa el SDK de RBM para verificar las capacidades de todos los dispositivos de la lista.

Una máquina virtual de 2 CPU y 4 GB de RAM que ejecuta la secuencia de comandos con 500 subprocesos puede alcanzar aproximadamente 1, 000 QPS, pero las QPS generales dependen de la máquina que se use, el país de los dispositivos, la configuración regional del agente y el extremo de API utilizado.

Requisitos previos

Antes de usar la herramienta para realizar una verificación masiva de capacidades, obtén lo siguiente:

  • La ruta de acceso a un archivo CSV con MSISDN para realizar verificaciones de capacidad en
  • La ruta de acceso a la clave de la cuenta de servicio del agente en tu máquina de desarrollo

Además, necesitas instalar el siguiente software en tu máquina de desarrollo:

Configurar

  1. En tu máquina de desarrollo, descarga y extrae la secuencia de comandos de verificación de capacidades masivas (Java) Secuencia de comandos de verificación de capacidad masiva (Accede para descargar).
  2. Navega al directorio raíz de la secuencia de comandos.
  3. Cambia el nombre de la clave de la cuenta de servicio por “rbm-agent-service-account-credentials.json” y mueve la clave de la cuenta de servicio al directorio “src/main/resources”.

Ejecutar una verificación masiva

  1. En una terminal, navega al directorio raíz de la secuencia de comandos.
  2. Ejecute los siguientes comandos:

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

    Reemplaza las variables por los valores que identificaste.

    Reemplazar Con Ejemplo
    INPUT_FILE La ruta de acceso al archivo CSV de entrada. input.csv
    OUTPUT_FILE 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 capacidad. 500
    START_INDEX Opcional. Es el valor en el archivo CSV con el que se deben comenzar a ejecutar comprobaciones. 5
    END_INDEX Opcional. El valor en el archivo CSV para finalizar las verificaciones después. 500
  3. Cuando se complete la secuencia de comandos, abre el archivo CSV de salida para ver los resultados.