Roteamento de SMS

Com o Ozeki SMS Gateway, você pode configurar múltiplas conexões de rede móvel para enviar mensagens SMS. Para controlar qual conexão é usada para enviar um SMS para a rede móvel, você pode usar o roteamento de SMS.

Introdução ao roteamento de SMS

Este documento fornece uma introdução ao roteamento de SMS. Ele aborda os conceitos básicos do procedimento de roteamento de SMS no Ozeki SMS Gateway. Você aprenderá sobre a tabela de roteamento; descobrirá o que é uma regra de roteamento e verá exemplos simples de roteamento. Exemplos mais avançados e mais informações estão disponíveis no guia de roteamento de SMS para provedores de serviços SMS, no guia sobre como copiar e encaminhar mensagens SMS para múltiplos destinos e no guia de roteamento de SMS de menor custo. Se desejar modificar os números de telefone e o texto das mensagens durante a leitura, visite a página sobre como modificar uma mensagem SMS em tempo real.

O que é roteamento de SMS?

O roteamento de SMS é o procedimento usado pelo Ozeki SMS Gateway para decidir para onde uma mensagem de texto SMS deve ser encaminhada. O roteamento de SMS é baseado em correspondência de padrões e permite a modificação de mensagens. Soluções de roteamento de SMS são usadas por provedores de serviços SMS e grandes organizações.

O que é roteamento de SMS?
Figura 1 - O que é roteamento de SMS?

Quais tipos de roteamento de SMS existem? Como configurar o roteamento de SMS (Lista rápida de instruções)

Para configurar o roteamento de SMS, você precisa iniciar o Aplicativo Ozeki SMS e abrir a tabela de roteamento clicando no botão "Rotas" na barra de ferramentas.

tabela de roteamento na tela de roteamento
Figura 2 - Tabela de roteamento no gateway de SMS.

Para configurar o roteamento de SMS, siga estes passos rápidos:

  1. Abra o Ozeki SMS Gateway no desktop do Windows
  2. Faça login com o nome de usuário "admin"
  3. Abra o aplicativo SMS Gateway
  4. Encontre a barra de ferramentas no topo
  5. Encontre o botão "Rotas" na barra de ferramentas
  6. Clique no botão "Rotas" na barra de ferramentas
  7. Isso abrirá a tabela de roteamento
  8. Clique em criar nova rota para criar uma rota de SMS
  9. Preencha o formulário de criação de rota
  10. Clique em OK para criar a nova rota
  11. Use as setas vermelhas e verdes para posicionar a regra
O que o roteamento de SMS faz?

O roteamento atribui um "Para conexão" à mensagem. Em outras palavras, ele seleciona a conexão de destino para onde a mensagem deve ser encaminhada. No Ozeki SMS Gateway, tudo é uma "Conexão". Uma conexão é um ponto final de mensagens, que pode enviar e receber uma mensagem. Embora as conexões sejam exibidas em grupos (ex.: usuários de SMS, links de rede móvel, etc), elas são ainda conexões idênticas quando se trata de roteamento.

O roteamento de SMS é o procedimento usado para decidir para onde uma mensagem SMS deve ser encaminhada. Este procedimento é executado quando uma mensagem de entrada é enviada para a tabela de roteamento (Figura 2). A tabela de roteamento executa o algoritmo de roteamento e retorna uma mensagem de saída, que é idêntica à mensagem de entrada, mas tem um "Para conexão" atribuído a ela. Após o procedimento de roteamento, a mensagem de saída é encaminhada para a "Para conexão".

Figura 3 - A rota de SMS seleciona o destino

O que é uma regra de roteamento de SMS?

A tabela de roteamento de SMS consiste em regras de roteamento. Uma regra de roteamento tem uma condição de correspondência, um conjunto de comandos de modificação e um destino. Quando um SMS é enviado, ele é primeiro passado para a tabela de roteamento, onde é comparado com as regras de roteamento. Se uma regra "corresponder" ao SMS, ela executa os modificadores e encaminha a mensagem para o destino. A correspondência é feita com base em condições configuradas, como conexão do remetente, número de telefone do remetente, texto da mensagem, período de serviço, etc. As regras de modificação só são aplicadas se o SMS passar nas condições de correspondência. Se as condições de correspondência não forem atendidas, a próxima regra de roteamento é testada na tabela de roteamento.

Figura 4 - O que é uma regra de SMS

Como as regras de roteamento de SMS são executadas?

Para cada mensagem enviada, a tabela de roteamento é executada. A execução é feita de cima para baixo: Se uma regra corresponder ao destino ("Para conexão") é atribuída e o roteamento para. A mensagem é encaminhada para o destino selecionado.

Figura 5 - Ordem de execução das regras de SMS

Como a tabela de roteamento é exibida?

Se você abrir a tela inicial, verá duas visualizações da tabela de roteamento principal. No topo, você encontrará uma tabela filtrada, que exibe apenas as "rotas de entrada", e na parte inferior, você verá uma tabela filtrada que exibe apenas as "rotas de saída". Na prática, chamamos uma rota de rota de entrada se a "De conexão" for classificada como uma conexão de rede SMS. Todo o resto é uma rota de saída.

Figura 6 - Tabela de roteamento de SMS filtrada para a tela inicial

Essa distinção é feita porque a maioria dos usuários pensa em termos de rotas de entrada e saída. Embora não haja diferença entre essas regras no sistema de roteamento Ozeki, é melhor apresentar a tabela de roteamento dessa forma. As pessoas entendem melhor se as rotas forem organizadas por sua conexão de remetente ("De conexão") em grupos e apenas esses grupos filtrados forem apresentados. Se você quiser se tornar um especialista em roteamento, sempre use a tabela de roteamento principal em vez das visualizações filtradas, pois isso lhe dará uma melhor noção do que acontece com uma determinada mensagem.

tabela de roteamento na tela inicial
Figura 7 - Tabela de roteamento na tela inicial.

Como posso criar uma regra de roteamento?

Se você quiser criar uma regra de roteamento, abra a tabela de roteamento principal clicando no botão "Rotas" na barra de ferramentas e clique em "Criar nova Rota". Isso abrirá o formulário de criação de rota. Observe as abas "Corresponder" e "Modificar" neste formulário. Essas são as páginas onde você pode definir condições de correspondência e comandos de modificação.

clique em 'criar nova rota'
Figura 8 - Clique em "Criar nova Rota"

E se eu não vir minha conexão?

Grandes sistemas de SMS podem ter um número muito grande de conexões. Para simplificar a vida, as conexões "De" e "Para" oferecidas são filtradas por padrão. Conexões raramente usadas são ocultadas. Isso pode levar ao fato de que você não encontra sua conexão na lista.

Se você não vir a conexão com a qual deseja trabalhar na lista "De" ou "Para", basta clicar no botão Engrenagem na frente da caixa de combinação que contém a lista de conexões. Isso abrirá um diálogo, onde você pode selecionar outros tipos de conexão para serem apresentados na lista.

clique na engrenagem para encontrar conexões adicionais
Figura 9 - Clique na Engrenagem para encontrar conexões adicionais

Roteamento de SMS padrão (Exemplo 1)

Antes de mergulharmos em configurações de roteamento complexas, é uma boa ideia entender a tabela de roteamento padrão. Na tabela de roteamento padrão, você verá duas rotas: out_sms e in_admin. A rota out_sms é usada para encaminhar mensagens dos chamados "usuários de SMS" para "conexões SMS". "Conexões SMS" são um grupo de conexões usadas para conectar seu sistema à rede móvel. A rota in_admin é uma regra criada automaticamente para encaminhar uma cópia de cada SMS recebido para o usuário admin. Você pode notar o modo "Cópia" na tabela de roteamento. Mais informações sobre como enviar uma cópia de um SMS para um determinado usuário podem ser encontradas no guia como encaminhar um SMS recebido para múltiplos destinos.

Para entender como a rota out_sms funciona, criamos duas conexões de cliente SMPP para dois operadores de rede móvel diferentes. Chamaremos essas conexões de SMPP_client_1 e SMPP_client_2. (Neste exemplo, não modificaremos a tabela de roteamento padrão). Enviaremos um SMS do usuário admin, clicando no botão "Novo" na barra de ferramentas. Nesta configuração, um SMS do admin será enviado por SMPP_client_1 ou SMPP_client_2. O sistema selecionará aleatoriamente a primeira conexão SMS disponível para a mensagem de saída. A rota usada é a rota "out_sms", que encaminha SMS de "Qualquer_Usuário_SMS" para "Qualquer_Conexão_SMS".

rota padrão destacada na tela da tabela de roteamento
Figura 10 - Rota padrão destacada na tela da tabela de roteamento.

Quando a rota padrão é usada, o SMS enviado pelo admin é encaminhado pela rota chamada "out_sms"

Figura 11 - Selecionar aleatoriamente a rede móvel

Vale mencionar que essa seleção aleatória de rota não é exatamente aleatória. Na verdade, um algoritmo de balanceamento de carga distribui a carga entre as conexões de rede móvel com capacidade livre, levando em conta a capacidade previamente medida de cada conexão.

Roteamento de SMS por origem (Exemplo 2)

O próximo exemplo mostra como o roteamento de SMS pode ser usado para atribuir um destino fixo a uma origem específica. Em nosso exemplo, queremos que todas as mensagens SMS enviadas por admin sejam enviadas pelo SMPP_Client_1. Essa configuração é muito usada, pois muitas vezes é necessário que um usuário sempre utilize uma conexão específica de rede móvel. Para alcançar isso, podemos criar uma rota simples de origem para destino.

Para demonstrar como essa configuração funciona, podemos usar o mesmo número de conexões do Exemplo 1. Podemos adicionar uma rota extra à nossa tabela de roteamento que encaminhará SMS de admin para SMPP_Client_1. A rota garantirá que um SMS de admin seja forçado a sair pelo SMPP_client_1. Nesta configuração, o SMPP_client_2 não será usado.

rota de sms indo para +3611111111 na tela da tabela de roteamento
Figura 12 - Rota forçando SMS de admin para SMPP client 1.

sms de admin é sempre encaminhado para smpp_client_1
Figura 13 - SMS de admin é sempre encaminhado para SMPP_client_1

Roteamento de SMS por prefixo de número de telefone (Exemplo 3)

O próximo exemplo demonstra como o roteamento de SMS pode ser feito com base em prefixos de números de telefone. Esta é uma tarefa comum, pois muitas vezes você deseja enviar certas mensagens pertencentes a uma rede identificada por um prefixo de número de telefone para uma determinada conexão. Por exemplo, se você deseja rotear SMS destinados à Hungria, você encaminharia mensagens SMS enviadas para o prefixo +36... para a rede Vodafone Hungria. Você também pode configurar uma segunda rota para prefixos +44... para a rede T-Mobile no Reino Unido.

A figura a seguir demonstra como você pode definir um prefixo de número de telefone como uma condição de correspondência. O exemplo usa uma expressão regular do tipo PCRE. Essa expressão é usada para corresponder ao endereço do destinatário ("Para número de telefone") para decidir se a rota deve ser aplicada ou não.

criar nova regra de roteamento para roteamento de SMS por prefixo de número de telefone
Figura 14 - Criar nova regra de roteamento para roteamento de SMS por prefixo de número de telefone

definir prefixo para roteamento de SMS
Figura 15 - Definir prefixo para roteamento de SMS

'+36.*' passa pela rota 'hungria' para smpp_client_1
Figura 16 - "+36.*" passa pela rota "Hungria" para SMPP_client_1

Roteamento de SMS por correspondência completa de número de telefone (Exemplo 4)

Se você possui um conjunto de números de telefone, pode atribuir um número único aos seus clientes ou usuários. Neste caso, você desejará rotear mensagens SMS recebidas enviadas para um número de telefone específico para um usuário específico. O Exemplo 4 mostra a configuração de roteamento para atingir esse objetivo.

Neste exemplo, adicionamos dois usuários HTTP: http_user_1 e http_user_2 que receberão as mensagens recebidas. Um será atribuído ao número de telefone +3633333333, o outro será atribuído ao número de telefone +3644444444. Agora criamos duas rotas com correspondência completa de número de telefone. Essas rotas encaminharão qualquer SMS enviado para esses números de telefone para os usuários apropriados.

rota de sms enviados para +3633333333 na tela da tabela de roteamento
Figura 17 - Rota de SMS enviados para +3633333333 na tela da tabela de roteamento.

Como você pode ver na figura acima, o campo "De" está definido como "Any_SMS_Connection". Isso ocorre porque queremos que todas as mensagens SMS enviadas para o número de telefone +3633333333 sejam roteadas para http_user_1, independentemente de qual conexão SMS elas chegam. O destino ("Para") para esta rota é fixado como http_user_1. Se você olhar para a figura abaixo, verá que, neste caso, especificamos o número de telefone completo na condição de correspondência do destinatário. Observe que não colocamos a barra (/) antes e depois do número de telefone. Isso ocorre porque não realizamos uma correspondência de padrão de expressão regular neste caso. Simplesmente fazemos uma comparação rigorosa do número de telefone.

definir número de telefone completo para correspondência com +3633333333
Figura 18 - Definir número de telefone completo para correspondência com +3633333333.

A configuração para o usuário HTTP 2 é muito semelhante. A diferença está no campo de destino ("Para") e no número de telefone colocado na caixa de grupo "Endereço para" na página da guia "Correspondência" da regra de roteamento. Você também pode notar que essas duas rotas serão chamadas de route_3 e route_4.

rota de sms enviados para +3644444444 na tela da tabela de roteamento
Figura 19 - Rota de SMS enviados para +3644444444 na tela da tabela de roteamento.

Se você trabalha com muitas rotas, é uma boa ideia adicionar nomes significativos às rotas, para que você possa identificá-las rapidamente. Existem nomes melhores do que os padrões route_3 ou route_4 usados neste exemplo.

definir número de telefone completo para correspondência com +3644444444
Figura 20 - Definir número de telefone completo para correspondência com +3644444444.

sms recebidos enviados para +363333333 são roteados para http_user_1
Figura 21 - SMS recebidos enviados para +363333333 são roteados para http_user_1

Roteamento de SMS por palavras-chave (Exemplo 5)

O próximo exemplo trata do roteamento de SMS com base em palavras-chave no texto da mensagem. Esse recurso é frequentemente usado em jogos de quiz, votação por SMS ou serviços de busca de conteúdo baseados em palavras-chave. Neste exemplo, roteamos qualquer SMS vindo de Any_SMS_Connection contendo a palavra "vote" para o usuário HTTP 2.

rotear qualquer sms contendo a palavra 'vote' para o usuário http 2
Figura 22 - Rotear qualquer SMS contendo a palavra "vote" para o usuário HTTP 2.

Ao olhar para a próxima figura, você pode notar que usamos correspondência de expressão regular. Neste padrão de expressão regular (também chamado de padrão regex), colocamos um padrão .* antes e depois da palavra. Isso informa ao mecanismo regex que a palavra-chave "vote" pode estar em qualquer lugar nas mensagens. Esta condição corresponderá aos seguintes textos de SMS: "Olá, aqui está meu voto: vermelho" ou "vote vermelho" ou "Eu não estou votando".

Você também pode considerar inserir o modificador de não diferenciação de maiúsculas e minúsculas chamado "i", que significa ignorar maiúsculas e minúsculas, se você espera que a palavra-chave seja enviada em letras minúsculas ou maiúsculas. O padrão "/.*vote.*/i" corresponderia a "vote", "Vote", "VOTE" ou "vOtE".

definir prefixo de texto de mensagem para receber sms para o usuário http 2
Figura 23 - Definir prefixo de texto de mensagem para receber SMS para o usuário HTTP 2.

Roteamento de SMS por correspondência de texto e período de tempo (Exemplo 6)

É útil saber que também existe uma condição de correspondência de período de serviço disponível, que pode ser usada para limitar o tempo de vida desta regra. Esta combinação: correspondência de palavra-chave de texto e período de serviço são frequentemente usados juntos para serviços de conteúdo SMS que operam por um determinado período de tempo. Neste exemplo, roteamos qualquer SMS vindo de Any_SMS_Connection contendo a palavra "vote" entre 2021-04-01 00:000:00 e 2021-04-30 24:00:00 para o usuário HTTP 2.

Figura 24 - Roteie qualquer SMS contendo a palavra "vote" no período de serviço 2021-04-01 00:000:00 e 2021-04-30 24:00:00 para o usuário HTTP 2.

definir prefixo de texto de mensagem para receber SMS para o usuário HTTP 2
Figura 25 - Definir prefixo de texto de mensagem para receber SMS para o usuário HTTP 2.

definir formulário de período de serviço para receber SMS para o usuário HTTP 2
Figura 26 - Definir formulário de período de serviço para receber SMS para o usuário HTTP 2.

Como testar o roteamento de SMS

Se você deseja testar o roteamento de SMS sem realmente encaminhar mensagens SMS para a rede móvel, você pode configurar uma conexão simulador SMPP. Um simulador SMPP pode atuar como um servidor SMPP virtual, que aceita mensagens SMS enviadas através de um link SMPP e pode simular relatórios de entrega de SMS.

Leitura adicional sobre comandos de modificação de SMS

Os exemplos acima demonstraram condições de correspondência de SMS. Outra forte característica é chamada de modificação de SMS durante o roteamento. A ideia é que uma vez que um SMS é correspondido a uma regra, o SMS pode ser modificado. Este recurso é muito útil, porque não só permite que você tenha controle sobre todas as mensagens que passam pelo seu sistema, mas você também pode corrigir certos erros, como numeração de destino incorreta, ou você pode colocar na lista negra certos conteúdos inaceitáveis. Os seguintes documentos fornecem informações sobre como modificar o conteúdo de SMS.

Perguntas frequentes O que é um sistema de SMS bidirecional?

Um sistema de SMS que pode enviar e receber mensagens SMS.

No mundo do SMS, um sistema bidirecional permite que você tenha uma conversa com usuários móveis. Você pode enviar mensagens para eles, e eles podem responder de volta para você através do mesmo sistema.

Quando um usuário móvel responde ao meu SMS, posso saber a qual mensagem ele originalmente está respondendo?

Não, isso não é possível.

Imagine uma conversa onde você só pode enviar uma frase por vez, sem memória do que veio antes. Esse é o mundo do SMS!

  • Conexões Perdidas: O protocolo SMS não tem um recurso integrado como um "ID de conversa" para vincular mensagens. Cada texto é tratado como uma mensagem única e independente.
  • Pistas de Palavras-Chave: A única maneira de potencialmente conectar respostas a mensagens anteriores é incluindo palavras-chave no próprio texto da mensagem. Essas palavras-chave atuariam como pontos de referência para vincular as mensagens.
  • Solução Alternativa de Código Longo (apenas SMS IP): Para quem usa conexões SMS IP com um provedor de serviços que suporta códigos longos (números de remetente especiais com mais dígitos), há um truque potencial. Você pode codificar dígitos extras dentro do número do remetente para identificar a mensagem original. No entanto, isso depende de condições específicas e capacidades do provedor de serviços.
Embora o SMS seja uma ótima maneira de enviar mensagens rápidas, acompanhar threads de conversa pode ser um desafio. Se você precisa de uma plataforma que lembre mensagens passadas, o SMS pode não ser a melhor escolha. Para comunicação por SMS, considere usar palavras-chave ou explore códigos longos (se aplicável) para melhorar as chances de associar respostas à mensagem original.

Como posso enviar mensagens SMS de forma confiável para diferentes destinos globais?

Para confiabilidade ideal, considere configurar várias conexões de provedores de serviços SMS dentro do seu sistema. Cada conexão terá um nome designado para fácil referência na tabela de roteamento de saída.

A tabela de roteamento de saída atua como seu centro de controle. Aqui, você define rotas de saída especificando qual conexão irá lidar com cada mensagem.

Para aumentar a confiabilidade, utilize pelo menos duas conexões. Uma combinação, como uma conexão SMS IP e uma conexão de modem GSM, oferece uma solução poderosa. Configure o modem GSM como um backup para a conexão SMS IP na tabela de roteamento de saída.

Se a conexão SMS IP falhar, a tabela de roteamento de saída automaticamente redireciona as mensagens para o modem GSM. Isso garante a entrega ininterrupta de mensagens, maximizando a confiabilidade do sistema.

Existe alguma maneira de saber se uma mensagem SMS recebida é uma resposta à minha mensagem anterior?

Infelizmente, a própria tecnologia SMS não oferece uma maneira integrada de identificar se uma mensagem recebida é uma resposta a um SMS enviado anteriormente. Isso torna difícil vincular respostas de forma definitiva.

Aqui estão algumas abordagens que você pode considerar:

  • Identificador no Texto da Mensagem: Inclua um identificador único na mensagem original. Isso permite que você possa relacioná-la com a resposta, mas requer cooperação do usuário e não é infalível.
  • Correspondência de Timestamp: Compare os horários das mensagens enviadas e recebidas. Embora útil, esse método pode ser impreciso devido a possíveis atrasos.
  • Palavras-chave nas Respostas: Incentive os usuários a incluir uma palavra-chave específica em suas respostas. Você pode configurar uma rota de entrada baseada nessa palavra-chave (Condição #3: texto da mensagem) para criar uma associação aproximada com a mensagem original. No entanto, a adesão do usuário é crucial para essa abordagem.
Embora esses métodos tenham limitações, eles podem fornecer algumas pistas sobre possíveis respostas.

Posso alterar os parâmetros da mensagem durante o roteamento?

Sim, o roteamento de SMS oferece um superpoder surpreendente: a capacidade de editar números de telefone e o conteúdo da mensagem durante o processo de entrega! Isso abre portas para algumas aplicações criativas:

  • Aprimoramento de Números: Precisa adicionar um prefixo ou sufixo a um número de telefone? O roteamento pode lidar com isso, garantindo que as chamadas cheguem ao destino correto.
  • Publicidade Direcionada: Quer adicionar uma mensagem promocional aos textos enviados? O roteamento permite integrar essas propagandas de forma transparente ao seu fluxo de comunicação existente.
Essa funcionalidade adiciona flexibilidade à sua estratégia de SMS, permitindo que você otimize números de telefone e até adicione um toque de magia de marketing às suas mensagens.