Formato de los mensajes SMS

Hay dos formas de enviar y recibir mensajes SMS, en modo texto y en modo PDU (Protocol Description Unit). El modo texto es una representación de la cadena de bits contenida en el campo de datos del modo PDU.

No todos los teléfonos soportan el modo texto, sobre todo los teléfonos más antiguos. El envío de mensajes en modo texto es más sencillo ya que no requiere de ningún tipo de codificación del texto que se quiere enviar.

El modo PDU permite enviar datos  que se pueden obtener, por ejemplo, de un microcontrolador. En esta ocasión se explicará el funcionamiento del modo PDU en formato de 7 y 8 bits.

Convertidor PDU de SMS



Trama de envío (SMS-SUBMIT)

1-12 Bytes 1 Byte 1 Byte 2-12 Bytes 1 Byte 1 Byte O,1 o 7 Bytes 1 Byte 0-140 Bytes
SCA TIPO PDU MR DA PID DCS VP UDL UD

Trama de recepción (SMS-DELIVER)

1-12 Bytes 1 Byte 2-12 Bytes 1 Byte 1 Byte 7 Bytes 1 Byte 0-140 Bytes
SCA TIPO PDU OA PID DCS SCTS UDL UD

SCA (Service Center address):

Número de teléfono del Centro de Servicio

La longitud de este campo puede variar entre 1 y 12 bytes, como mínimo es un byte.

1 Byte 0-1 Byte Número de teléfono del centro de servicios  0-10 bytes
LONGITUD TIPO DIGITO 2 DIGITO 1 DIGITO 4 DIGITO 3 DIGITO 6 DIGITO 5 DIGITO 8 DIGITO 7 DIGITO 10 ó F DIGITO 9

Longitud: Número de bytes requeridos para el número del centro de servicios mas un byte para el tipo de número.

Tipo de número: 81 para números nacionales y 91 para internacionales. Para mas información ver GSM 04.08 capítulo 10.5.4.6

Teléfono: Número telefónico del SMCS, se deben intercambiar los dígitos. Si es un número impar de dígitos es necesario rellenar con una F.

Si el campo longitud es cero, se toma como número del centro de servicios el que este configurado por defecto en el teléfono móvil.

PDU-TYPE:

El formato de este campo varia dependiendo si se trata de un mensaje para envío o de un mensaje recibido.

Bit 7 6 5 4 3 2 1 0
ENVIO RP UDHI SRR VPF RD MTI
RECEPCION RP UDHI SRI   MMS MTI

RP (Reply Path): Indica si existe ruta de respuesta.

UDHI (User Data Header Indicator):Indica si los datos de usuario contienen cabecera.

SRR (Status Report Request):Indica si se ha solicitado un informe de estado.

SRI (Status Report Indication):Indica si el SME ha solicitado un informe de estado.

VPF (Validity Period Format):Indica si el campo VP está presente y el formato.

0 0 Campo VP no está presente.

0 1 Reservado

1 0 Campo VP presente como entero (relativo).

1 1 Campo VP presente como un semi-octeto (absoluto).

MMS (More Messages to Send): Indica si existen mas mensajes en el SMSC para enviar al MS.

RD (Reject Duplicate):Rechazar duplicados. Indica al SMSC que acepte (0) o rechace (1) un SMS-SUBMIT de un mensaje que todavía está almacenado en el SMSC el cual tiene el mismo MR y DA y proviene del mismo OA. 

 MTI (Message Type Indicator): Tipo de mensaje.

0 0 SMS-DELIVER (SMSC ==> MS)
0 0 SMS-DELIVER REPORT (MS ==> SMSC, es generado automáticamente por el móvil, después de recibir un SMS-DELIVER)
0 1 SMS-SUBMIT (MS ==> SMSC)
0 1 SMS-SUBMIT REPORT (SMSC ==> MS)
1 0 SMS-STATUS REPORT (SMSC ==> MS)
1 0 SMS-COMMAND (MS ==> SMSC)
1 1 Reservado

MR (Menssage Reference)

Número sucesivo de 0 a 255. Para los mensajes enviados se puede rellenar con 0x00, el teléfono móvil se encarga de rellenar este campo con el número que corresponda.

OA(Originator Address)

Numero de teléfono del emisor del mensaje SMS.

1 Byte 0-1 Byte Número de teléfono del centro de servicios  0-10 bytes
LONGITUD TIPO DIGITO 2 DIGITO 1 DIGITO 4 DIGITO 3 DIGITO 6 DIGITO 5 DIGITO 8 DIGITO 7 DIGITO 10 ó F DIGITO 9

Longitud: Número de bytes del número de origen del SMS.

Tipo de número: 81 para números nacionales y 91 para internacionales. Para mas información ver GSM 04.08 capítulo 10.5.4.6

Teléfono: Número telefónico de origen del SMS, se deben intercambiar los dígitos. Si es un número impar de dígitos es necesario rellenar con una F.

Si el campo longitud es cero, se toma como número del centro de servicios el que este configurado por defecto en el teléfono móvil.

DA (Destination Address)

Numero de teléfono del receptor del mensaje SMS, tiene el mismo formato que el campo OA.

PID (Protocol Identifier)

Indica al SMSC como procesar el mensaje SMS ( FAX, VOZ, etc.).

DCS (Data Coding Scheme)

Indica la codificación de los datos de usuario.

Grupo de codificación
bits 7-4
bits 3-0
0000 Indicación de alfabetoMensaje sin especificación en el MS0000 Alfabeto por defecto (Datos de usuario codificados en formato de 7 bit)0001-1111 reservado
0001-1110 Grupos de codificación reservados.
1111 Codificación de datos/Clase del mensajebit 3 esta reservado, siempre 0
bit 2 (codificación del mensaje)

0 Alfabeto por defecto (codificación de 7 bit por caracter en los datos de usuario)
1 (codificación de 8 bit por caracter en los datos de usuario)bit 1 bit 0 (message class)
0 0 Class0 el mensaje es escrito inmediatamente en el display
0 1 Class1 ME (Mobile Equipment) el mensaje se almacena en el ME
1 0 Class2 SIM specific message el mensaje se almacena en el SIM
1 1 Class3 TE (Terminate Equipment) el mensaje se almacena en el TE

SCTS (Service Center Time Stamp)

Indica cuando se ha recibido el mensaje SMS en el SMSC.

Año Mes Día Hora Minuto Segundo Zona horaria Dígito 2 Dígito 1 Digito 2 Digito 1 Digito 2 Dígito 1 Digito 2 Digito 1 Digito 2 Digito 1 Digito 2 Digito 1 Dígito 2 Digito 1

VP (Validity Period)

Indica el tiempo de validez del mensaje SMS, el formato depende del valor de VP (relativo o absoluto).

Para el formato relativo el valor se calcula según la siguiente tabla:

Valor Tiempo
0-143 (VP +1) x 5 minutos
144-167 12 horas + ((VP-143) x 30 minutos)
168-196 (VP-166) x 1 día
197-255 (VP-192) x 1 semana

Para el formato absoluto, se indica la fecha y la zona horaria, intercambiando los dígitos:

Año Mes Día Hora Minuto Segundo Zona horaria Dígito 2 Dígito 1 Digito 2 Digito 1 Digito 2 Dígito 1 Digito 2 Digito 1 Digito 2 Digito 1 Digito 2 Digito 1 Dígito 2 Digito 1

UDL (User Data Length)

Indica el número de caracteres de los datos de usuario.

UD (User Data)

Datos de usuario. La codificación depende del formato seleccionado en el campo DCS. En el formato de 8 bits los caracteres se toman directamente de la codificación hexadecimal de cada caracter, pero en el formato de 7 bits es necesario realizar una agrupación de los septetos para formar octetos.

Los caracteres se codifican en binario formando septetos, a continuación se cogen los bits menos significativos del siguiente septeto para formar un octeto y se colocan como bits mas significativos del octeto que se está formando, este proceso se repite hasta finalizar todos los caracteres.

Paso Caracter H o l a
1 HEX 48 6F 6C 61
2 Binario 1001000 1101111 1101100 1100001
3 Bits a desplazar 1001000 1101111 1101100 1100001
4 Bits desplazados 11001000 00110111 00111011 00001100
5 Conversión HEX C8 37 3B 0C

Ejemplos:

1ª fila es el campo de la trama PDU.

2ª fila explicación.

3ª fila trama PDU ha enviar.

LONGITUD SCA TIPO PDU MR LONGITUD NUMERO DESTINO TIPO NUMERO DESTINO NUMERO DESTINO PID DCS VP UDL UD
SMSC por defecto     7 dígitos Nacional Número 1234567   7 bits 4 días 5 caracteres «Hello» codificado en formato de 7 bits
00 11 00 07 81 214365F7 00 00 AA 05 E8329BFD06
LONGITUD
SCA
TIPO NUMERO SCA NUMERO SCA TIPO PDU MR LONGITUD NUMERO DESTINO TIPO NUMERO DESTINO NUMERO DESTINO PID DCS VP UDL UD
    +491710760000         1234567   8 bits 4 días 5 caracteres «Hello» codificado en formato de 8 bits
07 91 947101670000 11 00 07 81 214365F7 00 F6 AA 05 68656C6C6F
LONGITUD
SCA
TIPO NUMERO SCA TIPO PDU MR LONGITUD NUMERO DESTINO TIPO NUMERO DESTINO NUMERO DESTINO PID DCS VP UDL UD
            123456789   7 bits 24 horas 4 caracteres «Hola» codificado en formato de 7 bits
01 80 11 00 09 81 21436587F9 00 00 A7 04 C8373B0C

Abreviaturas:

SMSC: Short Message Service Center .

MS: Mobile Station.

SME: Short Message Entity.

SMS-MO: Short Message Service-Mobile Originated.

OA: Originator Address.

DA: Destination Address.

Fuente de la información: zonabot.com