OTAP con SMS
Escrito por: blogElectronica en 2.DISPOSITIVOS (práctico), Comunic. GSM/GPRS, TelefoníaHace ya algún tiempo puse un post sobre cómo hacer un OTAP con un módem de Siemens (un módem gprs TC65, XT65, TC65T, MTX65 ó MTX65+G). En aquel post puse de forma detallada cómo realizar el OTAP desde el hyperterminal, pero no puse un ejemplo claro de cómo realizar el OTAP con un SMS, alguno ya se ha encargado de decírmelo
Pues hoy voy a poner un pequeño post muy práctico sobre cómo iniciar un proceso OTAP con un SMS. Hay varias maneras de plantear el proceso. Yo lo voy a plantear de la manera más sencilla para que todo el mundo que haga los pasos que voy a poner a continuación realice la práctica sin problemas.

Vamos a plantear que tenemos grabados los datos del OTAP en el módem antes de enviar el SMS. Podría enviarse desde SMSs, pero por comodidad voy a ponerlo como si estuvien pregrabados en la configuración del módem.
Para ello escribimos (ojo con las comillas):
AT^SJOTAP=”blogElectronica”,”http://www.blogelectronica.com/TEMP/
HelloWorld.jad”,”a:”,,,”gprs”,”airtelnet.es”,”vodafone”,”vodafone”,”080.058.000.033″,
Si apagamos el módem y lo volvemos a encender podemos ver que esta información es no volátil con el comando AT^SJOTAP?
Bueno, hecho esto ya tenemos al módem listo. Ahora podemos enviar un mensaje SMS al módem para iniciar el proceso de OTAP. Como yo soy pobre y en casa tengo sólo un módem (y prestao
), voy a enviar desde el propio módem el SMS a sí mismo.
Para ello, configuro mensajes SMS de texto (sí, de texto, no PDU
)
at+cmgf=1
OK
Configuramos los parámetros de los SMS:
at+csmp=17,167,0,245
OK
Y con todo esto ya sólo nos queda enviar el mensaje SMS con el texto:
OTAP_IMPNG
PWD:blogElectronica
START:install
Evidentemente no lo vamos a enviar tal cual. Lo convertiremos a hexadecimal, igual que lo haríamos en una codificación PDU de 8bits. Está “chupao”, substituimos cada carácter por su correspondiente valor ascii en hexadecimal (O=4F, T=54, A=41, P=50, …. . También recordar que el fin de cada línea debe acabar en 0A (incluida la última línea)
Para los remolones os pongo aquí un programita que acabo de hacer que codifica el texto SMS de forma adecuada a hexadecimal (También os incluyo el proyecto con el código fuente, hecho en Visual Basic 6.0 para quien lo quiera utilizar, copiar o curiosear).

Como podéis ver el código fuente de este programita es muy simplón:
cadena = “”
valorHex = “”
For i = 1 To Len(Text1.Text)
valorHex = Hex(Asc(Mid(Text1.Text, i, 1)))
If Len(valorHex) = 1 Then valorHex = “0″ & valorHex
cadena = cadena & valorHex
Next i
If valorHex <> “0A” Then cadena = cadena & “0A”
cadena = Replace(cadena, “0D”, “”)
Text2.Text = cadena
Bueno, hecho esto ya podemos enviar el SMS al módem. Para ello enviamos el comando at+cmgs (ya sabéis, primero se envía el at+cmgs=nº de teléfono y pulsamos ENTER, luego pegamos la cadena larga en hexadecimal que hemos obtenido utilizando el programita que os he colgado y pulsamos CTRL+z El SMS se enviará en un instante.
at+cmgs=66627xxxx
>4F5441505F494D504E470A5057443A626C6F67456C656374726F6E69
63610A53544152543A696E7374616C6C0A
Pasados unos segundos veréis como el led del módem empieza a parpadear de forma diferente, señal que está realizando el OTAP. Al finalizar el proceso el módem se autoresetea y podréis ver con el MES cómo ha cargado los ficheros HelloWorld.jar y .jad en el módem.
Espero que os resulte de interés. Otro día más. ![]()

