Verificações de capacidade

Para verificar se o dispositivo de um usuário está ativado para RCS e pode se comunicar com um agente de RBM, solicite os recursos do dispositivo. Identificar quais recursos um dispositivo oferece suporte, se houver, permite que o agente adapte a conversa aos recursos do dispositivo e evite apresentar interações que sejam difíceis ou impossíveis de serem concluídas pelo usuário.

Se o dispositivo de um usuário não for capaz de receber mensagens RCS, você poderá se comunicar com ele usando outros serviços, como SMS/MMS.

Verificar os recursos do dispositivo

O código a seguir envia uma verificação de recursos e aguarda uma resposta. Para opções de formatação e valor, consulte 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);
});
Este código é um trecho de um agente de exemplo do RBM.

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");
Este código é um trecho de um agente de exemplo do 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')
Este código é um trecho de um agente de exemplo do 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");
Este código é um trecho de um agente de exemplo do RBM.

Resposta de capacidade

Depois de executar uma verificação de recursos, a plataforma RBM retorna uma lista formatada em JSON dos recursos com suporte ao dispositivo especificado.

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

A solicitação retorna uma resposta ou um erro.

Uma resposta bem-sucedida só será retornada se o MSISDN (número de telefone) tiver se conectado ao serviço RCS nos últimos 31 dias. Isso significa que o dispositivo do usuário fez check-in no nosso servidor RCS nesse período. Os dispositivos on-line e com RCS são verificados a cada 1 a 4 horas, em média.

Se um usuário mover o chip para um dispositivo compatível com RCS diferente, a associação anterior do dispositivo será removida e uma nova será criada, atualizando os recursos do dispositivo no serviço RCS.

Se um chip for colocado em um dispositivo em que o RCS estiver desativado por uma operadora ou fabricante ou se o chip permanecer sem uso, o serviço RCS ainda tentará enviar mensagens para o dispositivo associado anteriormente por até 31 dias.

Confira o que causa erros 404:

  • O usuário não pode ser alcançado pela RBM, por exemplo, se o dispositivo não oferecer suporte ao RCS.

  • O usuário tem RCS, mas seu agente não é iniciado na rede móvel.

Fila off-line

As mensagens ficam na fila por até 31 dias e são entregues quando o dispositivo volta a ficar on-line. Isso significa que, mesmo que um dispositivo fique off-line por um período prolongado (até 31 dias), as mensagens em fila ainda serão entregues após a reconexão, desde que o MSISDN tenha se conectado ao serviço RCS nos últimos 31 dias.

Verificações de capabilities em massa

Para estimar o número de usuários que podem ser alcançados pelo RBM, faça uma verificação de recursos em massa. As verificações em massa indicam se um número de telefone pode ser contatado, mas não quais recursos ele oferece.

Para cada verificação de recursos em massa, é necessário fornecer de 500 a 10.000 números de telefone exclusivos. Para verificar mais números, faça várias verificações. Você pode fazer até 600 chamadas por minuto. Use o script de verificação de recursos em massa para usar arquivos CSV como formato de entrada. Verificações em massa lidas do cache de recursos, que é atualizado pelos clientes de forma orgânica usando o RCS. Os agentes não solicitam os recursos de cada dispositivo diretamente. Por isso, os resultados podem não estar atualizados.

As verificações de recursos em massa retornam uma lista dos números que o agente pode alcançar nas operadoras em que ele é lançado, além de estimativas do número total de usuários alcançáveis em todas as operadoras. Consulte Resposta da verificação de recursos em massa.

Estimar o total de usuários alcançáveis

As respostas de verificação em massa incluem uma lista de números de telefone que podem ser contatados imediatamente nas operadoras lançadas do agente (reachableUsers). As respostas também incluem dois valores que podem ajudar a estimar o número total de usuários alcançáveis em todas as operadoras.

Como funciona

Quando o agente realiza uma verificação de recursos em massa, o RBM amostra aleatoriamente cerca de 75% desses números para verificar todas as operadoras (informados em totalRandomSampleUserCount). O RBM também retorna a contagem de números acessíveis pelo RBM da amostra aleatória, independente do status de lançamento da operadora (reachableRandomSampleUserCount). Ao dividir reachableRandomSampleUserCount por totalRandomSampleUserCount, é possível estimar a porcentagem de números que o agente pode alcançar se for lançado em todas as operadoras.

Por exemplo, se você especificar 5.000 números de telefone na verificação de capacidade em massa e a RBM amostrar aleatoriamente cerca de 75% dos números especificados, totalRandomSampleUserCount poderá ser 3750. Se reachableRandomSampleUserCount for 3000, 80% dos números amostrados foram alcançáveis.

Considerar a amostragem aleatória

O teste de amostras aleatórias pode gerar variações nos percentuais. Para considerar os efeitos da amostragem aleatória, execute verificações de recursos em massa com quantidades maiores de números de telefone. Você também pode realizar verificações com os mesmos lotes de números várias vezes e, em seguida, calcular a média dos resultados para normalizar o comportamento de amostragem aleatória.

Enviar uma verificação de recursos em massa

O código a seguir envia uma verificação de recursos em massa e aguarda uma resposta. Para opções de formatação e valor, consulte users.batchGet.

Os números de telefone precisam estar no formato E.164 (por exemplo, "+12223334444"), e a lista precisa conter de 500 a 10.000 números de telefone exclusivos.

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);
});
Este código usa o agente de amostra RBM.

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"));
Este código usa o agente de amostra 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'])
Este código usa o agente de exemplo do 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"}));
Este código usa o agente de amostra RBM.

Resposta da verificação de capacidade em massa

Depois de executar uma verificação de recursos em massa, o RBM retorna uma resposta formatada em JSON.

{
  "reachableUsers": [
    "PHONE_NUMBER"
  ],
  "totalRandomSampleUserCount": "COUNT_OF_SAMPLE",
  "reachableRandomSampleUserCount": "REACHABLE_FROM_SAMPLE"
}
Campo Descrição
reachableUsers Uma lista de usuários alcançáveis nas operadoras lançadas do agente.
totalRandomSampleUserCount A contagem de uma amostra aleatória de números especificados. Normalmente, cerca de 75% dos números especificados.
reachableRandomSampleUserCount A contagem de números da amostra aleatória que podem ser acessados pelo RBM em todas as operadoras, independentemente de em quais operadoras o agente é iniciado. Essa contagem é usada para fornecer uma estimativa aproximada do número total de usuários alcançáveis em todas as operadoras.

Ferramenta: script de verificação de recursos em massa

O do script de verificação de recursos (faça login para fazer o download) executa verificações de recursos em massa usando arquivos CSV como formatos de entrada e saída. O script analisa o arquivo CSV de MSISDNs e usa o SDK RBM para verificar os recursos de cada dispositivo listado.

Uma máquina virtual com 2 CPUs e 4 GB de RAM executando o script com 500 linhas de execução pode alcançar aproximadamente 1K QPS, mas o QPS geral depende da máquina usada, do país dos dispositivos, da configuração regional do agente e do endpoint da API usado.

Pré-requisitos

Antes de usar a ferramenta para realizar uma verificação de recursos em massa, faça o seguinte:

  • O caminho para um arquivo CSV com MSISDNs para realizar verificações de recursos em
  • O caminho para a chave da conta de serviço do agente na máquina de desenvolvimento

Além disso, você precisa ter o seguinte software instalado na sua máquina de desenvolvimento:

Configurar

Para configurar a máquina de desenvolvimento para uma verificação de recursos em massa, faça o seguinte:

  1. Faça o download e extraia o Roteiro de verificação de recursos em massa (faça login para fazer o download).
  2. Siga as etapas no README.

Executar uma verificação de recursos em massa

Para fazer uma verificação em massa, siga estas etapas:

  1. Em um terminal, navegue até o diretório raiz do script.
  2. Execute os comandos a seguir:

    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"

    Substitua as variáveis pelos valores que você identificou.

    Substituir Com Exemplo
    AGENT_ID ID do agente do RCS Business Messaging. welcome-bot
    INPUT_FILE O caminho para o arquivo CSV de entrada. input.csv
    OUTPUT_FILE O caminho para o arquivo CSV de saída. output.csv
    NUM_OF_THREADS O número de linhas de execução a serem dedicadas a verificações de recursos. 500
    START_INDEX Opcional. O valor no arquivo CSV para iniciar a execução de verificações. 5
    END_INDEX Opcional. O valor no arquivo CSV para finalizar as verificações. 500
  3. Quando o script for concluído, abra o arquivo CSV de saída para conferir os resultados.