-------------------------------------------------------------------------------------------------------------------------------------------------------
“Free software” is a matter of liberty, not price.
-------------------------------------------------------------------------------------------------------------------------------------------------------

Por qué «software libre» es mejor que «código abierto» cdlibre.org ---Software de código abierto de forma gratuita ---

Traductor

- Decodificar mensajes SMS/PDU -

El modo PDU trata el SMS como una cadena de caracteres en octetos hexadecimales o semioctetos decimales, de cuya codificación resulta el SMS en modo texto. La ventaja de modo PDU respecto al modo texto es que en modo texto la aplicación queda limitada a la opción de codificación que se haya preestablecido, en modo PDU se puede implementar cualquier codificación.

La cadena PDU no solo contiene el mensaje, sino que lleva información del centro de servicio SMS (AT+CSCA?), hora de llegada, tipo de mensaje, información sobre el que envía el SMS, vigencia del SMS, nº de caracteres del SMS, tipo de llamada (nacional ó internacional), tipo de alfabeto usado…



SMS decodificado y recibido en formato PDU


PDU


Decodificación:
07914356060018F2040B914356554985
F200002050825142950006416650DA0C
02

Number+34655594582
TextoALARMA
SMSC+34656000812
ValidezNA
TipoDeliver
MR0


---------------------------------------------------------------------------------------------------------------------------------------------------------

Ejemplo recibimos el SMS con el texto “ALARMA” el: 28/05/02 a las 15:24:59 zona 00
+CMGL: 12,1,,25

07914356060018F2040B914356554985F200002050825142950006416650DA0C02
Estructura del SMS recibidos en formato PDU
DCS...Tipo.PDU.DO...PID...NR...COD...TR...LD.

DATOS..


DCS: Dirección Centro de Servicio.
Tipo PDU: Tipo Protocolo de la Unidad de Datos.
DO: Dirección de Origen del mensaje.
PID: Protocolo Identificación.
NR:
COD: Codificación trama de Datos.
TR: Tiempo Recepción.
LD: Longitud Datos.
DATOS: Datos codificados.
---------------------------------------------------------------------------------------------------------------------------------------------------------

DCS: Dirección Centro de Servicio
07914356060018F2040B914356554985F200002050825142950006416650DA0C02

07914356060018F2 donde …

07914356060018F2


LNº...TLL...NºCS...

LNº: longitud nº Dirección Centro de Servicio.
07 = numero de octetos (pares de caracteres hexadecimales o decimales) que forman el campo dirección centro servicio.

TLL: tipo de llamada
91 = nº con prefijo internacional (nacional 81) (internacional 91)

Nº CS: numero del centro de servicio.
4356060018F2 = nº +34656000812

Se pondrá el número del centro de servicio que utilizamos invirtiendo el orden por pares la F se pone cuando la longitud del número es impar.
Si en este campo ponemos 00 se toma automáticamente el valor del nº del centro de servicio (dado por at+csca)

---------------------------------------------------------------------------------------------------------------------------------------------------------

Tipo PDU: Tipo Protocolo de la Unidad de Datos
07914356060018F2040B914356554985F200002050825142950006416650DA0C02

 04 donde...



PCCDREsin usoRDTIPO

PC: Path contestación (0 No, 1 Sí)
CD: Cabecera datos (0 Sin, 1 Con)
RE: Petición reporte de estado (0 No, 1 Sí). Este campo lo rellena el centro de servicio.
RD: permite que el centro de SMS acepte un SMS-SUBMIT para un mensaje que todavía está en el centro. (0 Sí, 1 No)
TIPO: 0 0 Tipo SMS recibido

---------------------------------------------------------------------------------------------------------------------------------------------------------

DO: Dirección de Origen 
07914356060018F2040B914356554985F200002050825142950006416650DA0C02

0B914356554985F2 donde …0B914356554985F2


LNº...TLL...NºCS...

LNº: longitud nº Dirección Centro de Servicio.
0B = número de semioctetos (pares de caracteres hexadecimales. 11=0B semioctetos) 

TLL: tipo de llamada
91 = nº con prefijo internacional (nacional 81) (internacional 91)

Nº CS: numero del centro de servicio.
4356060018F2 = nº +34656000812Se pondrá el número del centro de servicio que utilizamos invirtiendo el orden por pares la F se pone cuando la longitud del número es impar. 
---------------------------------------------------------------------------------------------------------------------------------------------------------

PID: Protocolo Identificación
07914356060018F2040B914356554985F200002050825142950006416650DA0C02

00
---------------------------------------------------------------------------------------------------------------------------------------------------------

COD: Codificación trama de Datos.
07914356060018F2040B914356554985F200002050825142950006416650DA0C02

00
Indica el alfabeto con el que se codifica la trama (alfabeto por defecto= codificación a 7 bits o codificación a 8 bits) e indica tipo de SMS.

0000 0 0 00 Alfabeto a 7 bits
1111 0
0 7 bits
1 8 bits
00 mensaje clase 0 (se muestra en el display inmediatamente)
01 mensaje clase 1 ME
10 mensaje clase 2 SIM
11 ensaje clase 3 TE


---------------------------------------------------------------------------------------------------------------------------------------------------------

TR: Tiempo Recepción.
07914356060018F2040B914356554985F200002050825142950006416650DA0C02

20508251429500 donde...

20508251429500


DíaMesAñoHoraMinutosSegundosZona Horaria

    02/05/28, 15:24:59+00
Indica cuando se ha recibido el SMS.
---------------------------------------------------------------------------------------------------------------------------------------------------------


LD: Longitud Datos 
07914356060018F2040B914356554985F200002050825142950006416650DA0C02

06 
nº de octetos que forman los datos del mensaje.
Ejemplo: si el mensaje está formado por la siguiente cadena 416650DA0C02
El campo LD se rellenará con 06 (ya que hay 6 octetos= 2 caracteres hexadecimal)
---------------------------------------------------------------------------------------------------------------------------------------------------------

DATOS: Datos codificados 
07914356060018F2040B914356554985F200002050825142950006416650DA0C02

416650DA0C02  
ALARMA, codificado a 7 bits (con el alfabeto indicado en el campo codificación de datos)


...................
        A
......................
        L
........................
         A
..........................
         R
............................
           M
...................
        A
Hexadecimal       41       4C               41        52          4D       41
    Binario   1000001
    100110 0       10000 01         1010 010           100 1101 10 00001
0 100000101 1001100010 10000011101 101001000001 1001101 10 00001
Codific.7bits      41        66        50        DA          0C        02


Codificación de la palabra HOLA:

HOLA
Hexadecimal484F4C41
      Binario1001000100111110011001000001

Para transformarlo a octetos se toma el número de caracteres de la siguiente letra que nos falten para llegar a 8, cuando se hayan tomado caracteres de una letra para la anterior, esta se queda sin esos caracteres y los debe tomar de la siguiente letra

1 100100000 100111 1001 10011 001000 001
C8273308
---------------------------------------------------------------------------------------------------------------------------------------------------------

Estructura de los SMS para enviar en formato PDU
DCS...Tipo.PDU.NR.DD...PID.COD...PV...LD...
DATOS..

07914356060013F11100098126064321F50000A706416650DA0C02 

07 = nº octetos que forman el campo dirección centro servicio
91 = nº con prefijo internacional
4356060013F1 = nº centro servicio 34656000131
11 = tipo PDU (SMS para enviar. Formato Periodo Vigencia Relativo(1 octeto)
00 = número de referencia.
09 = número de semioctetos (caracteres) del teléfono de envío
81 = nº sin prefijo internacional
26064321F5 = nº teléfono de envío 62064321F5
00 = protocolo identificación
00 = codificación trama de datos a 7 bits. Alfabeto por defecto
A7 = periodo de vigencia del SMS.
06 = nº de octetos que forman los datos del mensaje.
416650DA0C02 = datos “ALARMA” codificado a 7 bits.---------------------------------------------------------------------------------------------------------------------------------------------------------


Estructura de los SMS enviados en formato PDU
DCS...Tipo.PDU.DD.PID..NR.COD...PV...LD...
DATOS..

DCS: Dirección Centro de Servicio

LNº...TLL...NºCS...
LNº: longitud nº centro servicio. Nº de octetos (pares de caracteres hexadecimales o decimales) que forman el nº del centro de servicio más 1 octeto que indica tipo de llamada nacional o internacional.
Si en este campo ponemos 00 se toma automáticamente el valor del nº del centro de servicio (dado por at+csca)
TLL: tipo de llamada:
Nº CS: nº centro de servicio. 



TIPO PDU: Tipo Protocolo de la Unidad de Datos


PCCDPREPVRD
TIPO

PC: Path contestación (0 No, 1 Sí)
CD: Cabecera datos (0 Sin, 1 Con)
PRE: Petición reporte de estado (0 No, 1 Sí)
PV: campo Periodo Vigencia presente (0 0 No, 01 Reservado, Sí como entero, Sí como semiocteto)
RD: permite que el centro de SMS acepte un SMS-SUBMIT para un mensaje que todavía está en el centro. (0 Sí, 1 No)

TIPO: 0 1 Mensaje de envío

DD: Dirección destino. 

Se rellenará igual que el campo Dirección centro de servicio, poniendo el nº de teléfono del destinatario del SMS. En el campo longitud nº se contarán por semioctetos sin contar la F en caso de que haya habido que ponerla.
Ejemplo: nº 34676543524(11=0B semioctetos) en el campo DD será 0B914376563425F4)

PID: Protocolo Identificación.
Lo pondremos a 00

NR: Número de referencia

COD: Codificación trama de datos
Indica el alfabeto con el que se codifica la trama (alfabeto por defecto= codificación a 7 bits o codificación a 8 bits) e indica tipo de SMS. 

0000 0 0 00 Alfabeto a 7 bits
1111 0
0 7 bits
1 8 bits
00 mensaje clase 0 (se muestra en el display inmediatamente)
01 mensaje clase 1 ME
10 mensaje clase 2 SIM
11 ensaje clase 3 TE

PV: Periodo de Vigencia del sms
Valor de PV:
0 a 143 (PV+1)*5 minutos
144 a 167 12horas+(PV-143)*30 minutos
168 a 196 (PV-1) *1 día
197 a 255 (PV-192)*1 semana
Ejemplo AA: (AA=170-> 170-166=4 * 1 día=4 días )

LD: Longitud de la cadena de datos. 

Nº de octetos que forman los datos del mensaje.

DATOSDatos codificado a 7 bits (con el alfabeto indicado en el campo codificación de datos)
---------------------------------------------------------------------------------------------------------------------------------------------------------

Codificador online: http://es.wammu.eu/tools/pdu-encode/

Decodificador online: http://es.wammu.eu/tools/pdu-decode/
Ejemplos PDU: http://www.blogelectronica.com/TEMP/Ejemplos-sms-pdu.txt ---------------------------------------------------------------------------------------------------------------------------------------------------------