El campo DCS de SMPP (y la codificación de caracteres en SMPP)
Esta página ofrece información sobre cómo codificar el campo DCS de SMPP.
¿Cómo codifica Ozeki SMS Gateway el campo DCS de SMPP?
En la mayoría de los escenarios, no es necesario configurar manualmente el campo DCS de las PDUs de SMPP. Ozeki SMS Gateway lo hace por ti. Para controlar cómo Ozeki SMS Gateway realiza la codificación, puedes configurar el alfabeto predeterminado en el formulario de configuración del cliente SMPP (Figura 1).
En este formulario, puedes establecer el conjunto de caracteres preferido o pedirle a Ozeki SMS Gateway que use un valor fijo para el parámetro DCS en la PDU del SMS.
¿Qué es el campo DCS de SMPP?
El Esquema de Codificación de Datos (DCS) en SMPP (Protocolo de Mensajes Cortos entre Pares) es un campo de 1 byte dentro de las PDUs (Unidades de Datos de Protocolo) de SMPP. Define cómo se codifica la carga útil del mensaje, permitiendo su correcta interpretación por parte del receptor. El DCS especifica:
- Codificación de caracteres (ej. GSM-7, UCS2, binario de 8 bits)
- Clase de mensaje (ej. SMS Flash)
- Banderas de compresión
Estructura y máscara de bits del DCS
El DCS es una máscara de bits donde cada grupo de bits tiene un propósito específico:
Bits | Descripción |
---|---|
7-6 | Grupo de Codificación: Determina el tipo de codificación general. |
5-4 | Alfabeto: Especifica el conjunto de caracteres (si Grupo de Codificación = 00). |
3-0 | Clase de Mensaje/Banderas: Indica el tipo de mensaje (ej. Flash) o compresión. |
Valores del Grupo de Codificación
Grupo de Codificación (Bits 7-6) | Descripción |
---|---|
00 | Codificación de Datos General (alfabeto especificado en bits 5-4) |
01 | Reservado |
10 | Codificación UCS2 (16 bits) |
11 | Codificación de Datos/Clase de Mensaje (ej. SMS Flash) |
Ejemplos de valores DCS
DCS (Hex) | Descripción | Binario |
---|---|---|
0x00 | Alfabeto GSM-7 Predeterminado | 00000000 |
0x04 | Datos Binarios de 8 bits | 00000100 |
0x08 | UCS2 (Unicode) | 00001000 |
0x10 | SMS Flash (GSM-7) | 00010000 |
0xF0 | SMS Flash (UCS2) | 11110000 |
Ejemplos de PDUs de SMPP con DCS
Ejemplo 1: SubmitSM con codificación GSM-7 (DCS=0x00)
0000001D // Longitud del Comando (29 bytes) 00000004 // ID del Comando (SubmitSM) 00000001 // Número de Secuencia 00 // TON de Origen 00 // NPI de Origen 736F7572636500 // Dirección de Origen ("source") 00 // TON de Destino 00 // NPI de Destino 36353433323100 // Dirección de Destino ("654321") 00 // Clase ESM 00 // ID de Protocolo 00 // Prioridad 00 // Tiempo de Entrega Programado 00 // Período de Validez 00 // Entrega Registrada 00 // Reemplazar-si-Presente 00 // Codificación de Datos (DCS=0x00) 00 // ID de Mensaje Predeterminado SM 07 // Longitud SM (7 septetos) C8329BFD06DDDF72 // Mensaje Corto ("Hello!")
Ejemplo 2: SubmitSM con codificación UCS2 (DCS=0x08)
00000024 // Longitud del Comando (36 bytes) 00000004 // ID del Comando (SubmitSM) 00000002 // Número de Secuencia 00 // TON de Origen 00 // NPI de Origen 736F7572636500 // Dirección de Origen ("source") 00 // TON de Destino 00 // NPI de Destino 36353433323100 // Dirección de Destino ("654321") 00 // Clase ESM 00 // ID de Protocolo 00 // Prioridad 00 // Tiempo de Entrega Programado 00 // Período de Validez 00 // Entrega Registrada 00 // Reemplazar-si-Presente 08 // Codificación de Datos (DCS=0x08) 00 // ID de Mensaje Predeterminado SM 0C // Longitud SM (12 bytes) 00480065006C006C006F0021 // "Hello!" en UCS2
Ejemplo 3: SMS Flash (DCS=0x10)
0000001D // Longitud del Comando (29 bytes) 00000004 // ID del Comando (SubmitSM) 00000003 // Número de Secuencia 00 // TON de Origen 00 // NPI de Origen 736F7572636500 // Dirección de Origen ("source") 00 // TON de Destino 00 // NPI de Destino 36353433323100 // Dirección de Destino ("654321") 00 // Clase ESM 00 // ID de Protocolo 00 // Prioridad 00 // Tiempo de Entrega Programado 00 // Período de Validez 00 // Entrega Registrada 00 // Reemplazar-si-Presente 10 // Codificación de Datos (DCS=0x10: SMS Flash) 00 // ID de Mensaje Predeterminado SM 07 // Longitud SM (7 septetos) C8329BFD06DDDF72 // Mensaje Corto ("Hello!")
Conclusión
El campo DCS es crítico para garantizar que los mensajes SMS se codifiquen y muestren correctamente. Las implementaciones pueden variar, por lo que se recomienda consultar la especificación SMPP (v3.4 o v5.0) para detalles precisos sobre la máscara de bits. El uso adecuado del DCS evita errores de codificación y garantiza compatibilidad entre SMSCs.
More information
- Cómo configurar el campo Tipo de Servicio SMPP
- Cómo configurar los campos de Número de Teléfono SMPP
- Cómo configurar el campo Clase ESM de SMPP
- Cómo configurar el campo PID de SMPP
- Cómo configurar el campo de Prioridad SMPP
- Cómo configurar el campo de Tiempo Programado SMPP
- Cómo configurar el campo de Período de Validez SMPP
- Cómo configurar el campo de Entrega Registrada SMPP
- Cómo configurar el campo Reemplazar si Presente SMPP
- Cómo configurar el campo sm_default_msg_id
- Cómo configurar el campo DCS de SMPP
- Cómo calcular el campo de Longitud SM de SMPP
- Cómo introducir datos en el campo SM SMPP