Per verificare se il dispositivo di un utente è compatibile con RCS e in grado di comunicare con un agente RBM, puoi richiedere le funzionalità del dispositivo. Identificare le funzionalità supportate da un dispositivo, se presenti, consente all'agente di personalizzare la conversazione in base alle funzionalità del dispositivo ed evitare di presentare interazioni difficili o impossibili da completare per l'utente.
Se il dispositivo di un utente non è in grado di ricevere messaggi RCS, puoi comunicare con l'utente tramite altri servizi, come SMS/MMS.
Controllare le funzionalità del dispositivo
Il seguente codice invia un controllo delle funzionalità e attende una risposta. Per le opzioni di formattazione e valore, consulta 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");
Risposta relativa alla funzionalità
Dopo aver eseguito un controllo delle funzionalità, la piattaforma RBM restituisce un elenco in formato JSON delle funzionalità supportate dal dispositivo specificato.
{ "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" ] }
La richiesta restituisce una risposta o un errore.
Viene restituita una risposta positiva solo se l'MSISDN (numero di telefono) si è collegato al servizio RCS negli ultimi 31 giorni. Ciò significa che il dispositivo dell'utente ha eseguito l'accesso al nostro server RCS entro questo periodo di tempo. I dispositivi online e con RCS attivo eseguono il check-in in media ogni 1-4 ore.
Se un utente sposta la scheda SIM su un altro dispositivo compatibile con RCS, l'associazione del dispositivo precedente viene rimossa e ne viene creata una nuova, aggiornando le funzionalità del dispositivo nel servizio RCS.
Se una scheda SIM viene inserita in un dispositivo in cui RCS è disattivato da un operatore o un produttore o se la scheda SIM rimane inutilizzata, il servizio RCS tenterà comunque di consegnare i messaggi al dispositivo associato in precedenza per un massimo di 31 giorni.
Ecco cosa causa gli errori 404:
L'utente non è raggiungibile tramite RBM, ad esempio se il suo dispositivo non supporta RCS.
L'utente ha RCS, ma il tuo agente non è stato lanciato sulla sua rete mobile.
Coda offline
I messaggi vengono messi in coda per un massimo di 31 giorni e vengono recapitati quando il dispositivo si riconnette a internet. Ciò significa che anche se un dispositivo diventa offline per un periodo prolungato (fino a 31 giorni), i messaggi in coda verranno comunque recapitati al momento della riconnessione, a condizione che l'MSISDN si sia connesso al servizio RCS negli ultimi 31 giorni.
Controlli delle funzionalità collettive
Per stimare il numero di utenti raggiungibili tramite RBM, esegui un controllo collettivo delle funzionalità. I controlli collettivi indicano se un numero di telefono è raggiungibile, ma non quali funzionalità supporta.
Per ogni verifica collettiva delle funzionalità, devi fornire da 500 a 10.000 numeri di telefono unici. Per controllare più numeri, esegui più controlli. Puoi effettuare fino a 600 chiamate al minuto. Utilizza lo script di controllo delle funzionalità collettive per utilizzare i file CSV come formato di input. I controlli collettivi vengono letti dalla cache delle funzionalità, che viene aggiornata in modo organico dai client che utilizzano RCS. Gli agenti non richiedono direttamente le funzionalità di ciascun dispositivo. Per questo motivo, i risultati potrebbero non essere aggiornati.
I controlli delle funzionalità collettive restituiscono un elenco dei numeri che l'agente può raggiungere sulle reti degli operatori in cui è stato lanciato, nonché stime del numero totale di utenti raggiungibili su tutte le reti. Consulta la risposta al controllo delle funzionalità collettive.
Stimare il numero totale di utenti raggiungibili
Sebbene le risposte dei controlli collettivi includano un elenco di numeri di telefono subito raggiungibili sui fornitori di servizi di telefonia lanciati dal tuo agente (reachableUsers
), includono anche due valori che possono aiutarti a stimare il numero totale di utenti raggiungibili su tutti i fornitori di servizi di telefonia.
Come funziona
Quando l'agente esegue un controllo collettivo delle funzionalità, RBM esegue un campionamento casuale del 75% circa di questi numeri per controllare tutti gli operatori (indicati in totalRandomSampleUserCount
). RBM restituisce anche il conteggio dei numeri raggiungibili da RBM dal campione casuale, indipendentemente dallo stato di lancio dell'operatore (reachableRandomSampleUserCount
). Dividendo reachableRandomSampleUserCount
per totalRandomSampleUserCount
, puoi stimare la percentuale di numeri che il tuo agente potrebbe raggiungere se fosse lanciato su tutti gli operatori.
Ad esempio, se specifichi 5000 numeri di telefono nel controllo delle funzionalità collettive e la RBM esegue il campionamento casuale di circa il 75% dei numeri specificati,totalRandomSampleUserCount
potrebbe essere 3750
. Se reachableRandomSampleUserCount
è 3000
, significa che l'80% dei numeri campionati era raggiungibile.
Tenere conto del campionamento casuale
Il test di campioni casuali può portare a variazioni nelle percentuali. Per tenere conto degli effetti del campionamento casuale, esegui controlli collettivi delle funzionalità con un numero maggiore di numeri di telefono. Puoi anche eseguire controlli con gli stessi batch di numeri più volte e poi calcolare la media dei risultati per normalizzare il comportamento del campionamento casuale.
Inviare un controllo delle funzionalità collettive
Il seguente codice invia un controllo delle funzionalità collettive e attende una risposta. Per le opzioni di formattazione e valore, consulta users.batchGet
.
I numeri di telefono devono essere nel formato E.164 (ad esempio "+12223334444") e l'elenco deve contenere da 500 a 10.000 numeri di telefono univoci.
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"}));
Risposta al controllo delle funzionalità collettive
Dopo aver eseguito un controllo delle funzionalità collettive, RBM restituisce una risposta in formato JSON.
{ "reachableUsers": [ "PHONE_NUMBER" ], "totalRandomSampleUserCount": "COUNT_OF_SAMPLE", "reachableRandomSampleUserCount": "REACHABLE_FROM_SAMPLE" }
Campo | Descrizione |
---|---|
reachableUsers
|
Un elenco di utenti raggiungibili sugli operatori avviati dall'agente. |
totalRandomSampleUserCount
|
Il conteggio di un campione casuale di numeri specificati. In genere circa il 75% dei numeri specificati. |
reachableRandomSampleUserCount
|
Il numero di numeri del campione random che sono raggiungibili tramite RBM su tutti gli operatori, indipendentemente da su quali operatori è stato lanciato l'agente. Questo conteggio viene utilizzato per fornire una stima approssimativa del numero totale di utenti raggiungibili su tutti gli operatori. |
Strumento: script di controllo delle funzionalità collettive
Lo script Bulk Capability Check Script (Accedi per scaricarlo) esegue controlli collettivi delle funzionalità utilizzando i file CSV come formati di input e output. Lo script analizza il file CSV degli MSISDN e utilizza l'SDK RBM per verificare le funzionalità di ogni dispositivo elencato.
Una macchina virtuale con 2 CPU e 4 GB di RAM che esegue lo script con 500 thread può raggiungere circa 1000 QPS, ma il QPS complessivo dipende dalla macchina utilizzata, dal paese dei dispositivi, dalla configurazione regionale dell'agente e dall'endpoint API utilizzato.
Prerequisiti
Prima di utilizzare lo strumento per eseguire un controllo collettivo delle funzionalità, ottieni quanto segue:
- Il percorso di un file CSV con gli MSISDN su cui eseguire i controlli delle funzionalità
- Il percorso della chiave dell'account di servizio dell'agente sulla tua macchina di sviluppo
Inoltre, è necessario installare il seguente software sulla macchina di sviluppo:
- Apache Maven 3.3.9 o versioni successive
- Java 8
Configura
Per configurare la macchina di sviluppo per un controllo collettivo delle funzionalità:
- Scarica ed estrai lo Script di controllo delle funzionalità collettive (accedi per scaricarlo).
- Segui i passaggi descritti nel file README.
Eseguire un controllo collettivo delle funzionalità
Per eseguire un controllo collettivo:
- In un terminale, vai alla directory principale dello script.
Esegui questi comandi:
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"
Sostituisci le variabili con i valori che hai identificato.
Sostituisci Con Esempio AGENT_ID ID dell'agente RCS Business Messaging. welcome-bot
INPUT_FILE Il percorso del file CSV di input. input.csv
OUTPUT_FILE Il percorso del file CSV di output. output.csv
NUM_OF_THREADS Il numero di thread da dedicare ai controlli delle funzionalità. 500
START_INDEX Facoltativo. Il valore nel file CSV rispetto al quale iniziare a eseguire i controlli. 5
END_INDEX Facoltativo. Il valore nel file CSV dopo il quale interrompere i controlli. 500
Al termine dello script, apri il file CSV di output per visualizzare i risultati.