O campo DCS do SMPP (e codificação de caracteres SMPP)

Esta página oferece informações sobre como codificar o campo DCS do SMPP.

Como o Ozeki SMS Gateway codifica o campo DCS do SMPP

Na maioria dos cenários, você não precisa configurar manualmente o campo DCS dos PDUs do SMPP. O Ozeki SMS Gateway faz isso por você. Para controlar como o Ozeki SMS Gateway faz a codificação, você pode configurar o alfabeto padrão no formulário de configuração do Cliente SMPP (Figura 1).

Figura 1 - Codificação DCS do SMPP

Neste formulário, você pode definir o conjunto de caracteres preferido ou solicitar que o Ozeki SMS Gateway use um valor fixo para o parâmetro DCS no PDU do SMS.

O que é o Campo DCS do SMPP?

O Esquema de Codificação de Dados (DCS) no SMPP (Short Message Peer-to-Peer Protocol) é um campo de 1 byte dentro dos PDUs (Unidades de Dados de Protocolo) do SMPP. Ele define como a carga útil da mensagem é codificada, permitindo a interpretação adequada pela entidade receptora. O DCS especifica:

  • Codificação de caracteres (por exemplo, GSM-7, UCS2, binário de 8 bits)
  • Classe da mensagem (por exemplo, SMS Flash)
  • Flags de compactação

Estrutura e Máscara de Bits do DCS

O DCS é uma máscara de bits onde cada grupo de bits tem um propósito específico:

Bits Descrição
7-6 Grupo de Codificação: Determina o tipo geral de codificação.
5-4 Alfabeto: Especifica o conjunto de caracteres (se Grupo de Codificação = 00).
3-0 Classe da Mensagem/Flags: Indica o tipo de mensagem (por exemplo, Flash) ou compactação.

Valores do Grupo de Codificação

Grupo de Codificação (Bits 7-6) Descrição
00 Codificação de Dados Geral (alfabeto especificado nos bits 5-4)
01 Reservado
10 Codificação UCS2 (16 bits)
11 Codificação de Dados/Classe de Mensagem (por exemplo, SMS Flash)

Exemplos de Valores DCS

DCS (Hex) Descrição Binário
0x00 Alfabeto Padrão GSM-7 00000000
0x04 Dados Binários de 8 bits 00000100
0x08 UCS2 (Unicode) 00001000
0x10 SMS Flash (GSM-7) 00010000
0xF0 SMS Flash (UCS2) 11110000

Exemplos de PDUs SMPP com DCS

Exemplo 1: SubmitSM com Codificação GSM-7 (DCS=0x00)

0000001D  // Comprimento do Comando (29 bytes)
00000004  // ID do Comando (SubmitSM)
00000001  // Número de Sequência
00        // TON da Origem
00        // NPI da Origem
736F7572636500  // Endereço de Origem ("source")
00        // TON do Destino
00        // NPI do Destino
36353433323100  // Endereço de Destino ("654321")
00        // Classe ESM
00        // ID do Protocolo
00        // Prioridade
00        // Horário de Entrega Agendada
00        // Período de Validade
00        // Entrega Registrada
00        // Substituir-se-Presente
00        // Codificação de Dados (DCS=0x00)
00        // ID Padrão de Mensagem SM
07        // Comprimento SM (7 septets)
C8329BFD06DDDF72  // Mensagem Curta ("Hello!")
    

Exemplo 2: SubmitSM com Codificação UCS2 (DCS=0x08)

00000024  // Comprimento do Comando (36 bytes)
00000004  // ID do Comando (SubmitSM)
00000002  // Número de Sequência
00        // TON da Origem
00        // NPI da Origem
736F7572636500  // Endereço de Origem ("source")
00        // TON do Destino
00        // NPI do Destino
36353433323100  // Endereço de Destino ("654321")
00        // Classe ESM
00        // ID do Protocolo
00        // Prioridade
00        // Horário de Entrega Agendada
00        // Período de Validade
00        // Entrega Registrada
00        // Substituir-se-Presente
08        // Codificação de Dados (DCS=0x08)
00        // ID Padrão de Mensagem SM
0C        // Comprimento SM (12 bytes)
00480065006C006C006F0021  // "Hello!" em UCS2
    

Exemplo 3: SMS Flash (DCS=0x10)

0000001D  // Comprimento do Comando (29 bytes)
00000004  // ID do Comando (SubmitSM)
00000003  // Número de Sequência
00        // TON da Origem
00        // NPI da Origem
736F7572636500  // Endereço de Origem ("source")
00        // TON do Destino
00        // NPI do Destino
36353433323100  // Endereço de Destino ("654321")
00        // Classe ESM
00        // ID do Protocolo
00        // Prioridade
00        // Horário de Entrega Agendada
00        // Período de Validade
00        // Entrega Registrada
00        // Substituir-se-Presente
10        // Codificação de Dados (DCS=0x10: SMS Flash)
00        // ID Padrão de Mensagem SM
07        // Comprimento SM (7 septets)
C8329BFD06DDDF72  // Mensagem Curta ("Hello!")
    

Conclusão

O campo DCS é crítico para garantir que as mensagens SMS sejam codificadas e exibidas corretamente. As implementações podem variar, então consulte a especificação SMPP (v3.4 ou v5.0) para detalhes precisos sobre a máscara de bits. O uso adequado do DCS evita erros de codificação e garante compatibilidade entre SMSCs.

More information