jueves, 10 de marzo de 2011

.:: Como enviar SMS por comandos AT 1/4::.

Empezamos hoy una serie de entradas dedicadas al tema del manejo de la mensajería sms mediante comandos AT.

Estos comandos y metodos en general son válidos para cualquier terminal que funcione sobre redes móviles, ya seaun teléfono, o modem, etc.

Problemas con envío de SMS con caracteres especiales



Cuando se detecten problemas con caracteres especiales como pueda ser la @, la ñ, la ü, etc, lo recomendado es usar siempre el modo PDU, por ejemplo para mandar un SMS a 8 bit con la cadena "@$Hola Manolo$@" lo haremos de la siguiente manera:

at+cmgf=0

at+cmgs=30
( longitud de la cadena PDU )

>0001000B914396496992F000F511220002486F6C61204D616E75656C000222 ( y después pulsamos...) Control+Z

+CMGS: 23


De la misma forma con PDU se puede generar periodo de validez, SCA incluido en la cadena PDU, SMS tipo flash (Clase 0) o cualquier clase en 7 u ocho bits, etc ..

Un ejemplo de SMS a 8 bits con la cadena ABC. Los SMS en 8bits necesitan dos valores Hexadecimales para cada carácter:

at+cmgf=1
OK
at+csmp=17,143,0,0
OK
AT+CMGS=00346xxxxxxxx
> 414243
+CMGS: 24
El motivo de recomendar PDU a 8 Bits es que el principal problema reside en que las codificaciones ANSI / ASCII. Los caracteres a-z, A-Z y 0-9 coinciden con el set

del alfabeto definido para GSM. Sin embargo caracteres especiales como @$äö, .... tienen una diferente codificación y no coinciden los set de caracteres ANSI / ASCII con GSM, y especialmente el set utilizado por Windows.

Como ejemplo tenemos el carácter ä tiene el código 123 decimal in ASCII pero el 132 decimal en GSM. El código 123 decimal en ASCII es { , de esa forma necesitas enviar el carácter { con el comando cmgs desde Hiperterminal para recibir el carácter ä en un sms tipo texto a 7 bit.

Esto lleva a construirse una tabla de conversión de los caracteres para poder enviarlos adecuadamente.

No hay comentarios: