Introducción al modo PDU de SMS

Los operadores de redes móviles y proveedores de servicios SMS utilizan el protocolo SMS para transferir mensajes SMS entre entidades de la red. El protocolo SMS permite a los dispositivos móviles enviar y recibir SMS. Los SMS enviados por un dispositivo móvil se denominan SMS MO (Mobile Originated). Los SMS recibidos por el dispositivo móvil se denominan SMS MT (Mobile Terminated). Esta guía presenta información sobre cómo los teléfonos móviles codifican los SMS MO y MT, es decir, cómo formulan las Unidades de Datos de Protocolo (PDUs) para enviar y recibir mensajes a través de la red.

Introducción

El modo PDU permite enviar información binaria en formato de 7 u 8 bits. Esto es útil si necesitas enviar datos comprimidos, datos binarios o deseas crear tu propia codificación de caracteres en el flujo de bits binario. Si retrocedes a la antigua codificación de un Fernschreiber, solo se necesitan 5 bits para enviar un texto alfanumérico. Con codificación de 5 bits, puedes contener 224 caracteres en lugar de 160 caracteres en modo Texto de 7 bits. Otra razón podría ser el envío de datos enteros.

Si deseas tener control total sobre tus datos transmitidos en modo Texto, debes entender el modo PDU, ya que hay algunos comandos donde puedes establecer parámetros numéricos que también cambian la forma de enviar y recibir un SMS en modo texto.

Ten en cuenta que hay algunas diferencias en la implementación del modo PDU y en otros comandos AT.

El mensaje SMS, según lo especificado por la organización Etsi (documentos GSM 03.40 y GSM 03.38), puede tener hasta 160 caracteres de longitud, donde cada carácter tiene 7 bits según el alfabeto predeterminado de 7 bits. Los mensajes de 8 bits (máx. 140 caracteres) generalmente no son visibles en los teléfonos como mensajes de texto; en su lugar, se utilizan para datos en, por ejemplo, mensajería inteligente (imágenes y tonos de llamada) y configuración OTA para WAP. Los mensajes de 16 bits (máx. 70 caracteres) se utilizan para mensajes de texto Unicode (UCS2), visibles en la mayoría de los teléfonos. Un mensaje de texto de 16 bits de clase 0 aparecerá en algunos teléfonos como un SMS Flash (también conocido como SMS parpadeante o SMS de alerta).

El formato PDU

Hay dos formas de enviar y recibir mensajes SMS: en modo texto y en modo PDU (unidad de descripción de protocolo). El modo texto (no disponible en algunos teléfonos) es simplemente una codificación del flujo de bits representado por el modo PDU. Los alfabetos pueden variar y hay varias alternativas de codificación al mostrar un mensaje SMS. Las opciones más comunes son: "PCCP437", "PCDN", "8859-1", "IRA" y "GSM". Estos se configuran mediante el comando AT+CSCS cuando lees el mensaje en una aplicación de computadora. Si lees el mensaje en tu teléfono, el teléfono elegirá una codificación adecuada. Una aplicación capaz de leer mensajes SMS entrantes puede usar el modo texto o el modo PDU. Si se usa el modo texto, la aplicación está limitada por el conjunto de opciones de codificación preestablecidas. En algunos casos, eso no es suficiente. Si se usa el modo PDU, se puede implementar cualquier codificación.

Recibir un mensaje en modo PDU

La cadena PDU no solo contiene el mensaje, sino también mucha metainformación sobre el remitente, su centro de servicio SMS, la marca de tiempo, etc. Todo está en forma de octetos hexadecimales o semi-octetos decimales. La siguiente cadena es lo que recibí en un Nokia 6110 al enviar el mensaje que contenía "hellohello" desde www.mtn.co.za.

07

917238010010F5

040BC87238880900F100009930925161958003C16010

Esta secuencia de octetos consta de tres partes: un octeto inicial que indica la longitud de la información del SMSC ("07"), la información del SMSC en sí ("917238010010F5"), y la parte SMS_DELIVER (especificada por ETSI en GSM 03.40).

¡Nota: en algunos teléfonos (por ejemplo, Ericsson 888?) las primeras tres partes (coloreadas) se omiten al mostrar el mensaje en modo PDU!

Octeto(s) Descripción

07

Longitud de la información del SMSC (en este caso, 7 octetos)

91

Tipo de dirección del SMSC. (91 significa formato internacional del número de teléfono)

72 38 01 00 10 F5

Número del centro de servicio (en semi-octetos decimales). La longitud del número de teléfono es impar (11), por lo que se ha añadido una F al final para formar octetos válidos. El número de teléfono de este centro de servicio es "+27831000015". Ver más abajo.

04

Primer octeto de este mensaje SMS-DELIVER.

0B

Longitud de dirección. Longitud del número del remitente (0B hex = 11 dec)

C8

Tipo de dirección del número del remitente

72 38 88 09 00 F1

Número del remitente (semi-octetos decimales), con una F al final

00

TP-PID. Identificador de protocolo.

00

TP-DCS. Esquema de codificación de datos

99 30 92 51 61 95 80

TP-SCTS. Marca de tiempo (semi-octetos)

0A

TP-UDL. Longitud de datos del usuario, longitud del mensaje. El campo TP-DCS indicó datos de 7 bits, por lo que la longitud aquí es el número de septetos (10). Si el campo TP-DCS estuviera configurado para indicar datos de 8 bits o Unicode, la longitud sería el número de octetos (9).

E8329BFD4697D9EC37

TP-UD. Mensaje "hellohello", octetos de 8 bits que representan datos de 7 bits.

Todos los octetos anteriores son octetos hexadecimales de 8 bits, excepto el número del centro de servicio, el número del remitente y la marca de tiempo; estos son semi-octetos decimales. La parte del mensaje al final de la cadena PDU consta de octetos hexadecimales de 8 bits, pero estos octetos representan datos de 7 bits (ver más abajo). Los semi-octetos son decimales, y, por ejemplo, el número del remitente se obtiene intercambiando internamente los semi-octetos de "72 38 88 09 00 F1" a "27 83 88 90 00 1F". La longitud del número de teléfono es impar, por lo que no se puede formar una secuencia de octetos válida con este número. Esta es la razón por la que se ha añadido la F al final. La marca de tiempo, cuando se analiza, equivale a "99 03 29 15 16 59 08", donde los primeros 6 caracteres representan la fecha, los siguientes 6 representan la hora y los últimos dos representan la zona horaria en relación con GMT.

Interpretar octetos de 8 bits como mensajes de 7 bits

Esta transformación se describe en detalle en GSM 03.38, y aquí se muestra un ejemplo de la transformación de "hellohello". La transformación se basa en el alfabeto predeterminado de 7 bits, pero una aplicación basada en el modo PDU puede usar cualquier codificación de caracteres.

Enviar un mensaje en modo PDU

El siguiente ejemplo muestra cómo enviar el mensaje "hellohello" en modo PDU desde un Nokia 6110.

AT+CMGF=0 //Establecer modo PDU

AT+CSMS=0 //Verificar si el módem admite comandos SMS

AT+CMGS=23 //Enviar mensaje, 23 octetos (excluyendo los dos ceros iniciales) >0011000B916407281553F80000AA0AE8329BFD4697D9EC37Hay 23 octetos en este mensaje (46 'caracteres'). El primer octeto ("00") no cuenta, es solo un indicador de la longitud de la información del SMSC proporcionada (0). La cadena PDU consta de lo siguiente:

Octeto(s) Descripción

00

Longitud de la información del SMSC. Aquí la longitud es 0, lo que significa que se debe usar el SMSC almacenado en el teléfono. Nota: Este octeto es opcional. ¡En algunos teléfonos este octeto debe omitirse! (Usar el SMSC almacenado en el teléfono es implícito)

11

Primer octeto del mensaje SMS-SUBMIT.

00

TP-Message-Reference. El valor "00" aquí permite que el teléfono establezca el número de referencia del mensaje por sí mismo.

0B

Longitud de dirección. Longitud del número de teléfono (11)

91

Tipo de dirección. (91 indica formato internacional del número de teléfono).

6407281553F8

El número de teléfono en semi-octetos (46708251358). La longitud del número de teléfono es impar (11), por lo que se ha añadido una F al final, como si el número de teléfono fuera "46708251358F". Usar el formato desconocido (es decir, el Tipo de dirección 81 en lugar de 91) daría como resultado la secuencia de octetos del número de teléfono 7080523185 (0708251358). Ten en cuenta que esto tiene una longitud de 10 (A), que es par.

00

TP-PID. Identificador de protocolo

00

TP-DCS. Esquema de codificación de datos. Este mensaje está codificado según el alfabeto predeterminado de 7 bits. Tener "02" en lugar de "00" aquí indicaría que el campo TP-User-Data de este mensaje debe interpretarse como 8 bits en lugar de 7 bits (utilizado en, por ejemplo, mensajería inteligente, configuración OTA, etc.).

AA

TP-Validity-Period. "AA" significa 4 días. Nota: Este octeto es opcional, ver bits 4 y 3 del primer octeto

0A

TP-User-Data-Length. Longitud del mensaje. El campo TP-DCS indicó datos de 7 bits, por lo que la longitud aquí es el número de septetos (10). Si el campo TP-DCS estuviera configurado para datos de 8 bits o Unicode, la longitud sería el número de octetos.

E8329BFD4697D9EC3 7

TP-User-Data. Estos octetos representan el mensaje "hellohello". Cómo hacer la transformación de septetos de 7 bits a octetos se muestra aquí

Introducción al modo Texto de SMS

El Servicio de Mensajes Cortos (SMS), definido dentro del estándar de telefonía móvil digital GSM 900 / 1800 / 1900, tiene varias características únicas:

Un solo mensaje corto puede tener hasta 160 caracteres (codificados en 7 bits) o 140 caracteres (codificados en 8 bits) de texto. Esos 140 /160 caracteres pueden estar compuestos por palabras, números o una combinación alfanumérica. También se admiten mensajes cortos no basados en texto (por ejemplo, en formato binario). Más información sobre ese modo binario puedes encontrar en el enlace Modo PDU.

El Servicio de Mensajes Cortos es un servicio de almacenamiento y reenvío, es decir, los mensajes cortos no se envían directamente del remitente al destinatario, sino que siempre pasan por un Centro de Servicios de Mensajes Cortos (SMSC). Cada red de telefonía móvil que admite SMS tiene uno o más centros de mensajería para manejar y gestionar los mensajes cortos. Más información sobre SMSC puedes leer en el enlace SMSC.

El Servicio de Mensajes Cortos incluye confirmación de entrega del mensaje. Esto significa que, a diferencia de la mensajería unidireccional, los usuarios no simplemente envían un mensaje corto y confían en que se entregue. En cambio, el remitente del mensaje corto puede recibir un mensaje de retorno que le notifique si el mensaje corto ha sido entregado o no. El parámetro predeterminado de fábrica de esta confirmación desde el transmisor de un SMS al receptor de un mensaje en la mayoría de los módems GSM está APAGADO, por lo que no recibirás confirmación del receptor. Si lo activas, recibirás una confirmación de que el SMSC ha recibido el mensaje y, después de la entrega del mensaje corto al receptor, recibirás un segundo mensaje automático (SMS de retorno) que indica que el mensaje se ha entregado a un teléfono o módem GSM. En este mensaje generado automáticamente, se codifican la fecha y hora de la entrega. La confirmación, el esquema de codificación, el tiempo de almacenamiento de un mensaje corto en el SMSC y mucho más se configuran con el comando AT+CSMP.

Otra forma es enviar un prefijo con el mensaje de texto. Estos prefijos no son iguales en los diferentes operadores GSM del mundo. En el operador GSM alemán Vodafone, debes agregar *N# y en el operador GSM T-Mobil debes agregar *T#. La notación con AT+CSMP es igual en todos los SMSC. El manejo con el prefijo *T# o *N# fue o es necesario si deseas recibir una confirmación al enviar un SMS con un teléfono móvil GSM. No todos los teléfonos móviles pueden activar el bit para una confirmación.

Si deseas entender los 3 parámetros de este comando, debes entender el SMS en modo PDU. Otro comando importante es AT+CNMI. Indica al módem GSM cómo manejar un mensaje corto entrante.

Los mensajes cortos se pueden enviar y recibir simultáneamente con llamadas de voz, datos y fax por GSM. Esto es posible porque, mientras que las llamadas de voz, datos y fax ocupan un canal de radio dedicado durante la duración de la llamada, los mensajes cortos viajan por encima del canal de radio utilizando la ruta de señalización. Como tal, los usuarios de SMS rara vez, si es que alguna vez, reciben una señal de ocupado o comunicando como puede ocurrir durante los períodos de uso máximo de la red. Si activas la recepción simultánea de un SMS durante una llamada de datos, recibirás una cadena SMS durante una llamada de fax o datos.

Existen formas de enviar múltiples mensajes cortos. La concatenación de SMS (unir varios mensajes cortos) y la compresión de SMS (obtener más de 160 caracteres de información dentro de un solo mensaje corto) se han definido e incorporado en los estándares GSM SMS. No todas las funciones posibles están implementadas por todos los operadores GSM en todo el mundo. El mensaje único debería funcionar en todas partes.

Para usar el Servicio de Mensajes Cortos, los usuarios necesitan las suscripciones y hardware relevantes, específicamente:

Una suscripción a una red de telefonía móvil que admita SMS. En Alemania, los operadores GSM incluyen este servicio con todo tipo de suscripción.

El uso de SMS debe estar habilitado para ese usuario (algunos operadores de redes móviles dan acceso automático al SMS, otros cobran una suscripción mensual y requieren una opt-in específica para usar el servicio). En Alemania, esto está incluido siempre.

Un teléfono móvil o módem GSM que admita SMS. Hoy en día, esto es compatible con todos los teléfonos o módems GSM.

Conocimiento de cómo enviar o leer un mensaje corto usando su modelo específico de teléfono móvil o módem GSM. La implementación no es igual en todas las unidades. No todos los teléfonos GSM, tarjetas módem PCMIA o módems GSM ofrecen todas las funciones que se describen en el ETSI.

Un destino para enviar un mensaje corto o recibir un mensaje suele ser otro teléfono móvil, pero también puede ser una máquina de fax o una dirección de correo electrónico. En algunas redes GSM, es posible convertir un mensaje corto en un fax o un correo electrónico.

More information