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).
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.