Funktionsprüfungen

Sie können die Funktionen des Geräts anfordern, um zu prüfen, ob das Gerät eines Nutzers RCS-fähig ist und mit einem RCS-Agent kommunizieren kann. Wenn Sie herausfinden, welche Funktionen ein Gerät gegebenenfalls unterstützt, kann der Agent die Unterhaltung an die Funktionen des Geräts anpassen und Interaktionen vermeiden, die für den Nutzer schwierig oder unmöglich sind.

Wenn das Gerät eines Nutzers keine RCS-Nachrichten empfangen kann, können Sie über andere Dienste wie SMS mit dem Nutzer kommunizieren.

Funktionsprüfung senden

Mit dem folgenden Code wird eine Funktionsprüfung gesendet und es wird auf eine Antwort gewartet. Informationen zu Formatierungs- und Wertoptionen finden Sie unter 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);
});
Dieser Code ist ein Auszug aus einem RBM-Beispiel-Agent.

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");
Dieser Code ist ein Auszug aus einem RBM-Beispiel-Agent.

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')
Dieser Code ist ein Auszug aus einem RBM-Beispiel-Agent.

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");
Dieser Code ist ein Auszug aus einem RBM-Beispiel-Agent.

Funktionsantwort

Nach dem Ausführen einer Funktionsprüfung gibt die RBM-Plattform eine Liste der Funktionen im JSON-Format zurück, die vom angegebenen Gerät unterstützt werden.

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

Wenn Sie eine Funktionsprüfung an einen Nutzer senden, der nicht mit RBM erreichbar ist, weil sein Gerät z. B. RCS nicht unterstützt, gibt die RBM-Plattform den Fehler 404 zurück.

Wenn Sie eine Funktionsprüfung an einen RCS-Nutzer in einem Netzwerk senden, in dem Ihr Agent noch nicht gestartet wurde, gibt die RBM-Plattform den Fehler 403 zurück.

Bulk-Funktionsprüfungen

Führen Sie eine Bulk-Funktionsprüfung durch, um die Anzahl der über RBM erreichbaren Nutzer zu ermitteln. Bulk-Prüfungen geben an, ob eine Telefonnummer erreichbar ist, aber nicht, welche Funktionen von einer Telefonnummer unterstützt werden.

Pro Bulk-Funktionsprüfung können Sie bis zu 10.000 Telefonnummern angeben. Führen Sie mehrere Prüfungen durch, um mehr Zahlen zu prüfen. Nutzen Sie das Script für Bulk-Funktionsprüfung, um CSV-Dateien als Eingabeformat zu nutzen.

Bulk-Funktionsprüfungen umfassen maximal 600 Abfragen pro Minute.

Bulk-Funktionsprüfungen geben eine Liste der Nummern zurück, die Ihr Agent bei den aktuell aktivierten Mobilfunkanbietern erreichen kann, sowie Schätzungen für die Gesamtzahl der erreichbaren Nutzer bei allen Mobilfunkanbietern. Siehe Bulk-Antwort auf Funktionsprüfungen.

Gesamtzahl der erreichbaren Nutzer schätzen

Die Antworten der Bulk-Prüfung enthalten eine Liste von Telefonnummern, die bei den Mobilfunkanbietern Ihres Agents sofort erreichbar sind (reachableUsers). Die Antworten enthalten aber auch zwei Werte, mit denen Sie die Gesamtzahl der erreichbaren Nutzer bei allen Mobilfunkanbietern schätzen können.

Wenn Ihr Agent eine Bulk-Funktionsprüfung mit mehr als 500 Telefonnummern durchführt, werden etwa 75% dieser Zahlen von RBM nach dem Zufallsprinzip ausgewählt, um alle Mobilfunkanbieter zu prüfen (in totalRandomSampleUserCount erfasst). RBM gibt außerdem die Anzahl der RBM-erreichbaren Zahlen aus der Zufallsstichprobe zurück, unabhängig vom Startstatus des Mobilfunkanbieters (reachableRandomSampleUserCount). Wenn Sie reachableRandomSampleUserCount durch totalRandomSampleUserCount teilen, erhalten Sie eine Schätzung des Prozentsatzes der Nummern, die Ihr Agent erreichen könnte, wenn er aktiviert wäre.

Wenn Sie beispielsweise bei der Bulk-Funktionsprüfung 5.000 Telefonnummern angeben und RBM etwa 75% der angegebenen Nummern nach dem Zufallsprinzip ermittelt, kann totalRandomSampleUserCount den Wert 3750 haben. Wenn reachableRandomSampleUserCount den Wert 3000 hat, waren 80% der Stichprobenzahlen erreichbar.

Das Testen von Zufallsstichproben kann zu Abweichungen bei den Prozentsätzen führen. Führen Sie Bulk-Funktionsprüfungen mit größeren Telefonnummern durch, um die Auswirkungen von Zufallsstichproben zu berücksichtigen. Sie können auch Prüfungen mit denselben Batches von Zahlen mehrmals durchführen und dann den Durchschnitt der Ergebnisse ermitteln, um das Stichprobenverhalten zu normalisieren.

Bulk-Funktionsprüfung senden

Mit dem folgenden Code wird eine Bulk-Funktionsprüfung gesendet und es wird auf eine Antwort gewartet. Informationen zu Formatierungs- und Wertoptionen finden Sie unter users.batchGet.

Telefonnummern müssen das E.164-Format haben. Beispiel: „+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);
});
In diesem Code wird der RBM-Beispiel-Agent verwendet.

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"));
In diesem Code wird der RBM-Beispiel-Agent verwendet.

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'])
In diesem Code wird der RBM-Beispiel-Agent verwendet.

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"}));
In diesem Code wird der RBM-Beispiel-Agent verwendet.

Bulk-Antwort auf Funktionsprüfung

Nach einer Bulk-Funktionsprüfung gibt RBM eine Antwort im JSON-Format zurück.

{
  "reachableUsers": [
    "PHONE_NUMBER"
  ],
  "totalRandomSampleUserCount": "COUNT_OF_SAMPLE",
  "reachableRandomSampleUserCount": "REACHABLE_FROM_SAMPLE"
}
Feld Beschreibung
reachableUsers Eine Liste der erreichbaren Nutzer der aktuell aktivierten Mobilfunkanbieter des Agents.
totalRandomSampleUserCount Die Anzahl einer Zufallsstichprobe aus bestimmten Zahlen. Normalerweise etwa 75% der angegebenen Zahlen.
reachableRandomSampleUserCount Die Anzahl der Zahlen aus der Zufallsstichprobe, die bei allen Mobilfunkanbietern über RBM erreichbar sind, unabhängig von den aktuell aktivierten Mobilfunkanbietern des Agents.

Tool: Skript für die Bulk-Funktionsprüfung

Mit dem Script für Buck-Funktionsprüfung (Zum Herunterladen anmelden) werden Bulk-Funktionsprüfungen durchgeführt, wobei CSV-Dateien als Eingabe- und Ausgabeformate verwendet werden. Das Skript parst die CSV-Datei mit den MSISDNs und prüft mithilfe des RBM SDK die Funktionen aller aufgeführten Geräte.

Eine virtuelle Maschine mit 2 CPUs und 4 GB RAM, auf der das Skript mit 500 Threads ausgeführt wird, kann etwa 1.000 Abfragen pro Sekunde erreichen. Die Gesamtzahl der Abfragen pro Sekunde hängt jedoch von der verwendeten Maschine, dem Land der Geräte, der regionalen Konfiguration Ihres Agents und dem verwendeten API-Endpunkt ab.

Voraussetzungen

Bevor Sie mit dem Tool eine Bulk-Funktionsprüfung durchführen, rufen Sie Folgendes ab:

  • Der Pfad zu einer CSV-Datei mit MSISDNs, in der Funktionsprüfungen durchgeführt werden können
  • Der Pfad zum Dienstkontoschlüssel Ihres Agents auf Ihrem Entwicklungscomputer

Außerdem muss die folgende Software auf Ihrem Entwicklungscomputer installiert sein:

Einrichten

  1. Laden Sie auf Ihrem Entwicklungscomputer das Skript für Bulk-Funktionsprüfung (Zum Download anmelden).
  2. Gehen Sie zum Stammverzeichnis des Skripts.
  3. Benennen Sie den Dienstkontoschlüssel in "rbm-agent-service-account-credentials.json" um und verschieben Sie den Dienstkontoschlüssel in das Verzeichnis "src/main/resources".

Bulk-Prüfung ausführen

  1. Gehen Sie in einem Terminal zum Stammverzeichnis des Skripts.
  2. Führen Sie folgende Befehle aus:

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

    Ersetzen Sie Variablen durch Werte, die Sie ermittelt haben.

    Ersetzen Mit Beispiel
    INPUT_FILE Der Pfad zur eingegebenen CSV-Datei. input.csv
    OUTPUT_FILE Der Pfad zur Ausgabe-CSV-Datei. output.csv
    NUM_OF_THREADS Die Anzahl der Threads, die für Funktionsprüfungen vorgesehen sind. 500
    START_INDEX Optional. Der Wert in der CSV-Datei, für den Prüfungen ausgeführt werden sollen. 5
    END_INDEX Optional. Der Wert in der CSV-Datei, nach dem die Prüfungen beendet werden sollen. 500
  3. Wenn das Skript abgeschlossen ist, öffnen Sie die Ausgabe-CSV-Datei, um die Ergebnisse anzusehen.