Página siguiente Página anterior Índice general

6. INTERCONEXIÓN TELEFONÍA MÓVIL

6.1 ¿Qué necesitamos?

No dispongo de teléfono móvil con IR así que, posteriormente, en la sección de agradecimientos me estenderé bastante XD. Las pruebas han sido bastante limitadas por la escasez de teléfonos con IR a mi alcance. El material estaba compuesto por:

  • Annapurna, mi portátil clónico de siempre.
  • Nokia's 6150, 7110, 8210.
  • Cable de datos. (si modem en 6150, caso especial)
  • En esta sección necesitaremos:(Nomenclatura Debian, en otras distribuciones no sé si se conserva el nombre del paquete)

    --- Package: wvdial --------
    Priority: optional
    Section: comm
    Installed-Size: 240
    Maintainer: Baruch Even <baruch@debian.org>
    Architecture: i386
    Version: 1.42-2
    Depends: ppp (>= 2.3.0), libc6 (>= 2.2.3-7), libstdc++2.10-glibc2.2 (>= 
    1:2.95.4-0.010810)
    Filename: pool/main/w/wvdial/wvdial_1.42-2_i386.deb
    Size: 77196
    MD5sum: 472934e1d8c4571842bf6b0a0d09a2fe
    Description: PPP dialer with built-in intelligence.
    WvDial sacrifices some of the flexibility of programs like "chat" in order to 
    make your dialup configuration easier.  When you install this package, your 
    modem will be detected automatically and you need to specify just three 
    parameters: the phone number, username, and password.  WvDial knows enough to 
    dial with most modems and log in to most servers without any other help.
     
    In particular, you no longer need a "chat script" to handle the most common 
    situations.
    Task: dialup
    
    --- Package: gnokii --------
    Status: install ok installed
    Priority: optional
    Section: comm
    Installed-Size: 3249
    Maintainer: Erik Rossen (Linux consultant) <rossen@freesurf.ch> Version: 0.3.3 
    Depends: adduser, libc6 (>= 2.2.3-7), libglib1.2 (>= 1.2.0), libgtk1.2 (>= 
    1.2.10-1), xlibs (>> 4.1.0)
    Conffiles:
    /etc/gnokiirc 5520f34285ec9e9934bccfdae51617cc
    /etc/gnokiirc newconffile
    Description: Linux/Unix tool suite for Nokia mobile phones
    Gnokii is a Linux/Unix tool suite and (eventually) modem/fax driver
    for Nokia mobile phones, released under the GPL.
    http://www.gnokii.org
    
    
    --- Package: gsm-utils --------
    Priority: extra
    Section: comm
    
    Installed-Size: 372
    Maintainer: Mikael Hedin <micce@debian.org>
    Architecture: i386
    Source: gsmlib
    Version: 1.6-5
    Depends: libgsmme1 (= 1.6-5)
    Filename: pool/main/g/gsmlib/gsm-utils_1.6-5_i386.deb
    Size: 118136
    MD5sum: ac27d320f8898776dd3a21307ea0055a
    Description: Application to access and control a GSM mobile phone.  Some simple 
    command line programs to access a GSM mobile phone via GSM modem or IrDA.  
    Functions include: modification of phonebooks and reading, writing, sending and 
    receiving SMS messages.  Uses the GSM standards ETSI GSM 07.07, ETSI GSM 07.05, 
    and others.
    

    6.2 Gnokii

    Bueno, esta sección está dedicada a todos los fanatiquillos de los móviles. Yo, al contrario que ellos, no tengo ni puta idea, pero les voy a intentar dar la base por si se quieren poner con ello desde Linux. A ver que tal me sale.

    Tenemos dos paquetes (por supuesto con sus fuentes y documentacion, e ahí una de las ventajas) que trabajan con los protocolos de Nokia para hacerle pirulillas al móvil.

    El primero es gnokii. Por mucho que anuncien su compatibilidad con el IR de momento no lo he conseguido hacer ir. Eso si, con el cable va de putísima madre.

    Aunque en un principio dicen que es posible la conexión con:

    (README del gnokii)
    3810 Series
    3110/Sonera (Finland)
    3110/Telefonica (Spain)
    3810/Telstra (Australia)
    3810/Optus [Actually Hutchison] (Australia)
    3810/Mobile One (Singapore)
    3810/SingTel Mobile (Singapore)
    8110/Proximus (Belgium)
    8110/D2 Privat (Germany)
    8110i/MTN (South Africa)
    8110/Beeline Vympelkom (Russia)
    8110i/A1 Mobilkom (Austria)
    
    6110 Series
    6190/Microcel (Canada) (GSM 1900)
    6150/Viag Interkom (Germany) (GSM 1800)
    6150/Omnitel (Italy)
    6150/Beeline (Vympelkom) (Moscow, Russia)
    6150/MTS (Moscow, Russia)
    6150/NWGSM (St. Petersburg, Russia)
    6150/NetCom GSM (Norway)
    6130/IDEA Centertel (Poland) (GSM 1800)
    6110/Paegas (Czech Republic)
    6110/Panafon (Greece)
    6110/Telstra Mobilenet (Australia)
    5110/Omnitel (Italy)
    5110/Paegas (Czech Republic)
    5110/ERA GSM (Poland)
    5110/Plus GSM (Poland)
    5130/IDEA Centertel (Poland)
    5190/Microcel (Canada) (GSM 1900)
    
    3210 (some functions does not not work yet)
    2110 Series
    6160 Series
    640 Series
    

    El caso es que ni con un 7110 ni con el 8210 ni con el 6150 he conseguido que vía IR el programa funcione. Me reitero, con cable sin problemas. De las cosas curiosas es la posibilidad de activar el netmonitor y alguna chorradilla mas.

    Sobre X han desarrollado xgnokii que va bastante bien.

    El tema de documentación también está muy bien. Para los entendidos tenéis unos enlaces bastante atractivos:

    http://www.iki.fi/too/sw/xring/ -files (patches ?) for MIDI support

    http://www.homepages.hetnet.nl/~fdboerhetnet/ -compiling gnokii for Win32

    http://www.saunalahti.fi/~boozeman/archive/ -gnokii 0.3.3_pre6 in rpm file

    ftp://ftp.upjs.sk/pub/users/ja/xgnokii/ -site of Jan Derfinak (ja@mail.upjs.sk) -> main author of XGNOKII

    ftp://ftp.linux.cz/pub/linux/people/pavel_janik/Gnokii/ -site of (Pavel Janik Pavel.Janik@linux.cz). Here is gnokii 0.3.3_pre5

    http://linuxcare.com.au/download/gnokii/pre/ -site of Hugh Blemings (hugh.blemings@vsb.com.au)

    http://www.gadgets.co.uk/nokia21xx/index.html -protocol for Nokia 2110

    http://www.rjh.org.uk/nokia/7110cal.htm -protocol for calendar for N7110

    http://priv5.onet.pl/wa/junk/mbus/ -protocol for Nokia 2110 and old phones

    http://www.tec.puv.fi/~s98114/GSM/FBUS.html -protocol for NHx models

    http://lsc.kva.hu/dl/README.MSGTYPES.txt -protocol for NSx models or (better ;-)))) info/fbus.txt

    http://www.venia.net/tdma/ -protocol for TDMA phones

    Ante la incompatibilidad de gnokii con el IR (o eso me parece) buscando he encontrado otra rama de desarrollo basada en gnokii. Al parecer que hay un tio que se ha cansado de que los de gnokii no le hicieran caso con los parches y se ha creado su propia rama de desarrollo. Se trata de mygnokii.

    http://www.mds.mdh.se/~cel95eig/mygnokii

    Todavía estoy pendiente de probar este paquete.

    6.3 GSM-utils

    Encontramos otra linea de herramientas para trabajar con el movil-gsm. El paquete son las gsm-utils.
    Además de trabajar con el smsstore (tb lo hace gnokii) tiene una implementación sobre comandos AT para Nokia que creo que está muy chula también.

    El paquete soporta:

  • Nokia 6150/Xircom REM56G.100
  • Nokia 6150/Options "GSM-Ready® Cellular-Only" modem from Option International
  • Nokia 6210/- (Linux IrDA serial device)
  • Nokia 8810/- (Linux IrDA serial device)
  • Siemens S10D/Dr Neuhaus Gipsy Card GSM
  • Siemens S25/- (Linux IrDA serial device)
  • Siemens S35i/- (Linux IrDA serial device)
  • Ericcson SH888/- (Linux IrDA serial device)
  • Ericsson 6050102/GM 12 GSM module - -/Siemens M20T (stand-alone GSM module) - -/Wavecom WM02 GSM (stand-alone GSM module)
  • Nokia 7110 (firware rev 4.80)/- (Linux IrDA serial device)
  • Nokia 8290 (USA GSM 1900MHz)/- (Linux IrDA serial device)
  • Como veis no es compatible con el 6150 via IR. Con el 7110 y el 8210 se supone que sin problemas.

    Entre todas las utilidades que encontramos en el paquete, llamar la atención de gsmctl. Al parecer implementa una serie de comandos AT para ver las especificaciones del teléfono. Según leo en la documentación de mygnokii (nada que ver con este paquete) es posible optener información del móvil desde los comandos AT del módem.Sería de la siguiente manera:

    ATDT number;
    dial voice
    AT+CGSN
    get IMEI
    AT+CGMI
    get phone manufacter
    AT+CGMM
    get phone model
    AT+CGMR get hardware and firmware version AT+VTS=a,b,c,d; send "abcd" DTMF 
    sequence
                
    

    De esta forma, os pego una salida real del comando gsmctl. Y os lo explico al final.


    annapurna:~# gsmctl device /dev/ircomm0 ALL
    <ME0>  Manufacturer: Nokia Mobile Phones
    <ME1>  Model: Nokia 8210
    <ME2>  Revision: SW5.26
    <ME3>  Serial Number: 350112107500xxx
    <OP0>  Status: current  Long name: "   Short name: "   Numeric name: 21401
    <OP1>  Status: forbidden  Long name: "   Short name: "   Numeric name: 21403
    <OP2>  Status: forbidden  Long name: "   Short name: "   Numeric name: 21407
    <CURROP0>  Long name: "   Short name: "   Numeric name: 21401  Mode: automatic
    <FLSTAT0>  'PS'
    <FLSTAT1>  'SC'
    <FLSTAT2>  'AO'
    <FLSTAT3>  'OI'
    <FLSTAT4>  'OX'
    <FLSTAT5>  'AI'
    <FLSTAT6>  'IR'
    <FLSTAT7>  'FD'
    <FLCAP0>  'PS' 'SC' 'AO' 'OI' 'OX' 'AI' 'IR' 'AB' 'AG' 'AC' 'FD'
    <PW0>  'PS' 5
    <PW1>  'SC' 8
    <PW2>  'AB' 4
    <PW3>  'P2' 8
    <CLIP0>  off
    <FORW0.0>  UnconditionalReason  Voice  active number:   subaddr:   time: 
    134576720
    <FORW0.1>  UnconditionalReason  Data  active number:   subaddr:   time: 
    1073785150
    <FORW0.2>  UnconditionalReason  Fax  active number:   subaddr:   time: 3
    <FORW1.0>  MobileBusyReason  Voice  active number:   subaddr:   time: 134576720
    <FORW1.1>  MobileBusyReason  Data  active number:   subaddr:   time: 1073785150
    <FORW1.2>  MobileBusyReason  Fax  active number:   subaddr:   time: 3
    <FORW2.0>  NoReplyReason  Voice  active number: ++34637670xxxxxx  subaddr:  
    time: -1
    <FORW2.1>  NoReplyReason  Data  active number:   subaddr:   time: 1073785150
    <FORW2.2>  NoReplyReason  Fax  active number:   subaddr:   time: 3
    <FORW3.0>  NotReachableReason  Voice  active number: ++34637670xxxxxx  subaddr:  
     time: -1
    <FORW3.1>  NotReachableReason  Data  active number:   subaddr:   time: 
    1073785150
    <FORW3.2>  NotReachableReason  Fax  active number:   subaddr:   time: 3
    <BATT0>  0 ME is powered by the battery
    <BATT1>  50
    <BITERR0>  99
    <SCA0>
    <CSET0>  'GSM' 'HEX' 'IRA' 'PCCP437' 'PCDN' '8859-1'
    <CSET1>  'GSM'
    <SIG0>  31
              
    

    Ahora la explicacion por partes:

    ME son las líneas de Mobile Equipment, de esta forma tenemos...


    <ME0>  Manufacturer: Nokia Mobile Phones
    <ME1>  Model: Nokia 8210
    <ME2>  Revision: SW5.26
    <ME3>  Serial Number: 350112107500xxx
              
    

    El ME3 es el IMEI. Ni que decir que las xxx las he puesto yo por pura paranoia.


    <OP0>  Status: current  Long name:    Short name:    Numeric name: 21401
    <OP1>  Status: forbidden  Long name: "   Short name: "   Numeric name: 21403
    <OP2>  Status: forbidden  Long name: "   Short name: "   Numeric name: 21407
              
    

    El comando OP nos dice qué operadoras estan en la red disponibles. Cual es la que está en uso y cuales están disponibles o prohibidas.
    Hay que tener en cuenta que:

  • 21401 Airtel
  • 21407 Movistar
  • 21403 Amena
  • Las opciones del estado son:

  • unknown Deconocido
  • current Usado actualmente
  • available Disponible
  • forbidden Están operativos pero prohibidos para usarlos.

  • <CURROP0>  Long name:    Short name:    Numeric name: 21401  Mode: automatic
    

    Pues además de decir lo mismo que el OP nos aporta si la selección del operador es automática o manual.


    <FLSTAT0>  'PS'
    <FLSTAT1>  'SC'
    <FLSTAT2>  'AO'
    <FLSTAT3>  'OI'
    <FLSTAT4>  'OX'
    <FLSTAT5>  'AI'
    <FLSTAT6>  'IR'
    <FLSTAT7>  'FD'
    <FLCAP0>  'PS' 'SC' 'AO' 'OI' 'OX' 'AI' 'IR' 'AB' 'AG' 'AC' 'FD'
              
    

    Nos muestra el tipo de bloqueos sobre el teléfono que hay disponible.

    (man gsmctl)

  • PS - Código de seguridad del teléfono, en ocasiones por defecto es 12345
  • SC - PIN
  • AO - Llamadas salientes restringidas
  • OI - Llamadas salientes internaciones restringidas
  • OX - Llamadas salientes internaciones restringidas excepto el pais de casa.
  • AI - Llamadas entrantes restringidas.
  • IR - Pirula con el roadmin, no se...
  • AB - PUK???
  • AG, AC, FD mirar man...
  • Luego tenemos:


    <PW0>  'PS' 5
    <PW1>  'SC' 8
    <PW2>  'AB' 4
    <PW3>  'P2' 8
              
    

    Se supone que son los tamaños de almacenamiento para cada una de las llaves. Lo del 8 no lo tengo muy claro. Parece ser que, como es un móvil de empresa, dispone de dos pins, uno el de la empresa y otro el normal...


    <FORW0.0>  UnconditionalReason  Voice  active number:   subaddr:   time: 
    134576720
    <FORW0.1>  UnconditionalReason  Data  active number:   subaddr:   time: 
    1073785150
    <FORW0.2>  UnconditionalReason  Fax  active number:   subaddr:   time: 3
    <FORW1.0>  MobileBusyReason  Voice  active number:   subaddr:   time: 134576720
    <FORW1.1>  MobileBusyReason  Data  active number:   subaddr:   time: 1073785150
    <FORW1.2>  MobileBusyReason  Fax  active number:   subaddr:   time: 3
    <FORW2.0>  NoReplyReason  Voice  active number: ++34637670xxxxxx  subaddr:  
    time: -1
    <FORW2.1>  NoReplyReason  Data  active number:   subaddr:   time: 1073785150
    <FORW2.2>  NoReplyReason  Fax  active number:   subaddr:   time: 3
    <FORW3.0>  NotReachableReason  Voice  active number: ++34637670xxxxxx  subaddr:  
     time: -1
    <FORW3.1>  NotReachableReason  Data  active number:   subaddr:   time: 
    1073785150
    <FORW3.2>  NotReachableReason  Fax  active number:   subaddr:   time: 3
              
    

    Esto son los desvios.

    No sé exactamente muy bién, pero el MobileBusyReason es cuando está ocupado, el NoReplyReason cuando no se contesta y el NotReachableReason cuando está apagado Lo hace para voz, fax y datos.

    El number es el número donde se desvía, en este caso el contestador. (las xxx las he puesto por paranoia ;)).

    El time es el tiempo que tarda en ponerse. No sé si por segundos, décimas, o por número de tonos, la verdad. Lógicamente me da que -1 es porque no espera nada.


    <BATT0>  0 ME is powered by the battery
    <BATT1>  50
              
    

    Forma de suministro de energia y estado de la batería. Se lee perfectamente, alimentado por la bateria y al 50%.
    Otro caso podria ser:


    <BATT0>  1 ME has a battery connected, but is not powered by it
    <BATT1>  70
    

    Aquí el teléfono está enchufado a la luz.


    <BITERR0>  99
    

    En caso de agún tipo de error se muestra aquí. Sería un error de 0 a 7 y en caso de 99 es que no es detectable o no hay.


    <SCA0> 
    

    Algo del centro de mensajes. Siempre lo he visto vacio.


    <CSET0>  'GSM' 'HEX' 'IRA' 'PCCP437' 'PCDN' '8859-1
    <CSET1>  'GSM'
    

    Juegos de caracteres disponibles y cual es el usado.


    <SIG0>  31
    

    Señal de recepción:

  • 0
    -113 dBm or less
  • 1
    -111 dBm
  • 2...30
    -109... -53 dBm (in steps of 2 dBm)
  • 31
    -51 dBm or greater
  • 99
    not known or not detectable
  • NOTA: Por cierto, el parametro ALL del gsmctl con el 7110 no me ha funcionado. A la hora de optener los desvíos da un fallo por lo que se corta el ALL (no se si es cosa de este 7110 o general).
    Lo que SI se puede hacer es ir llamando parámetro por parámetro: BATT, OP, SIG etc etc...

    6.4 Conexión a Internet

    Nokia 6150

    El Nokia 6150 tiene la particularidad de no tener un módem AT que nos solventase la faena. El módem es mas bien parecido a lo que conocemos como Winmodem. Por llamarlo de alguna forma.

    Por otro lado, el stack IRDA no cumple al 100% con las especificaciones. Por lo tanto todo tipo de comunicación via 6150 a traves de IR tiene la particularidad de no entenderse con los estándar.

    Todo esto nos sirve de algo?. Pues con el 6150 que he probado yo, absolutamente para nada.

    No he conseguido hacer ir ninguno de los programas con el 6150. En el tráfico observamos algo como:


    12:47:28.642811 xid:cmd ffffffff < fb0c0000 S=6 s=* Nokia 6100 hint=8101 [ PnP 
    Telephony ] (28)
    ff3f0100000cfbffffffff01ff008101004e6f6b6961203631303000 . ? . . . . . . . . . . 
    . . . . . N o k i a   6 1 0 0 .
    12:47:28.702404 snrm:cmd ca=fe pf=1 2b6dcfa5 < fb0c0000 new-ca=46 (32)
    ff9300000cfba5cf6d2b4601013e8201078301018401018501fc8601010801ff . . . . . . . . 
    m + F . . > . . . . . . . . . . . . . . . . . .
    

    <

    El anuncio de IrCOMM o IrOBEX no aparece. Los tios de gnokii dicen que si lo han hecho ir desde SIR. Pos fale, yo llevo probando unos tres dias y no hay manera santa de que vaya.

    Parece ser que a lo mejor funciona con un firm superior al que tenía.

    NOTA: el 6150 de las pruebas usaba v5.22

    Eso si, no puedo decir lo mismo desde el cable. Con el cable funciona todo de cojones. Por eso puse en lo de "elementos necesarios" que haría falta un cable. Pues bien, con el 6150 va todo, pero con cable.

    Lógicamente, como he dicho y no me he equivocado: ¿Cómo has hecho ir el módem aunque sea desde cable si es un winmodem?. Pues efectivamente no puedes enchufarle un wvdial directamente. Los tios de gnokii han creado un demonio (gnokiid) que permite utilizar el módem con comandos AT, como si de uno 100% compatible se tratase.

    Aun así el tema de gnokki es algo raro. Al parecer hay una persona que les ha enviado multitud de parches que han sido ignorados. Visto lo visto, lo que han hecho es, como siempre, sacar una nueva rama. ¡Vivan los esfuerzos absurdos!. El programa se llama 'mygnokii' basado al 100% en el original, pero con algunas cosas retocadas... no puedo hablar mucho de esto porque aín estoy de pruebas. En futuras revisiones del artículo se irá completando la información.

    La versión que tengo aquí se llama 0.3.3_pre8-gold_2001_11_03.

    Se puede bajar de: http://www.mds.mdh.se/~cel95eig/mygnokii

    Nokia 7110/8210

    La interconexión del portátil con un 7110 o un 8210 es muchísimo mas fácil. Una vez activado el IR en el móvil tan solo hace falta que el wvdial apunte al dispositivo para que funcione. De esta forma en el wvdial.conf ponéis:

    Modem = /dev/ircomm0
    Baud = 9600
    Phone = telefonillo
    Username = nombre_De_usuario
    Password = contraseña_de_la_conexion
    New PPPD = yes
    

    Atentos sobre todo a los Baud, he intentado hacer ir ambos móviles, tanto 7110 como 8210 (que se suponen soportan 14400), a 14400 y no ha habido manera de conectar.

    Por lo demás, a partir de ese momento es como un módem normal.

    NOTA: Firm del 7110 de las pruebas: v4.84.


    Página siguiente Página anterior Índice general