Wenn Sie prüfen möchten, ob das Gerät eines Nutzers RCS-fähig ist und mit einem RBM-Agent kommunizieren kann, können Sie die Funktionen des Geräts 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 überhaupt keine RCS-Nachrichten empfangen kann, können Sie über andere Dienste wie SMS/MMS mit dem Nutzer kommunizieren.
Gerätefunktionen prüfen
Mit dem folgenden Code wird eine Funktionsprüfung gesendet und 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&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");
Antwort auf die Funktion
Nachdem Sie eine Funktionsprüfung durchgefü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) innerhalb der letzten 31 Tage mit dem RCS-Dienst verbunden war. Das bedeutet, dass sich das Gerät des Nutzers in diesem Zeitraum 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 die SIM-Karte nicht verwendet wird, versucht der RCS-Dienst weiterhin, Nachrichten bis zu 31 Tage lang an das zuvor verknüpfte Gerät zu senden.
Ursachen für 404-Fehler:
Der Nutzer ist über RBM nicht erreichbar, z. B. wenn 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 lang in die Warteschlange gestellt und zugestellt, wenn das Gerät wieder online ist. Das bedeutet, dass auch wenn ein Gerät für einen längeren Zeitraum (bis zu 31 Tage) offline ist, in der Warteschlange befindliche Nachrichten bei der erneuten Verbindung zugestellt werden, 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 eine Telefonnummer unterstützt.
Für jede Bulk-Funktionsprüfung müssen Sie 500 bis 10.000 eindeutige Telefonnummern angeben. Wenn Sie weitere 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 Capability Check Script, um CSV-Dateien als Eingabeformat zu verwenden. Bulk-Prüfungen werden aus dem Capabilities-Cache gelesen, der von Clients organisch über RCS aktualisiert wird. Agents fragen 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 eingeführt wird, sowie Schätzungen für die Gesamtzahl der erreichbaren Nutzer bei allen Mobilfunkanbietern. Weitere Informationen finden Sie unter Antwort auf die Bulk-Funktionsprüfung.
Gesamtzahl der erreichbaren Nutzer schätzen
Die Antworten für die Bulk-Prüfung enthalten eine Liste von Telefonnummern, die über die eingeführten Mobilfunkanbieter Ihres Agents sofort erreichbar sind (reachableUsers). Die Antworten enthalten außerdem 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 (in totalRandomSampleUserCount angegeben). RBM gibt auch die Anzahl der über RBM erreichbaren Nummern aus der Zufallsstichprobe zurück, unabhängig vom Aktivierungsstatus des Mobilfunkanbieters (reachableRandomSampleUserCount). Wenn Sie reachableRandomSampleUserCount durch totalRandomSampleUserCount dividieren, können Sie den Prozentsatz der Nummern schätzen, die Ihr Agent erreichen könnte, wenn er bei allen Mobilfunkanbietern aktiviert wäre.
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 gleich 3000 ist, waren 80% der Stichprobennummern erreichbar.
Zufallsstichproben berücksichtigen
Wenn Sie Zufallsstichproben testen, kann es zu Abweichungen bei den Prozentzahlen kommen. Um die Auswirkungen der Zufallsstichprobe zu berücksichtigen, sollten Sie Bulk-Funktionsprüfungen mit einer größeren Anzahl von Telefonnummern durchführen. Sie können auch mehrere Prüfungen mit denselben Nummern-Batches durchführen und dann die Ergebnisse mitteln, um das Verhalten der Zufallsstichprobe zu normalisieren.
Bulk-Funktionsprüfung senden
Mit dem folgenden Code wird eine Bulk-Funktionsprüfung gesendet und auf eine Antwort gewartet. Informationen zu Formatierungs- und Wertoptionen finden Sie unter users.batchGet.
Telefonnummern müssen dem Format E.164 entsprechen (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); });
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"}));
Antwort auf die Anfrage zur Bulk-Bestätigung
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 eingeführten Mobilfunkanbietern des Agents. |
totalRandomSampleUserCount
|
Die Anzahl einer zufälligen Stichprobe der angegebenen Zahlen. In der Regel etwa 75% der angegebenen Zahlen. |
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 wird. Anhand dieser Zahl wird eine grobe Schätzung der Gesamtzahl der erreichbaren Nutzer bei allen Mobilfunkanbietern erstellt. |
reachableUsersMap
|
Nur Ausgabe. Zuordnung der Transportunternehmen-ID zu einer Liste der erreichbaren Nutzer bei diesem Transportunternehmen. Dieses Feld wird nur für US-amerikanische Telefonnummern ausgefüllt. |
Tool: Bulk Capability Check Script
Das Bulk Capability Check Script (Anmelden zum Herunterladen) führt Bulk-Capability-Prüfungen durch und verwendet CSV-Dateien als Ein- und Ausgabeformat. Das Skript parst die CSV-Datei mit den MSISDNs und verwendet das RBM SDK, um die Funktionen jedes aufgeführten Geräts zu prüfen.
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:
- Der Pfad zu einer CSV-Datei mit MSISDNs, für die die Funktionen geprüft werden sollen
- Der Pfad zum Dienstkontoschlüssel Ihres Agents auf Ihrem Entwicklungscomputer
Außerdem muss die folgende Software auf Ihrem Entwicklungscomputer installiert sein:
- Apache Maven 3.3.9 oder höher
- Java 8
Einrichten
So richten Sie Ihren Entwicklungscomputer für eine Bulk-Funktionsprüfung ein:
- Laden Sie das Script zur Prüfung der Bulk-Funktion (zum Herunterladen anmelden).
- Folgen Sie der Anleitung in der README-Datei.
Bulk-Funktionsprüfung durchführen
So führen Sie eine Bulk-Prüfung durch:
- Wechseln Sie in einem Terminal zum Stammverzeichnis des Skripts.
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-Agents. welcome-botINPUT_FILE Der Pfad zur CSV-Eingabedatei. input.csvOUTPUT_FILE Der Pfad zur CSV-Ausgabedatei. output.csvNUM_OF_THREADS Die Anzahl der Threads, die für die Überprüfung der Funktionen verwendet werden sollen. 500START_INDEX Optional. Der Wert in der CSV-Datei, mit dem die Prüfungen beginnen. 5END_INDEX Optional. Der Wert in der CSV-Datei, nach dem die Prüfungen beendet werden sollen. 500Wenn das Skript abgeschlossen ist, öffnen Sie die CSV-Ausgabedatei, um die Ergebnisse anzusehen.