FoxPress – Marzo 2004

 

Envío de Mensajes SMS desde Fox

http://www.fpress.com/

 

         Por Alberto Rodríguez                                                                                                         

 

Los mensajes SMS están suponiendo una auténtica revolución en el mundo de la telefonía y tienen un gran futuro en las aplicaciones de gestión.

 

Si el origen fueron los mensajes SMS (Short Message Service) los que ahora se van imponiendo son los EMS (Enhanced Messaging Service) o MMS (Multimedia Messaging Service).

 

El Short Message Service (SMS) es la capacidad de enviar y recibir mensajes de texto a/y desde teléfonos móbiles. El texto se puede componer de letras, o números o una combinación de ellos. Los SMS se crearon cuando se incorporaron al estándar Global System for Mobiles (GSM). El primer mensaje corto se envió en Diciembre de 1992 desde un Personal Computer (PC) a un teléfono movil de Vodafone GSM en la red de UK.

 

El Enhanced Messaging Service (EMS) es la capacidad de enviar, imágenes, texto ó sonido  en un mensaje. La tecnología EMS es un estándar del 3GPP (foro de regulación de GSM y UMTS), que supone una evolución del SMS. Utiliza la concatenación de varios mensajes SMS. El primer movil que soportaba EMS salió a finales de 2001. La misma infraestructura que se usa para los SMS sirve para los EMS. Como toda tecnología, el estándar EMS ha evolucionando. Los primeros móviles con EMS cuentan con la versión EMS 4.0, mientras que los últimos llevan la 5.0.

 

El Multimedia Messaging Service (MMS) como su propio nombre indica es la capacidad de enviar y recibir mensajes que comprendean una combinación de texto, sonido, imagenes y video  a móviles que tengan la capacidad MMS. El sistema MMS, aparte del envío de gráficos y animaciones como en el EMS, permite el envío de fotos "adjuntas" al mensaje o insertar archivos de vídeo o música, algo muy similar a lo que actualmente hacemos con los mensajes de e-mail.

 

Los mensajes SMS están especificados por el WTSI en los documentos GSM 03.40 y GSM 03.38, y pueden ser de 160 caracteres de largo, siempre que cada carácter sea de 7 bits según el alfabeto 7-bit default alphabet. Los mensajes enviados con el alfabeto de 8 bits (max 140 caracteres) no se suelen ver por los móviles como mensajes de texto; se suelen usar para datos  (mensajes de imágenes y sonidos). Los mensajes de 16-bit  (max 70 caracters) se usan para textos de mensaje Unicode (UCS2), visible por muchos teléfonos. 

 

 

Las ventajas del SMS

 

En la actualidad los mensajes SMS tienen toda una serie de ventajas de acuerdo a sus características:

 

Almacenaje y envio

 

      Esto significa que en el caso de que el envío y el receptor no esté disponible, el mensaje es almacenado. Por el contrario, no hay mecanismo de almacenaje incorporado al GPRS. Una vez que los datos están preparados y listos para enviar, SMS tiene la ventaja sobre los paquetes de datos en que el “problema” de enviar el mensaje pasa al centro SMS más que al usuario.

 

Confirmación de entrega

 

Esto significa que el usuario sabe que el mensaje corto ha llegado a su destino.

 

Desventajas de los SMS

 

Tamaño limitado de los mensajes

 

El mensaje corto está limitado a 140 octetos debido a las limitaciones de la Mobile Application Part (MAP). Sería preferible un mensaje que tenga varias veces esta magnitud. Los servicios de datos por paquetes como el GPRS tiene una capacidad de envío mucho mayor. Esto quiere decir que los usuarios están menos limitados por las barreras de los protocolos.

 

En los mensajes MMS se ha superado el límite de los 160 caracteres.

 

Estructura inflexible del mensaje

 

La estructura del protocolo SMS Protocol Data Unit como está definido en el estándar GSM 03.40 es inflexible. El Data Coding Scheme, Origination Address, Protocol Identifier y otros campos de cabecera están fijos y esto ha limitado el número de escenarios posibles. Incluso el uso de algunas caracteristicas impide que se usen otras. El intento de solución para esto ha sido por ejemplo enviar dos veces el Message Class. Sin embargo, esto es ineficiente.  En su lugar, parece que el 3G incluirá un Tag de tamaño variable. Cada parámetro en la cabecera como por ejemplo el Data Coding Scheme tendría un Tag para indicar qué tipo de información se va a enviar en el campo siguiente con una variable que indica el tamaño de la información que se envía.

 

 

Almacenaje y Envío

 

Todos los mensajes SMS pasan por el centro de mensajes del proveedor. Mucho se ha discutido sobre la posibilidad de enviar mensajes sin pasar por esos centros pero sin éxito hasta la fecha

 

El Wireless E-Mail

 

            Una tecnología que está entrando ahora es el Wireless e-Mail (o sea los e-mail enviados desde Smartphones o similares y la ventaja/desventaja que tienen frente a los MMS son:

 

            Las principales desventajas del Wireless e-Mail son:

 

·         No tienes notificación de recepción del mensaje.

·         Van a parar a un Servidor de Correo y ahí se quedan hasta que alguien los solicita.

·         Van a una dirección de E-mail

 

Su principal ventaja

 

Son gratuitos. Salvo el coste del envío del Smartphone.

 

Las ventajas de los MMS son:

 

·         Notificación de recepción.

·         Se pueden enviar a una dirección de correo o a un e-mail

·         Llegan instantaneamente al phone y al usuario se le dice que ha llegado.

 

Todavía es pronto para saber quien ganará pero la lucha se está empezando a establecer ahora.

 

 

En resumen

 

Actualmente, el Short Message Service tiene ventajas únicas que otros servicios no tienen tales como el envío y confirmación. Sin embargo, tiene algunas notables carencias como el tamaño del mensaje y su estructura.

 

El MMS ha incorporado algunas de las cosas más interesantes del SMS como saber cuando un movil está conectado y así le pueda enviar mensajes.

 

 

¿ Qué necesito para poder enviar mensajes desde mi ordenador?

 

Un teléfono movil que esté conectado a tu PC

 

¿Cómo conecto el phone a mi PC?

 

Las formas de conectar un movil a un PC que yo conozca ahora mismo son 3:

 

·         Por cable a un puerto COM

·         Por Infrarojos

·         Por Bluetooh

 

La mejor opción es la primera pues sabes perfectamente a qué puerto está conectado tu teléfono.

 

La opción de infrarojos tuve que desecharla debido a la dificultad que tiene Windows de asignar un puerto COM (facilmente identificable) a los infrarojos .

 

El bluetooh también es una opción interesante pues te suele dar el puerto COM7 ú COM8 y es fácil de manejar. El único problema es la seguridad debido a que su alcance es de 4 metros, cualquiera en tu entorno podría usarlo (por ejemplo el vecino de arriba).

 

¿Cómo comrpruebo que mi phone está bien conectado al PC y podemos empezar a trabajar?

 

La mejor forma es que uses el Hyperterminal que viene con todos los Windows.

 

1.- Carga el Hyperterminal.

 

2.- Indica el puerto al que está conectado tu movil

 

3.- Pon la velocidad a 9600

 

4.- Escribe ATZ y pulsa <enter>

 

Si obtienes un flamante OK. ¡Enhorabuena! Puedes seguir leyendo y aplicando el resto del artículo.  En caso de que no te responda tienes un problema... pues no eres capaz de comunicarte con el teléfono.

 

Los teléfonos móviles soportan la norma RS232 (Modems para PC). El estándar “de facto” para controlar los teléfonos son los viejos y conocidos comandos AT HAYES, o más comúnmente conocidos como comandos AT. De este modo podemos configurar y controlar el módem utilizando los comandos AT. Una vez establecida la conexión con un módem remoto, se pasa del modo comando al modo conexión.

 

Cuando el usuario teclea el comando “ATZ” seguido de ENTER. El módem interpreta este comando, que es de inicialización y devuelve la cadena “OK” seguida de un retorno de carro para indicar que se ha ejecutado con éxito.

 

A continuación se listan algunos comandos AT.

 

ATA: Responder a una llamada entrante

ATD: Llamar a un número de tlf.

ATE: Eco de comandos ON/OFF

ATF: Seleccionar modo de conexión

ATH: Colgar/Descolgar

ATI: Obtener identificadores

ATL: Volumen del altavoz

ATM: Control del altavoz

ATS: Lectura/escritura de registros

ATZ: Reset del módem

 

Los teléfonos GSM  no sólo se comportan de forma muy parecida a un modem normal, permitiendo el intercambio de datos con otro modem y utilizándose los comandos AT originales, sino que incluyen muchas más características ya que permiten gestionar la base de datos de teléfonos, la lista de los mensajes SMS recibidos, enviar mensajes SMS, configurar diversos parámetros...

 

Para tener acceso a todos esos servicios, y dado que los comandos AT estaban muy extendidos

y muy estandarizados, se ha realizado una ampliación, añadiéndose nuevos comandos. Estos

nuevos comandos comienzan por las letras AT+, y se denominal comandos AT+.

 

Los Comandos AT+

 

A continuación se listan algunos de los comandos AT+ para tener una idea de lo que se puede controlar a través del modem, aunque existen muchos más

 

 

a) AT+CGMI: Identificación del fabricante

b) AT+CGSN: Obtener número de serie

c) AT+CIMI: Obtener el IMSI.

d) AT+CPAS: Leer estado del modem

2. Comandos del servicio de red

a) AT+CSQ: Obtener calidad de la señal

b) AT+COPS: Selección de un operador

c) AT+CREG: Registrarse en una red

d) AT+WOPN: Leer nombre del operador

3. Comandos de seguridad:

a) AT+CPIN: Introducir el PIN

b) AT+CPINC: Obtener el número de reintentos que quedan

c) AT+CPWD: Cambiar password

4. Comandos para la agenda de teléfonos

a) AT+CPBR: Leer todas las entradas

b) AT+CPBF: Encontrar una entrada

c) AT+CPBW: Almacenar una entrada

d) AT+CPBS: Buscar una entrada

5. Comandos para SMS

a) AT+CPMS: Seleccionar lugar de almacenamiento de los SMS

b) AT+CMGF: Seleccionar formato de los mensajes SMS

Modo texto

Modo PDU

c) AT+CMGR: Leer un mensaje SMS almacenado

d) AT+CMGL: Listar los mensajes almacenados

e) AT+CMGS: Enviar mensaje SMS

f ) AT+CMGW: Almacenar mensaje en memoria

g) AT+CMSS: Enviar mensaje almacenado

h) AT+CSCA: Establecer el Centro de mensajes a usar

i) AT+ WMSC: Modificar el estado de un mensaje

 

Nota: No todos los móviles soportan todas estas instrucciones. Deberás ver cuales son las que soportan el tuyo.

 

 

Algunos ejemplos

 

A continuación se muestran algunos ejemplos de utilización de los comantos AT+. Para probarlos se ha utilizado un ordenador PC, con un teléfono conectado al puerto serie y el Hyperterminal.

 

Lectura de la lista de teléfonos

 

Para listar todos los teléfonos se utiliza el comando AT+CPBR. Primero comprobamos la capacidad del directorio telefónico:

 

AT+CPBR=?

+CPBR: (1-150),20,14

OK

 

La información devuelta nos indica que el directorio tiene 150 entradas, desde la 1 hasta la 150, y que en cada entrada el teléfono puede ocupar como máximo 20 caracteres y el texto 14. Para listar los teléfonos debemos indicar qué entradas se quieren examinar. Como en este SIM hay 150 como máximo, utilizamos el siguiente comando:

 

AT+CPBR=1,150

+CPBR: 1,"617557556",129,"LUIS"

+CPBR: 2,"925541831",129,"ROSA"

+CPBR: 3,"934465076",129,"PACO G"

+CPBR: 4,"944634436",129,"MARIANICO"

+CPBR: 5,"955338584",129,"ANGELCHU"

+CPBR: 6,"617203473",129,"PESADO"

+CPBR: 7,"679453250",129,"LUCRECIA"

+CPBR: 8,"629040222",129,"PAPA"

OK

 

Se listan todos los teléfonos comprendidos entre las entradas 1 y 150. En total hay 8, que ocupan las posiciones 1-8. Para listar las 3 primeras entradas habría que hacer los siguiente:

 

AT+CPBR=1,3

+CPBR: 1,"617557556",129,"LUIS"

+CPBR: 2,"925541831",129,"ROSA"

+CPBR: 3,"934465076",129,"PACO G"

OK

 

Bien. Ya vas viendo que las posibilidades son muchas. Pero seguro que me estarás diciendo ¿Y el Fox donde está aquí?

 

Envío de mensajes desde Fox

 

FoxPro viene con el MSCOM que es un ActiveX para manejo de puertos. Nosotros podemos usar ese ActiveX de la misma forma que estamos interactuando con el HyperTerminal.

 

Mira el siguiente código:

 

oCom = CREATEOBJECT("MSCOMMLib.MSComm")

oCom.CommPort = 1   &&  Estoy usando el puerto 1

oCom.Settings = "9600,N,8,1"

 

TRY

      IF oCom.PortOpen = .F.

          oCom.PortOpen = .T.

      ENDIF

CATCH

      ? 'Error : El puesto está abierto'

ENDTRY

 

 

oCom.Output ="ATZ" + CHR(13)

 

oCom.Output ="AT+CMGF=1" + CHR(13)

INKEY(.1)

 

*- Número del Servidor SMS en este caso el de AMENA

oCom.Output ="AT+CSCA=+34656000311,145" + CHR(13)

INKEY(.1)

 

*- Número de destino al que enviamos el mensaje

oCom.Output = "AT+CMGS=" + lcTFDestino + CHR(13)

 

*-  Texto que queremos enviar (acabado con CTRL + Z)

oCom.Output = lcTexto + CHR(26)+ CHR(13)

INKEY(.1)

 

oCom.PortOpen = .F.    

 

Nota: este código sólo funcionará en Fox 8 al usar el TRY/CATH

 

Ya ves que es bastante fácil.  No obstante, si te metes en profundidad hay muchos campos en los que puedes ver las múltiples opciones de que dispones.

 

Por ejemplo, en este caso hemos compuesto el mensaje en formato texto. Si quieres lo podrías crear en formato PDU traduciendo las cadenas y realizando una sola conexión con el servidor.

 

 

 

 

 

 

 

FoxPress – Marzo de 2004

© 2004 FoxPress. All rights reserved