Cómo configurar los campos de número de teléfono en SMPP
SMPP (Short Message Peer-to-Peer) es un protocolo utilizado por sistemas de telecomunicaciones para intercambiar mensajes SMS entre SMSC (Centros de Servicio de Mensajes Cortos) y ESMEs (Entidades Externas de Mensajería Corta). Un componente clave del protocolo es cómo codifica los números de teléfono (direcciones de origen y destino) en la PDU (Unidad de Datos de Protocolo) de SMPP.
Parámetros de dirección en SMPP
Los campos clave utilizados para definir un número de teléfono en SMPP son:
- addr_ton (Tipo de Número)
- addr_npi (Indicador de Plan de Numeración)
- address_range o source_addr/destination_addr
Tipo de Número (TON)
Este campo define el formato del número. Los valores comunes incluyen:
Valor | TON | Descripción |
---|---|---|
0 | Desconocido | Formato desconocido |
1 | Internacional | El número incluye código de país |
2 | Nacional | Formato de número local |
5 | Alfanumérico | Se utiliza para nombres de remitente como "MiEmpresa" |
Indicador de Plan de Numeración (NPI)
Este campo indica el formato de numeración. Valores comunes:
Valor | NPI | Descripción |
---|---|---|
0 | Desconocido | Formato desconocido |
1 | ISDN (E.164) | Formato estándar internacional de número de teléfono |
3 | Datos | Red de datos (X.121) |
Codificación de una dirección
Al codificar un número de teléfono en SMPP, el sistema envía el número como una cadena terminada en nulo en ASCII, acompañada de los valores TON y NPI apropiados.
Ejemplo:
Número de teléfono: +14155552671 TON: 1 (Internacional) NPI: 1 (ISDN/E.164) Codificado como: 31 34 31 35 35 35 35 32 36 37 31 00 (ASCII "14155552671" + NULL)
Ejemplo de PDU SMPP
A continuación se muestra un ejemplo de una PDU submit_sm que incluye un número de destino:
0000003F // Longitud del comando (63 bytes) 00000004 // ID del comando (submit_sm) 00000000 // Estado del comando 00000001 // Número de secuencia 74657374 // service_type: "test" 01 // source_addr_ton: Internacional 01 // source_addr_npi: ISDN 31323334 // source_addr: "1234" (ASCII) 00 // Terminador NULL 01 // dest_addr_ton: Internacional 01 // dest_addr_npi: ISDN 2B393138 // destination_addr: "+918123456789" (ASCII, sin +) 31323334 35363738 3900 // Terminador NULL 00 // esm_class 00 // protocol_id 00 // priority_flag 00 // schedule_delivery_time (nulo) 00 // validity_period (nulo) 00 // registered_delivery 00 // replace_if_present_flag 00 // data_coding (GSM por defecto) 00 // sm_default_msg_id 0D // sm_length (13) 48656C6C // Mensaje corto ("Hello, World!") 6F2C2057 6F726C64 2100
Ejemplo de remitente alfanumérico
Cuando se utiliza un nombre de remitente alfanumérico (común para SMS masivos unidireccionales):
Remitente: "MiMarca" TON: 5 (Alfanumérico) NPI: 0 (Desconocido o irrelevante) Codificado: Cadena ASCII "MiMarca" + terminador NULL
Notas importantes
- Los ID de remitente alfanuméricos deben tener 11 caracteres o menos.
- Las direcciones alfanuméricas no son compatibles en todos los países.
- Siempre coincida TON y NPI correctamente con su formato de dirección para evitar problemas de enrutamiento.
Conclusión
La codificación de números en SMPP es fundamental para garantizar la entrega adecuada de mensajes. Al configurar correctamente TON
, NPI
y codificar la dirección en ASCII (terminada en nulo), los desarrolladores pueden garantizar la compatibilidad con SMSC y redes móviles.
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