Las comunicaciones móviles han evolucionado a una velocidad de vértigo en los últimos años. Desde la aparición de GSM (2G) en 1990, la telefonía móvil ha superado los 2000 millones de clientes. GPRS (2.5G) y UMTS (3G) permiten el acceso a Internet desde estos dispositivos. GNOME-GPRS te permite acceder a la red sin mas que conectar tu equipo celular a tu sistema Linux.

Uno de los principales objetivos de un sistema de telecomunicaciones es la posibilidad de poder comunicarse en cualquier momento y desde cualquier lugar, independientemente si el usuario se encuentre en un lugar fijo o en movimiento.La telefonía móvil cumple este objetivo, especialmente desde que en 1990 se publicara GSM, un sistema de segunda generación desarrollado para Europa que ha sido adoptado ya por mas de doscientos países en el mundo.

INTRODUCCIÓN

GSM fue diseñado para comunicaciones de voz al estilo de las redes telefónicas tradicionales ( circuitos conmutados ), con la diferencia de que se implementa sobre una red de telefonía móvil. Este sistema a dado muy buenos resultados en los servicios de voz, lo que ha conducido a su enorme éxito. Sin embargo, la demanda de nuevos servicios de datos que no pueden ser ofrecidos por la red GSM por sus características de diseño, ha provocado la aparición de nuevos sistemas como GPRS, que complementa a GSM con una red de paquetes mucho mas eficiente para el trafico de datos. Con GPRS, el acceso a redes como Internet se realiza de forma rápida y segura desde cualquier punto.

Teóricamente, la velocidad máxima alcanzada por GPRS es 171,2 Kbps. Este valor se obtiene de la siguiente forma: cada canal de comunicación se divide en ocho rodajes de tiempo o time-slots. Cada uno de estos slots ofrece una velocidad de entre 9,05 y 21,4 Kbps.

Por lo tanto, si se utilizan los ocho timeslots, podríamos llegar a los 8 x 21,4 = 171,2 Kbps. Este es el throughput máximo teórico que se puede alcanzar con GPRS, aunque en situaciones reales nunca se llegara a conseguir, debido a la saturación de la red y a las limitaciones físicas del teléfono que no permitirán utilizar los ocho slots al mismo tiempo. Hay que decir que las configuraciones mas comunes son del tipo 4+1 (clase 8), que significa que se utilizan cuatro time-slots para los datos de bajada y uno solo para los de subida, es decir, que las velocidades que se obtengan serán mucho menores que las teóricas. Ademas, GPRS introduce el concepto de QoS ( Calidad de Servicio ) en los sistemas de comunicación móviles. Mas adelante veremos que aporta esta característica a nuestras conexiones.

Si GPRS ofrece la posibilidad de estar siempre conectado desde cualquier lugar, la aplicación GNOME-GPRS aumenta las posibilidades al permitir el acceso a Internet desde tu sistema linux de una forma sencilla, simplemente conectando tu teléfono móvil al computador.

El desarrollo de GNOME-GPRS surge del proyecto AGILA http://patanegra.unex.es/agila (Acceso Generalizado a Internet desde Linex Avanzado), un proyecto que forma parte del ” II Plan regional de investigación, desarrollo tecnológico e innovación de Extremadura “, financiado por la consejería de infraestructura y desarrollo tecnológico de la junta de Extremadura. GNOME-GPRS ha sido desarrollado para GNU/LinEx y Debian, aunque se ha probado en otras distribuciones Linux y funciona correctamente.

GPRS EN LINUX

Conseguir de forma manual que nuestro sistema Linux sea capaz de conectarse a internet a traves de GPRS no es una tarea sencilla. En este apartado veremos como realizar la conexion de esta forma, mientras que en el siguiente comprobaremos como utilizando la aplicacion GNOME-GPRS, la conexion se simplifica enormemente.

Para la comunicación entre el sistema Linux y el teléfono utilizaremos el protocolo ppp, mientras que es el móvil el que se encargara de enviar paquetes IP al proveedor de servicio de internet correspondiente.

Para crear una conexión, es necesario comunicarse con el teléfono utilizando los comandos AT. Estos han sido definidos con el objetivo de acceder al hardware del terminal del sistema de comunicaciones y tradicionalmente se han utilizado para el control de los módem. una extension a estos comandos (AT+) es la que se utiliza para el dispositivo GPRS, que en nuestro caso actua comom modem.

Antes de esto, es necesario que el sistema operativo reconozca el teléfono móvil que este conectado al computador.

Normalmente, los sistemas Linux activan el modulo correspondiente de forma automática al conectar el dispositivo. Por ejemplo, al conectar el cable de datos USB de un teléfono Motorola, podemos comprobar si el sistema ha activado el modulo encargado de controlarlo. Para ello, desde un terminal ejecutamos el siguiente comando:

dmeg | tail -n 30

ante lo que el sistema muestra los ultimos mensajes emitidos por el nucleo, entre los que aparece algo similar a lo siguiente:

ubuntu kernel: usb 4-2: new full
speed USB device using address 8
ubuntu kernel: cdc_acm 4-2:1.0
ttyAVM0: USB ACM device
ubuntu usb.agent [4930] :
cdc-acm: loaded successfully
ubuntu kernel: usbcore: registered new driver cdc_acm
ubuntu kernel: driver/usb/class/cdc-acm.c: v0.23: USB modems and ISDN adapters

Esto significa que el sistema operativo ( en este caso Ubuntu) ha detectado un nuevo dispositivo USB, y que ha cargado el modulo cdc-acm, que es el necesario para interactuar con el telefono movil. A este dispositivo se puede acceder desde /dev/ttyACM0.

Una vez reconocido el telefono, lo que haremos sera comprovar si responde a los comandos AT. Esto podemos hacerlo de varias formas, utilizando /dev/ttyACM0 directamente para acceder al dispositivo, o a traves de un programa de comunicaciones como Minicom. Veamos loas dos opciones.

1. Utilizar /dev/ttyACM0 directamente: Para comunicarnos de esta forma, abrimos dos terminales. En una de ellas lo que haremos sera enviar un comando AT al movil, en este caso ATZ, mientras que en la otra esperaremos la respuesta que devuelva el telefono. Asi, en uno de los terminales, escribimos el siguiente comando:

cat /dev/ttyACM0

Que hara que se mantenga en espera de una respuesta del dispositivo ttyACM0 (el movil).

En el otro terminal, enviaremos el comando ATZ, para eso tendremos que escribir:

echo “ATZ” > /dev/ttyACM0

Cuando ejecutemos este comando, en la primera terminal aparecera lo siguiente:

ubuntu :/# cat /dev/ttyACM0
ATZ
OK

Asi, ya sabemos que Linux es capaz de conversar con el telefono movil.

2. Utilizando Minicom: Esta es una herramienta que nos va a permitir dialogar con el telefono a traves de comandos AT. Si lo tenemos, escribimos minicom desde una ternimal para arrancarlo y accederemos a la pantalla principal del programa. Si queremos “hablar” con el telefono, lo primero es crear un enlace al modem de la siguiente forma:

ln -sf /dev/ttyACM0 /dev/modem

Esto indica que el modem esta conectado a /dev/ttyACM0, y a partir de ahora, cada vez que iniciemos el programa, buscara en la direccion indicada (/dev/ttyACM0). Al ejecutar Minicon, simplemente tendremos que escribir los comandos AT que queramos enviarle al modem (el telefono) y él respondera. El siguiente paso sera levantar una conexion PPP entre elPc y el telefono. El demonio pppd trabaja junto con el driver del nucleo PPP para establecer y mantener un enlace PPP con otro sistema y para negociar la direccion IP para cada extremo del enlace.

Utilizaremos PPP para obtener la direccion IP y para autentificarnos a la red. El protocolo punto a punto en Linux acepta multitud de comandos o a partir de un fichero:

pppd file nombre_fichero_opciones

Hay que tener en cuenta que el usuario que ejecute esta opcion debera tener, al menos, permisos de lectura sobre el archivo nombre_fichero_opciones.

La autentificacion es otro aspecto muy importante. Para conectarnos a la red GPRS de la compañia de la que somos clientes, necesitamos una serie de parametros que deben ser proporcionados por la propia empresa. Entre esos parametros aparecen un nombre de usuario y una contraseña. Para GPRS, utilizaremos el protocolo de autenticacion PAP (Password Authentication Protocol) para la autentificacion. Si falla, pppd dara por terminado el enlace.

Asi, las opciones las tendremos en un fichero que se llama desde la linea de comandos al ejecutar el comando pppd para conectar. Este Archivo se veria asi;

#Script de opciones de conexion GPRS
debug
/dev/ttyACM0
460800
crtscts
modem
lock
receive-all
nopcomp
noaccomp
novjccomp
nodetach
noipdefault
defaultroute
user movistar
password movistar
usepeerdns
#Script de conexion
connect ´/usr/sbin/chat -e -f /ruta_ficheros/conectar -v´
#Script de desconxion
disconnect ´/usr/sbin/chat -e -f /ruta_ficheros/desconectar -v´

Ademas del puerto, la velocidad, el nombre de usuario y la contraseña de autenticacion, aparecen otras entre las que estan las direciones del fichero de conexion y desconexion. Estos archivos estaran formados por comandos AT que se encargaran de iniciar y finalizar la conexon;

Fichero Conectar

” AT&F
TIMEOUT 240
OK ATV1
OK ´AT+CGDCONT=2, “IP”,”movistar.cl”
OK ATS=0
OK ATDT*99***2#
TIMEOUT 30
CONNECT “”

Estos comandos seran los que ppp necesite para iniciar la conexion. El formato de esta secuencia es el siguiente: la parte izquierda de la linea sera lo que se espera recibir y la parte derecha es el comando que se envia. Asi, por ejemplo, cuando enviemos ATV1 (tercera linea), esperamos recibir un OK (cuarta linea) y sera entonces cuando enviemos el comando AT+CGDCONT, y asi hasta el final, que recibiremos CONNECT.

Los comandos principales de esta secuencia son AT+CDGDCONT y ATD. En el primero se indica que IP es el tipo de protocolo de paquete de datos a movistar.cl el puento de acceso al que nos conectaremos, mientras que el segundo es el encargado de realizar la llamada al proveedor de servicio.

Al igual que tenemos los comandos de conexion, contaremos tambien con los de desconexion, asi tendremos otro fichero llamado desconectar que tendra la secuencia de comandos que sigue:

SAY “\nDisconnecting…\”
“” “\K”
“” “+++ATH”
SAY “\nDisconnected.\n”

Para finalizar la conexion, tras desactivar el cliente PPP se debe enviar la cadena de caracteres +++, con el fin de que el modem cambie de modo datos a modo comandos AT. Una vez que se ha cambiado de modo, cuelga la conexion mediante el comando ATH (colgar llamada).

Con los tres ficheros explicados: opciones_conexion_gprs, conectar y desconectar, para comenzar escribimos desde lal inea de comandos:

#pppd file opciones_conexion_gprs

Con este comando lo que estamos haciendo es lanzar PPP con las opciones que se indican en el fichero opciones_conexion_gprs. La ejecucion de este proceso, desencadena la conexion a internet. Si miramos los mensajes del nucleo atraves del comando dmesg, veremos la secuencia que sigue una conexion PPP, que sera similar a la que se muestra a continuacion

ubuntu-linux pppd [5374]: pppd 2.4.* started by root, uid 0
ubuntu-linux pppd [5374]: Serial connection established.
ubuntu-linux pppd [5374]: Using interface ppp0
ubuntu-linux pppd [5374]: Connect: ppp0 <--> /dev/ttyACM0
ubuntu-linux pppd [5374]: PAP authentication succeeded
ubuntu-linux pppd [5374]: local IP address 62.87.74.75
ubuntu-linux pppd [5374]: remote Ip address 192.168.100.101
ubuntu-linux pppd [5374]: primary DNS address 213.73.32.3
ubuntu-linux pppd [5374]: secundary DNS address 212.73.32.67
ubuntu-linux pppd [5374]: Terminating on signal 2.
ubuntu-linux pppd [5374]: Connection terminated.
ubuntu-linux pppd [5374]: Serial link disconnected.
ubuntu-linux pppd [5374]: Exit.

Vemos como en las diferentes lineas aparecen los pasos típicos en el establecimiento de una conexión, la autenticación, la asignación de direcciones IP, servidores DNS, etc.

GNOME-GPRS

Hasta ahora, y como se ha visto en el apartado anterior, los usuarios de Linux que querian utilizar su telefono para conectarse a internet por medio de GPRS han tenido que aprender complicadas tareas para poder navegar por la red utilizando este sistema. Activar el modulo correspondiente en el sistema operativo, levantar una conexion punto a punto (PPP) entre el telefono y el sistema operativo, e incluso aprender algunos comandos AT para acceder al hardware del terminal GPRS.

GNOME-GPRS es una aplicacion que simplifica estas tareas, con ella el usuario podra acceder a internet desde cualquier lugar, sin mas que conectar un movil (con servicio GPRS) a su sistema Linux.

QUE SEGUIRÁ DESPUÉS

Próximamente se explicara el proceso de instalación y configuración para utilizar la herramienta en si, no se pierdan el próximo post de este tema, para mantenerse actualizados pueden suscribirse al blogs y ver las ultimas actualizaciones.

saludos.