Funktionsprüfungen

Wenn Sie prüfen möchten, ob das Gerät eines Nutzers RCS-fähig ist und mit einem RBM-Agenten kommunizieren kann, können Sie die Gerätefunktionen anfordern. Wenn Sie wissen, welche Funktionen ein Gerät unterstützt, kann Ihr 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/MMS mit dem Nutzer kommunizieren.

Gerätefunktionen prüfen

Der folgende Code sendet eine Funktionsprüfung und wartet auf eine Antwort. 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&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);
});
Dieser Code ist ein Auszug aus einem RBM-Beispielagenten.

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

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-Beispielagenten.

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-Beispielagenten.

Antwort zu den Funktionen

Nachdem Sie eine Funktionsprüfung ausgeführt haben, gibt die RBM-Plattform eine JSON-formatierte Liste der Funktionen zurück, die vom angegebenen Gerät unterstützt werden.

{
  "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"
  ]
}

Die Anfrage gibt entweder eine Antwort oder einen Fehler zurück.

Eine erfolgreiche Antwort wird nur zurückgegeben, wenn die MSISDN (Telefonnummer) in den letzten 31 Tagen mit dem RCS-Dienst verbunden war. Das bedeutet, dass sich das Gerät des Nutzers innerhalb dieses Zeitraums bei unserem RCS-Server angemeldet hat. Online- und RCS-fähige Geräte melden sich durchschnittlich alle 1 bis 4 Stunden an.

Wenn ein Nutzer seine SIM-Karte in ein anderes RCS-fähiges Gerät einlegt, wird die vorherige Gerätezuordnung entfernt und eine neue erstellt. Dadurch werden die Gerätefunktionen im RCS-Dienst aktualisiert.

Wenn eine SIM-Karte in ein Gerät eingelegt wird, auf dem RCS von einem Mobilfunkanbieter oder Hersteller deaktiviert wurde, oder wenn die SIM-Karte nicht verwendet wird, versucht der RCS-Dienst bis zu 31 Tage lang, Nachrichten an das zuvor zugeordnete Gerät zu senden.

Folgende Ursachen können zu 404-Fehlern führen:

  • Der Nutzer ist über RBM nicht erreichbar, z. B. weil sein Gerät RCS nicht unterstützt.

  • Der Nutzer hat RCS, aber Ihr Agent wird nicht in seinem Mobilfunknetz gestartet.

Offline-Warteschlange

Nachrichten werden bis zu 31 Tage in die Warteschlange gestellt und zugestellt, wenn das Gerät wieder online ist. Das bedeutet, dass Nachrichten in der Warteschlange auch dann zugestellt werden, wenn ein Gerät längere Zeit (bis zu 31 Tage) offline ist, sofern die MSISDN in den letzten 31 Tagen mit dem RCS-Dienst verbunden war.

Bulk-Funktionsprüfungen

Wenn Sie die Anzahl der über RBM erreichbaren Nutzer schätzen möchten, führen Sie eine Bulk-Funktionsprüfung durch. Bei Bulk Prüfungen wird angegeben, ob eine Telefonnummer erreichbar ist, aber nicht, welche Funktionen von einer Telefonnummer unterstützt werden.

Für jede Bulk-Funktionsprüfung müssen Sie 500 bis 10.000 eindeutige Telefonnummern angeben. Wenn Sie mehr Nummern prüfen möchten, führen Sie mehrere Prüfungen durch. Sie können bis zu 600 Anrufe pro Minute tätigen. Verwenden Sie das Bulk-Funktionsprüfskript, um CSV Dateien als Eingabeformat zu verwenden. Bei Bulk-Prüfungen werden Daten aus dem Cache für Funktionen gelesen, der von Clients aktualisiert wird, die RCS organisch verwenden. Agents fordern die Funktionen der einzelnen Geräte nicht direkt an. Aus diesem Grund sind die Ergebnisse möglicherweise nicht aktuell.

Bei Bulk-Funktionsprüfungen wird eine Liste der Nummern zurückgegeben, die Ihr Agent bei Mobilfunkanbietern erreichen kann, bei denen er gestartet wurde. Außerdem werden Schätzungen für die Gesamtzahl der erreichbaren Nutzer bei allen Mobilfunkanbietern angegeben. Weitere Informationen finden Sie unter Antwort auf Bulk-Funktionsprüfung.

Gesamtzahl der erreichbaren Nutzer schätzen

Antworten auf Bulk-Prüfungen enthalten eine Liste der Telefonnummern, die bei den Mobilfunkanbietern, bei denen Ihr Agent gestartet wurde, sofort erreichbar sind (reachableUsers). Außerdem enthalten sie zwei Werte, mit denen Sie die Gesamtzahl der erreichbaren Nutzer bei allen Mobilfunkanbietern schätzen können.

Funktionsweise

Wenn Ihr Agent eine Bulk-Funktionsprüfung durchführt, wählt RBM zufällig etwa 75% dieser Nummern aus, um alle Mobilfunkanbieter zu prüfen (angegeben in totalRandomSampleUserCount). RBM gibt auch die Anzahl der über RBM erreichbaren Nummern aus der Zufallsstichprobe zurück, unabhängig vom Startstatus des Mobilfunkanbieters (reachableRandomSampleUserCount). Wenn Sie reachableRandomSampleUserCount durch totalRandomSampleUserCount teilen, können Sie den Prozentsatz der Nummern schätzen, die Ihr Agent erreichen könnte, wenn er bei allen Mobilfunkanbietern gestartet würde.

Wenn Sie beispielsweise 5.000 Telefonnummern in der Bulk-Funktionsprüfung angeben und RBM zufällig etwa 75% der angegebenen Nummern auswählt, kann totalRandomSampleUserCount 3750 sein. Wenn reachableRandomSampleUserCount 3000 ist, waren 80% der ausgewählten Nummern erreichbar.

Zufallsstichproben berücksichtigen

Tests mit Zufallsstichproben können zu Abweichungen bei den Prozentsätzen führen. Um die Auswirkungen von Zufallsstichproben zu berücksichtigen, führen Sie Bulk-Funktionsprüfungen mit größeren Mengen an Telefonnummern durch. Sie können auch mehrere Prüfungen mit denselben Nummern-Batches durchführen und dann die Ergebnisse mitteln, um das Verhalten bei Zufallsstichproben zu normalisieren.

Bulk-Funktionsprüfung senden

Der folgende Code sendet eine Bulk-Funktionsprüfung und wartet auf eine Antwort. Informationen zu Formatierungs- und Wertoptionen finden Sie unter users.batchGet.

Telefonnummern müssen im E.164-Format vorliegen (z. B. „+12223334444“) und die Liste muss 500 bis 10.000 eindeutige Telefonnummern enthalten.

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);
});
Dieser Code verwendet den RBM-Beispiel agenten.

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"));
Dieser Code verwendet den RBM-Beispiel agenten.

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'])
Dieser Code verwendet den RBM-Beispielagenten.

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"}));
Dieser Code verwendet den RBM-Beispiel agenten.

Antwort auf Bulk-Funktionsprüfung

Nachdem Sie eine Bulk-Funktionsprüfung ausgeführt haben, gibt RBM eine JSON-formatierte Antwort zurück.

{
  "reachableUsers": [
    "PHONE_NUMBER"
  ],
  "totalRandomSampleUserCount": "COUNT_OF_SAMPLE",
  "reachableRandomSampleUserCount": "REACHABLE_FROM_SAMPLE"
}
Feld Beschreibung
reachableUsers Eine Liste der erreichbaren Nutzer bei den Mobilfunkanbietern, bei denen der Agent gestartet wurde.
totalRandomSampleUserCount Die Anzahl einer Zufallsstichprobe der angegebenen Nummern. In der Regel etwa 75% der angegebenen Nummern.
reachableRandomSampleUserCount Die Anzahl der Nummern aus der Zufallsstichprobe, die bei allen Mobilfunkanbietern über RBM erreichbar sind, unabhängig davon, bei welchen Mobilfunkanbietern der Agent gestartet wurde. Mit dieser Anzahl wird eine grobe Schätzung der Gesamtzahl der erreichbaren Nutzer bei allen Mobilfunkanbietern erstellt.
reachableUsersMap Nur Ausgabe. Zuordnung der Mobilfunkanbieter-ID zu einer Liste der erreichbaren Nutzer bei diesem Mobilfunkanbieter. Dieses Feld wird nur für US-Telefonnummern ausgefüllt.

Tool: Bulk-Funktionsprüfskript

Mit dem Bulk-Funktionsprüfskript (Anmelden zum Herunterladen) werden Bulk-Funktionsprüfungen mit CSV-Dateien als Eingabe- und Ausgabeformat durchgeführt. Das Skript parst die CSV-Datei mit MSISDNs und prüft mit dem 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 QPS erreichen. Die Gesamt-QPS hängt jedoch von der verwendeten Maschine, dem Land der Geräte, der regionalen Konfiguration Ihres Agenten und dem verwendeten API-Endpunkt ab.

Vorbereitung

Bevor Sie das Tool verwenden, um eine Bulk-Funktionsprüfung durchzuführen, benötigen Sie Folgendes:

  • Den Pfad zu einer CSV-Datei mit MSISDNs, für die Funktionsprüfungen durchgeführt werden sollen
  • Der Pfad zum Dienstkontoschlüssel Ihres Agenten auf Ihrem Entwicklungscomputer

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

Einrichten

So richten Sie Ihren Entwicklungscomputer für eine Bulk-Funktionsprüfung ein:

  1. Laden Sie das Bulk-Funktionsprüfskript (Anmelden zum Herunterladen).
  2. Folgen Sie der Anleitung in der README-Datei.

Bulk-Funktionsprüfung ausführen

So führen Sie eine Bulk-Prüfung durch:

  1. Öffnen Sie ein Terminal und wechseln Sie zum Stammverzeichnis des Skripts.
  2. Führen Sie folgende Befehle aus:

    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"

    Ersetzen Sie die Variablen durch die von Ihnen ermittelten Werte.

    Ersetzen Mit Beispiel
    AGENT_ID ID des RCS for Business-Agenten. welcome-bot
    INPUT_FILE Der Pfad zur CSV-Eingabedatei. input.csv
    OUTPUT_FILE Der Pfad zur CSV-Ausgabedatei. output.csv
    NUM_OF_THREADS Die Anzahl der Threads, die für Funktionsprüfungen verwendet werden sollen. 500
    START_INDEX Optional. Der Wert in der CSV-Datei, mit dem die Prüfungen beginnen 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 CSV-Ausgabedatei, um die Ergebnisse zu sehen.