SMPP bind usando bind_transceiver

Esta página é sobre o procedimento de bind SMPP. O bind SMPP é a solicitação de configuração de conexão no link SMPP. Este guia explica como um cliente SMPP se conecta a um servidor SMPP enviando uma solicitação de bind SMPP. Ele explica as diferenças entre os modos de conexão possíveis (transmissor, receptor e transceptor) e fornece insights sobre como conectar vários clientes usando a mesma conta de usuário SMPP.

O que é bind SMPP

O bind SMPP é o primeiro PDU enviado após o estabelecimento de um link SMPP. Softwares SMPP, como o gateway de SMS Ozeki, enviam o PDU de bind SMPP para fazer login em um SMSC. Um PDU de bind SMPP contém o nome de usuário e senha.

Como uma conexão SMPP é criada

Quando você configura uma conexão SMPP, as seguintes etapas são realizadas:

  • O cliente SMPP inicia a conexão
  • O link TCP/IP é conectado
  • Em conexões SMPPS, o handshake SSL é feito
  • O cliente define o número de sequência do PDU bind_transceiver como 0
  • O cliente coloca o nome de usuário SMPP no PDU bind_transceiver
  • O cliente coloca a senha SMPP no PDU bind_transceiver
  • O cliente envia o PDU bind_transceiver
  • O servidor verifica o nome de usuário (ID do sistema SMPP) e a senha
  • Se a autenticação estiver OK, o código de erro 0 é definido.
  • O servidor retorna o PDU bind_transceiver_resp.
  • O cliente SMPP está pronto para enviar SMS
Configuração de conexão SMPP explicada

A Figura 1 explica a configuração da conexão SMPP. Você pode ver que o cliente SMPP inicia a conexão e uma única transação é usada para autenticação. Você também pode ver que, após o login bem-sucedido, mensagens SMS podem ser enviadas usando o PDU submit_sm. E relatórios de entrega recebidos e mensagens SMS recebidas podem ser recebidos usando o PDU deliver_sm.

Figura 1 - Configuração de conexão SMPP explicada

Introdução às solicitações de bind SMPP

As solicitações de bind SMPP são usadas para configurar uma conexão SMPP. Elas são enviadas pelo cliente SMPP para o servidor SMPP quando o cliente SMPP tenta fazer login. Existem 3 tipos de solicitações de bind: SMPP bind_transmitter, SMPP bind_receiver, SMPP bind_transceiver. O SMPP bind_transmitter só pode ser usado para enviar mensagens SMS, o bind_receiver é apenas para receber mensagens SMS e o bind_transceiver pode ser usado para ambos. O SMPP bind_transceiver é o método mais comum. É popular porque permite que uma única conexão envie e receba mensagens SMS ao mesmo tempo.

O que é bind_transmitter

O PDU SMPP bind_transmitter é enviado pelas conexões do cliente SMPP para se conectar de uma forma dedicada ao envio de mensagens SMS. Esta conexão não pode ser usada para receber mensagens SMS. Este método de bind é raramente usado. A maioria dos clientes agora se conecta usando bind_transceiver.

O que é bind_receiver

O PDU SMPP bind_receiver é enviado pelas conexões do cliente SMPP para se conectar de uma forma dedicada ao recebimento de mensagens SMS. Esta conexão não pode ser usada para enviar mensagens SMS. Este método de bind é raramente usado. A maioria dos clientes agora se conecta usando bind_transceiver.

O que é bind_transceiver

O PDU SMPP bind_transceiver é enviado pelas conexões do cliente SMPP para se conectar de uma forma que permite tanto o envio quanto o recebimento de mensagens SMS. A maioria das conexões de clientes SMPP são configuradas usando este método de conexão.

Devo usar bind_transceiver, bind_transmitter ou bind_receiver?

Dos três modos de operação SMPP. O cliente SMPP (muitas vezes referido como ESME), deve escolher o modo bind_transceiver. Isso permite que a mesma conexão seja usada para enviar e receber mensagens SMS. Usar uma única conexão bind_transceiver é semelhante a ter uma conexão de transmissor e receptor sobre o mesmo link de rede e permite enviar e receber simultaneamente.

Tutorial em vídeo sobre configuração de conexão SMPP

O vídeo a seguir demonstra como você pode configurar uma conexão de cliente SMPP e como você pode enviar um login para o servidor SMPP usando o PDU bind_transceiver SMPP. O vídeo mostra a perspectiva do cliente SMPP.

Vídeo 1 - Como configurar uma conexão de cliente SMPP e enviar um login para o servidor SMPP (Tutorial em vídeo)

Como um cliente SMPP se conecta ao servidor SMPP?

Quando um cliente SMPP se conecta ao seu servidor SMPP, primeiro ele estabelece uma conexão TCP/IP. Se você usar um servidor SMPP seguro baseado em SMPPS, após o TCP/IP ser estabelecido, um handshake SSL ocorre. O próximo passo acontece na camada de aplicação, que é a camada SMPP. Na camada do protocolo SMPP, o primeiro PDU, que é enviado pelo cliente, é um bind_transceiver SMPP. Este PDU contém o nome de usuário (muitas vezes referido como ID do sistema SMPP) e a senha. O servidor verifica essas credenciais de login e decide se a conexão do cliente é aceita. Se os detalhes de login estiverem corretos, o servidor retorna uma resposta SMPP bind_transceiver_resp sem código de erro. (Figura 2)

Figura 2 - Como o cliente SMPP envia uma solicitação de bind

Exemplo de SMPP bind_transceiver

O seguinte trecho de log foi retirado do log da conexão do cliente SMPP Ozeki 10. Você pode ver uma configuração padrão de conexão SMPP. Se você ler o log, verá que primeiro o link de conexão TCP/IP é estabelecido e, em seguida, um PDU SMPP bind_transceiver é enviado. O servidor SMPP respondeu com uma resposta bind_transceiver_resp. O Ozeki 10 SMS Gateway aceitou esta resposta e escreveu "Login bem-sucedido." no log.

2021-04-06 12:06:09.082 INFO SMPP_client_1: [TCP client] Conectando a 192.168.93.113:9550.
2021-04-06 12:06:09.082 INFO SMPP_client_1: Conectado de 192.168.93.6:33444 para 192.168.93.113:9550.
2021-04-06 12:06:09.082 INFO SMPP_client_1: <- 00000030000000090000000000000001736D703100717765313233004F5A454B493130003401012B3030303030303000
2021-04-06 12:06:09.082 INFO SMPP_client_1: -> 0000001C8000000900000000000000014F5A454B4953595354454D00
2021-04-06 12:06:09.082 INFO SMPP_client_1: Login bem-sucedido.
2021-04-06 12:06:09.082 INFO SMPP_client_1: Conexão online.
Aceitando clientes SMPP no servidor SMPP

Quando você opera seu próprio servidor SMPP, você criará nomes de usuário e senhas SMPP, para aceitar conexões de clientes SMPP. Seus clientes inserirão seus nomes de usuário e senhas junto com o endereço IP e a porta SMPP do seu servidor SMPP na configuração do software cliente SMPP deles. Depois disso, o software deles se conectará ao seu sistema.

Alguns servidores SMPP permitirão apenas uma única conexão com o mesmo nome de usuário e senha. O servidor SMPP Ozeki 10 permite que seus clientes se conectem de vários computadores simultaneamente. Alternativamente, eles podem criar vários links TCP a partir do mesmo computador e se conectar com o mesmo nome de usuário e senha. Isso é chamado de vinculação múltipla SMPP.

Como usar SMPP bind para conectar vários clientes SMPP

A Figura 3 mostra como um único cliente chamado Cliente "A" pode se conectar ao mesmo servidor SMPP com um único nome de usuário e senha usando várias solicitações de vinculação SMPP. Nesta configuração, o cliente pode enviar um PDU bind_transceiver em todos os seus links.

Figura 3 - Múltiplos clientes conectando-se ao servidor SMPP

Tutorial em vídeo sobre como aceitar múltiplas conexões de clientes

O seguinte vídeo mostra como você pode configurar o gateway SMS Ozeki 10 com uma única conta de usuário SMPP para aceitar múltiplas conexões de clientes. Resumindo, nenhuma configuração especial é necessária. Assim que você atribuir o nome de usuário e senha à conexão, vários clientes podem se conectar. Neste caso, recomendamos que você habilite o registro de baixo nível SMPP (como demonstrado no vídeo) para garantir que você saiba onde cada uma de suas mensagens SMPP terminará. O log de baixo nível SMPP mostrará qual cliente SMPP enviou um determinado PDU SMPP e você verá a resposta correspondente do servidor SMPP.

Vídeo 2 - Como aceitar múltiplas conexões de clientes (Tutorial em vídeo)

Depurando solicitações bind_transceiver recebidas

Se você examinar o log de comunicação SMPP cuidadosamente, notará que as solicitações de vinculação SMPP recebidas não estão presentes no log de um usuário SMPP específico. Isso ocorre porque, quando esse PDU chega, nenhum usuário está atribuído à conexão ainda. Para ver as solicitações de vinculação SMPP, você precisa abrir o formulário de configuração do servidor SMPP. Isso pode ser feito clicando no botão Avançado na barra de ferramentas e, em seguida, selecionando a página Detalhes do servidor SMPP (Figura 4).

Figura 4 - Abrindo a página de detalhes do servidor SMPP

Na página de detalhes do SMPP, você verá imediatamente os PDUs de vinculação SMPP recebidos. Vale mencionar que os PDUs de resposta não são listados aqui. Para ser mais preciso, eles só são listados aqui para tentativas de login malsucedidas. Uma vez que um usuário SMPP foi identificado com sucesso com um nome de usuário e senha, os logs das conexões de clientes SMPP correspondentes são gravados no log desse usuário. (Figura 5)

Figura 5 - Log de PDU de vinculação SMPP

Quem está conectado ao meu servidor SMPP?

Se você abrir a página de detalhes de um usuário SMPP, poderá ver os clientes atualmente conectados na seção Clientes conectados do painel esquerdo. Aqui você verá os endpoints TCP/IP remotos para cada cliente. Esses endpoints são usados para identificar as entradas de log para um determinado cliente no log de comunicação SMPP de baixo nível, que você pode encontrar no painel esquerdo (Figura 6).

Figura 6 - Lista de clientes SMPP conectados

Como as mensagens recebidas são tratadas?

Se algum dos clientes SMPP enviar um SMS usando a solicitação SMPP submit_sm, seu relatório de envio SMPP correspondente (chamado submit_sm_resp) será retornado na mesma conexão. Isso permite que os clientes SMPP processem os relatórios de envio de SMS corretamente, mesmo que estejam em computadores diferentes.

Para mensagens SMS recebidas e relatórios de entrega, o gateway Ozeki 10 SMS realiza balanceamento de carga entre os clientes conectados. Isso significa que, à medida que a capacidade se torna disponível em uma conexão de cliente SMPP recebida, as mensagens SMS recebidas e os relatórios de entrega serão enviados para esse cliente. Se nenhum cliente estiver conectado ou se as conexões dos clientes estiverem ocupadas enviando ou recebendo mensagens SMS, as mensagens SMS recebidas serão armazenadas na pasta de entrada.

Observe que os relatórios de entrega recebidos não serão correspondidos aos clientes de envio. Isso porque, quando um relatório de entrega chega, pode ser que o cliente que enviou não esteja conectado ou esteja conectado a partir de um endereço diferente. Lembre-se de que os relatórios de entrega podem chegar muito tempo depois. Isso significa que é possível que um relatório de entrega seja retornado em um link diferente daquele em que o SMS foi enviado. Isso só acontece se vários clientes estiverem conectados usando o mesmo nome de usuário e senha SMPP. Para evitar essa situação, você pode criar várias contas de usuário SMPP para seu cliente e informá-los de que devem se conectar com um link para cada conta de usuário.

More information