T10S

Para poder enviar mensajes SMS desde un PC, sólo son necesarias tres cosas: un teléfono móvil, un cable de comunicación compatible con el teléfono y por supuesto un PC con un emulador de terminal, como puede ser el HiperTerminal de Windows.

En esta ocasión se utilizarán comandos AT para el envió del mensaje SMS en formato PDU, desde un viejo terminal Ericsson T10s recuperado del olvido.

 

Al usar un viejo teléfono móvil, pero que nos sirve perfectamente para nuestro propósito, he tenido que reemplazar la batería por un paquete de pilas para conseguir los 4,8 V necesarios para el funcionamiento.

20090131 005 20090131 007 20090131 010

El cable de comunicación se puede comprar, aunque para un modelo antiguo es difícil de encontrar incluso en las tiendas especializadas. En este caso se ha fabricado un adaptador RS232-TTL, compatible con el teléfono Ericsson T10s, montado sobre una placa de prototipos y con un conector recuperado de un manos-libres.

 

20090830 003

El aspecto final del pack (batería + adaptador RS232-TTL) no es muy profesional, pero es totalmente operativo para unas primeras pruebas, además se están usando elementos reciclados a los cuales no se les estaba dando ningún uso.

Esquema

El siguiente paso es configurar el HiperTerminal para poder establecer la comunicación entre el PC y el teléfono según la siguiente configuración:

image

Llegados a este punto es el momento de comprobar que todo funciona, colocamos las pilas, encendemos el teléfono, conectamos el adaptador RS232-TTL al puerto serie PC y al teléfono. Desde el HiperTerminal, con la configuración anterior, escribimos AT y pulsamos ENTER, si todo es correcto el teléfono responderá con un OK.

OK

 

El mensaje a enviar debe cumplir con el formato PDU , como prueba enviaremos "Hola Mundo" al número ficticio 123456789. Lo primero de debemos hacer es codificar el mensaje siguiendo el formato por defecto de 7 bits definido por GSM 03.38. y realizar las transformaciones necesarias para convertir los septetos en octetos.

Paso Caracter H o l a espacio M u n d o
1 HEX 48 6F 6C 61 20 4D 75 6E 64 6F
2 Binario 1001000 1101111 1101100 1100001 0100000 1001101 1110101 1101110 1100100 1101111
3 Bits a desplazar 1001000 1101111 1101100 1100001 0100000 1001101 1110101 1101110 1100100 1101111
4 Bits desplazados 11001000 00110111 00111011 00001100 01101010 11010110 11011101   11100100 00110111
5 Conversión HEX C8 37 3B 0C 6A D6 DD   E4 37

Una vez codificado el texto pasamos a formar el mensaje PDU, según la especificación.

Byte Descripción
00 Longitud del campo SMSC, en este caso usamos el centro de envió de SMS por defecto en el teléfono.
11 Tipo PDU
00 Número de referencia del SMS, no especificamos ningún valor
09 Longitud del número del destinatario, 9 dígitos
81 Tipo de dirección, en este caso es un número nacional.
21436587F9 Número del destinatario, en este caso 123456789, se intercambian las posiciones de los dígitos y se rellena con F para que el número de dígitos sea un valor par
00 Identificador del protocolo
00 Esquema de codificación
A7 Periodo de validez del mensaje,
0A Numero de septetos del mensaje, en este caso coincide con el número de caracteres.
C8373B0C6AD6DDE437 Mensaje codificado según la especificación TPU

El mensaje que finalmente se enviará será: 001100098121436587F90000A70AC8373B0C6AD6DDE437

Antes de enviar un mensaje real quizás sea interesante comprobar que está correctamente construido.

Por fin podemos enviar el SMS, desde el HiperTerminal tecleamos los siguientes comandos AT:

 

AT+CMGF=0 //Activar modo PDU

AT+CMGS=22 //Enviar mensaje de 22 octetos, se excluye el campo SCA (Service Center address), en este ejemplo los primeros ceros.

>001100098121436587F90000A70AC8373B0C6AD6DDE437  // Para enviar el mensaje pulsar +Z

 

El envío de un mensaje SMS en modo PDU no es nada trivial ya que requiere realizar operaciones antes de poder proceder al envío, el modo texto es mucho mas sencillo pero no esta soportado por los teléfonos mas antiguos.