Vérifications des capacités

Pour vérifier si l'appareil d'un utilisateur est compatible avec RCS et qu'il est capable de communiquer avec un agent RBM, vous pouvez demander les fonctionnalités de l'appareil. Identifier les fonctionnalités compatibles avec un appareil, le cas échéant, permet à votre agent d'adapter la conversation aux capacités de l'appareil et d'éviter de présenter des interactions difficiles ou impossibles à réaliser pour l'utilisateur.

Si l'appareil d'un utilisateur n'est pas du tout capable de recevoir des messages RCS, vous pouvez communiquer avec l'utilisateur via d'autres services, par exemple par SMS.

Envoyer une vérification des capacités

Le code suivant envoie une vérification de capacité et attend une réponse. Pour en savoir plus sur les options de mise en forme et de valeur, consultez 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);
});
Ce code est extrait d'un exemple d'agent 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");
Ce code est extrait d'un exemple d'agent 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')
Ce code est extrait d'un exemple d'agent 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");
Ce code est extrait d'un exemple d'agent RBM.

Réponse de fonctionnalité

Après avoir exécuté une vérification des fonctionnalités, la plate-forme RBM renvoie une liste au format JSON des fonctionnalités compatibles avec l'appareil spécifié.

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

Si vous envoyez une vérification des fonctionnalités à un utilisateur non joignable par RBM (par exemple, si son appareil n'est pas compatible avec RCS), la plate-forme RBM renvoie une erreur 404.

Si vous envoyez une vérification des fonctionnalités à un utilisateur RCS sur un réseau où votre agent n'est pas encore lancé, la plate-forme RBM renvoie une erreur 403.

Vérifications groupées de fonctionnalités

Pour estimer le nombre d'utilisateurs accessibles via RBM, effectuez une vérification groupée des fonctionnalités. Les vérifications groupées indiquent si un numéro de téléphone est accessible, mais pas les fonctionnalités compatibles.

Vous pouvez spécifier jusqu'à 10 000 numéros de téléphone pour chaque vérification groupée de fonctionnalités. Pour en vérifier davantage, effectuez plusieurs vérifications. Utilisez le script de vérification groupée des fonctionnalités pour utiliser des fichiers CSV comme format d'entrée.

Les vérifications de fonctionnalités groupées sont limitées à 600 requêtes par minute (RPM).

Les vérifications groupées renvoient une liste des numéros auxquels votre agent peut joindre les transporteurs actuellement lancés, ainsi que des estimations du nombre total d'utilisateurs accessibles pour tous les opérateurs. Consultez la section Réponse à la vérification groupée des fonctionnalités.

Estimer le nombre total d'utilisateurs accessibles

Bien que les réponses aux vérifications groupées incluent une liste de numéros de téléphone joignables immédiatement par les transporteurs lancés par votre agent (reachableUsers), les réponses incluent également deux valeurs qui peuvent vous aider à estimer le nombre total d'utilisateurs accessibles parmi tous les opérateurs.

Lorsque votre agent effectue une vérification groupée des capacités de plus de 500 numéros de téléphone, RBM échantillonne de manière aléatoire environ 75% de ces numéros pour vérifier tous les transporteurs (indiqués dans totalRandomSampleUserCount). RBM renvoie également le nombre de nombres accessibles via RBM à partir de l'échantillon aléatoire, quel que soit l'état du lancement de l'opérateur (reachableRandomSampleUserCount). En divisant reachableRandomSampleUserCount par totalRandomSampleUserCount, vous pouvez estimer le pourcentage de chiffres que votre agent pourrait atteindre s'il était lancé sur tous les opérateurs.

Par exemple, si vous spécifiez 5 000 numéros de téléphone pour la vérification groupée des fonctionnalités et que RBM échantillonne de manière aléatoire environ 75% des numéros spécifiés, totalRandomSampleUserCount peut être 3750. Si reachableRandomSampleUserCount est défini sur 3000, cela signifie que 80% des nombres échantillonnés sont accessibles.

Tester des échantillons aléatoires peut entraîner des variations dans les pourcentages. Pour prendre en compte les effets de l'échantillonnage aléatoire, effectuez des vérifications de fonctionnalités groupées avec un plus grand nombre de numéros de téléphone. Vous pouvez également effectuer des vérifications avec les mêmes lots de nombres plusieurs fois, puis calculer la moyenne des résultats pour normaliser le comportement d'échantillonnage aléatoire.

Envoyer une vérification des fonctionnalités groupée

Le code suivant envoie une vérification groupée des fonctionnalités et attend une réponse. Pour en savoir plus sur les options de mise en forme et de valeur, consultez users.batchGet.

Les numéros de téléphone doivent être au format E.164. Exemple : "+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);
});
Ce code utilise l'exemple d'agent 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"));
Ce code utilise l'exemple d'agent 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'])
Ce code utilise l'exemple d'agent 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"}));
Ce code utilise l'exemple d'agent RBM.

Réponse à la vérification groupée des fonctionnalités

Après avoir effectué une vérification groupée des capacités, RBM renvoie une réponse au format JSON.

{
  "reachableUsers": [
    "PHONE_NUMBER"
  ],
  "totalRandomSampleUserCount": "COUNT_OF_SAMPLE",
  "reachableRandomSampleUserCount": "REACHABLE_FROM_SAMPLE"
}
Champ Description
reachableUsers Liste des utilisateurs joignables via les opérateurs actuellement lancés par l'agent.
totalRandomSampleUserCount Nombre d'un échantillon aléatoire de nombres spécifiés. Généralement, environ 75% des nombres spécifiés.
reachableRandomSampleUserCount Nombre de nombres de l'échantillon aléatoire accessibles via le RBM pour tous les opérateurs, quels que soient les transporteurs actuellement lancés par l'agent.

Outil: script de vérification groupée des fonctionnalités

Le Script de vérification des fonctionnalités Buck (Se connecter pour télécharger) effectue des vérifications des fonctionnalités groupées en utilisant des fichiers CSV comme formats d'entrée et de sortie. Le script analyse le fichier CSV de MSISDN et utilise le SDK RBM pour vérifier les fonctionnalités de chaque appareil répertorié.

Une machine virtuelle à 2 processeurs et 4 Go de RAM exécutant le script avec 500 threads peut atteindre environ 1 000 RPS, mais le RPS global dépend de la machine utilisée, du pays des appareils, de la configuration régionale de votre agent et du point de terminaison de l'API utilisé.

Conditions préalables

Avant d'utiliser l'outil pour effectuer une vérification groupée des fonctionnalités, munissez-vous des éléments suivants:

  • Chemin d'accès à un fichier CSV contenant des MSISDN sur lesquels effectuer des vérifications de capacité
  • Chemin d'accès à la clé de compte de service de votre agent sur votre ordinateur de développement

De plus, les logiciels suivants doivent être installés sur votre ordinateur de développement:

Configuration

  1. Sur votre ordinateur de développement, téléchargez et extrayez le script de vérification groupée des fonctionnalités (Java) Script de vérification groupée des fonctionnalités (connectez-vous pour télécharger).
  2. Accédez au répertoire racine du script.
  3. Renommez la clé du compte de service en "rbm-agent-service-account-credentials.json" et déplacez-la dans le répertoire "src/main/resources".

Effectuer une vérification groupée

  1. Dans un terminal, accédez au répertoire racine du script.
  2. Exécutez les commandes suivantes :

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

    Remplacez les variables par les valeurs que vous avez identifiées.

    Remplacez par Exemple
    INPUT_FILE Chemin d'accès au fichier CSV d'entrée. input.csv
    OUTPUT_FILE Chemin d'accès au fichier CSV de sortie. output.csv
    NUM_OF_THREADS Nombre de threads à dédier aux vérifications de capacité. 500
    START_INDEX Facultatif. Valeur du fichier CSV à partir de laquelle commencer à effectuer des vérifications. 5
    END_INDEX Facultatif. La valeur du fichier CSV à laquelle se terminer est vérifiée. 500
  3. Une fois l'exécution du script terminée, ouvrez le fichier CSV de sortie pour afficher les résultats.