En uno de nuestros artículos
previamente publicados hemos hablado del modo túnel
para GPRS, este nos permite establecer una canal
de comunicación transparente entre el modulo
GSM, mas específicamente entre la UART 1
y un puerto TCP o UDP en cual-quier parte del mundo.
Si bien este modo no nos permitirá aumentar
la tasa de transmi-sión de datos, la cual
en GPRS esta en aproximadamente 19200 bits por segundo,
nos simplificara su manejo ya que nos estamos ahorrando
la utilización de los comandos +MIPSEND y
+MIPPUSH. A continuación, y a fin de poder
realizar una buena compa-ración, utilizaremos
el modo túnel para realizar el ejemplo de
SMTP sobre GSM ante-riormente publicado.
http://www.electrocomponentes.com/articulos/junio07/smtp01.html
http://www.electrocomponentes.com/articulos/junio07/smtp02.html
Aplicación:
Para poder realizar esta aplicación
usaremos la misma casilla de correo en Yahoo, utili-zada
en el ejemplo de SMTP sobre GSM, cuyo nombre de
usuario es pruebasmtp (pruebasmtp@yahoo.com.ar)
y contraseña smtpprueba.
Ejemplo
1-ATE0
2- ATE0
OK
3- AT+CMEE=2
4- OK
5- AT+CREG?
6- +CREG: 000,001
OK
7- AT+MIPCALL=1,"internet.gprs.unifon.com.ar","wap","wap"
8- OK
9- +MIPCALL: 172.17.121.9
10- AT+MIPODM=1,25,"209.191.85.254",25,0
11- OK
12- +MIPODM: 1,1
13- 220 smtp108.mail.mud.yahoo.com ESMTP
14- helo<CR><LF>
15- 250 smtp107.mail.mud.yahoo.com
16- auth login<CR><LF>
17- 334 VXNlcm5hbWU6
18- cHJ1ZWJhc210cA==<CR><LF>
19- 334 UGFzc3dvcmQ6
20- c210cHBydWViYQ==<CR><LF>
21- 235 ok, go ahead (#2.0.0)
22- MAIL FROM:pruebasmtp@yahoo.com.ar<CR><LF>
23- 250 ok
24- RCPT TO:iz@electrocomponentes.com<CR><LF>
25- 250 ok
26- DATA<CR><LF>
27- 354 go ahead
28- Subject: PRUEBA TUNEL<CR><LF>
29- From: pruebasmtp@yahoo.com.ar<CR><LF>
30- To: destino@yahoo.com<CR><LF><CR><LF>
31- CORREO DE PRUEBA TUNEL
32- <CR><LF>.<CR><LF>
33- 250 ok 1197060157 qp 98266
34- QUIT<CR><LF>
35- 221 smtp107.mail.mud.yahoo.com
+MIPSTAT: 1,1
Detalles:
1- Se envía comando para cancelar
el eco de los comandos enviados.
2- Confirmación de comando anterior.
3- Configuro el reporte de errores en modo texto.
4- Confirmación del comando anterior.
5- Envío comando para verificar el estado
en la red GSM.
6- Informe del estado en la red GSM, como respuesta
del comando anterior.
7- Abro conexión con el Gateway de la prestadora.
8- Confirmación del comando anterior.
9- Informe de IP asignada por parte del Gateway.
10- Abro puerto en Servidor de SMTP de Yahoo Argentina.
11- Confirmación de comando anterior.
12- Informe del resultado del comando anterior.
En este caso nos indica que el socket 1 fue abierto.
13- Recepción de un paquete de datos enviado
por el servidor, como mensaje de bien-venida.
14- Envió el siguiente comando del protocolo
SMTP.
helo<CR><LF>
15- Respuesta al comando anterior enviada por el
servidor de SMTP.
16- Envió el siguiente comando del protocolo
SMTP.
auth login<CR><LF>
17- Respuesta solicitando usuario.
18- Envió usuario codificado en Base64.
19- Respuesta solicitando password.
20- Envió password codificado en Base64.
21- Confirmación de usuario y password correctos
enviada por el servidor.
22- Envió comando para indicar quien envía
el correo electrónico.
23- Confirmación del comando anterior por
parte del servidor.
24- Envió comando para indicar quien recibe
el correo electrónico.
25- Confirmación del comando anterior por
parte del servidor.
26- Envió comando para indicar que empieza
el cuerpo del mensaje.
27- Confirmación del comando anterior por
parte del servidor.
28- Envió asunto del mensaje.*
29- Envió quien envía el mensaje.*
30- Envió quien recibe el mensaje.*
31- Envió el mensaje.
32- Envió comando de fin de mensaje.
33- Confirmación del comando anterior por
parte del servidor.
34- Envió comando de cierre de puerto.
35- Indicación de que el puerto fue cerrado.
En la Figura Nº1 se puede ver la recepción
de correo enviado desde el modulo GSM. Además
los parámetros enviados en las líneas
marcadas con un asterisco (*) son mos-trados en
el recuadro de color verde.
En el ejemplo se ve claramente que se ha simplificado
el manejo de los datos, por un lado no es necesario
convertir los datos de ASCII a HEXA para ser enviados,
ni realizar el proceso inverso una ves recibidos
estos. Los datos simplemente deben ser enviar en
ASCII y internamente el modulo GSM de Motorola se
encargara de adaptarlos al forma-to necesario para
que viajen por la red. Y por otro lado no es necesario
ir almacenando los datos en un buffer (+MIPSEND)
y luego enviarlos (+MIPPUSH).
En el ejemplo que acabamos de realizar, abrimos
un socket TCP en modo túnel. Trans-mitimos
y recibimos datos a través del canal transparente
establecido. Y cerramos el socket. Esto no nos permite
darnos cuenta que en este modo perdemos el control
de consola, es decir no podremos interrogar al modulo
para saber si esta registrado, que nivel de señal
tiene, etc.
Para nuestra tranquilidad existen una serie de comandos
que nos permite conmutar de un modo a otro sin que
se pierda la conexión previamente establecida.
Si el modulo se encuentra en modo túnel,
y recibe tres signos de suma consecutivos (+++),
conmutara inmediatamente al modo consola. Ya en
este modo nosotros podemos realizar cualquier tarea
que nos sea necesaria y una ves finalizada esta
podemos retomar el modo previamente conmutado a
través del comando ATO.
Solicite mayor información a:
Por Ing. Ignacio José Zaradnik
FAE Motorola Wireless Division
|