Configuration Cell/Modem Bluetooth

Se, come me del resto, non ricordate l'indirizzo del vostro cellulare blutooth e il canale del servizio che dovete configurare (il modem in questo caso), il comando sdptool vi aiuta sicuramente.
Se non lo avete installato per la fedora si trova nel pacchetto bluez-util (FC9: bluez-utils-3.30-2.fc9.x86_64), quindi un bel yum install e via.

sdptool browse


In questo modo avrete avviato la scansione di tutti i dispositivi bluetooth raggiungibili e relativi servizi esposti.
L'output che otterrete sarà qualcosa di simile a questo:


[mmornati@bcmmornati ~]$ sdptool browse
Inquiring ...
Browsing 00:17:B0:FB:6E:7C ...
Service Name: OBEX File Transfer
Service RecHandle: 0x10002
Service Class ID List:
"OBEX File Transfer" (0x1106)
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: 10
"OBEX" (0x0008)
Language Base Attr List:
code_ISO639: 0x454e
encoding: 0x6a
base_offset: 0x100
Profile Descriptor List:
"OBEX File Transfer" (0x1106)
Version: 0x0100

Service Name: OBEX Object Push
Service RecHandle: 0x10003
Service Class ID List:
"OBEX Object Push" (0x1105)
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: 9
"OBEX" (0x0008)
Language Base Attr List:
code_ISO639: 0x454e
encoding: 0x6a
base_offset: 0x100
Profile Descriptor List:
"OBEX Object Push" (0x1105)
Version: 0x0100

Service Name: Imaging
Service RecHandle: 0x10004
Service Class ID List:
"Imaging Responder" (0x111b)
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: 15
"OBEX" (0x0008)
Language Base Attr List:
code_ISO639: 0x454e
encoding: 0x6a
base_offset: 0x100
Profile Descriptor List:
"Imaging" (0x111a)
Version: 0x0100

Service Name: SyncMLClient
Service RecHandle: 0x10005
Service Class ID List:
UUID 128: 00000002-0000-1000-8000-0002ee000002
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: 11
"OBEX" (0x0008)
Language Base Attr List:
code_ISO639: 0x454e
encoding: 0x6a
base_offset: 0x100
Profile Descriptor List:
"" (0x00000002-0000-1000-8000-0002ee000002)
Version: 0x0100

Service Name: Nokia OBEX PC Suite Services
Service RecHandle: 0x10006
Service Class ID List:
UUID 128: 00005005-0000-1000-8000-0002ee000001
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: 12
"OBEX" (0x0008)
Language Base Attr List:
code_ISO639: 0x454e
encoding: 0x6a
base_offset: 0x100
Profile Descriptor List:
"" (0x00005005-0000-1000-8000-0002ee000001)
Version: 0x0100

Service Name: Dial-Up Networking
Service RecHandle: 0x10007
Service Class ID List:
"Dialup Networking" (0x1103)
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: 3
Language Base Attr List:
code_ISO639: 0x454e
encoding: 0x6a
base_offset: 0x100
Profile Descriptor List:
"Dialup Networking" (0x1103)
Version: 0x0100

Service Name: Hands-Free Audio Gateway
Service RecHandle: 0x1000a
Service Class ID List:
"Handfree Audio Gateway" (0x111f)
"Generic Audio" (0x1203)
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: 1
Language Base Attr List:
code_ISO639: 0x454e
encoding: 0x6a
base_offset: 0x100
Profile Descriptor List:
"Handfree Audio Gateway" (0x111f)
Version: 0x0101

Service Name: Headset Audio Gateway
Service RecHandle: 0x1000b
Service Class ID List:
"Headset Audio Gateway" (0x1112)
"Generic Audio" (0x1203)
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: 2
Language Base Attr List:
code_ISO639: 0x454e
encoding: 0x6a
base_offset: 0x100
Profile Descriptor List:
"Headset" (0x1108)
Version: 0x0100


Ammetto di non avere idea di che telefono siano le informazioni qui sopra riportate (ho lanciato il comando in treno e il mio cellulare è invisibile alle ricerche; fortunatamente c'è sempre qualcuno che non tiene troppo alla sicurezza ;)

Da qui però, come detto in precedenza, avrete tutto quanto è necessario per poter effettuare la vostra configurazione.
Nel caso dell'esempio, l'indirizzo (paragonabile al mac address delle schede di rete) è:


00:17:B0:FB:6E:7C


mentre il canale del servizio che ci interessa è quello identificato (nel caso dei Nokia) dal nome "Dial-Up Networking", sul cellulare della sfortunata cavia è il 3.
Notate bene che varia molto da modello a modello anche il canale, quindi è assolutamente necessario che recuperiate i vostri dati per poter effettuare la configurazione.

A questo punto, con le informazioni appena prese andiamo a configurarci un bel linux device.
Procediamo innanzitutto verificando che il nostro telefono funzioni davvero:


rfcomm connect /dev/rfcomm0 00:17:B0:FB:6E:7C 3


dove /dev/rfcomm0 è il nome che abbiamo scelto per il nostro dispositivo; i numeri che seguono dovresti riconoscerli da soli.

Se tutto va come dovrebbe andare dovreste, come prima cosa, ritrovarvi la richiesta di paring (inserimento di un pin su entrambi i dispositivi) che permetterà di aprire il canale e successivamente un bel messaggino vi dirà che è connesso e dovrete premere CTRL + C per chiudere la comunicazione con il vostro cellulare.

Visto che dover fare questa cosa ogni volta che dovete collegarvi via modem non per niente comoda, andiamo a generarci una hard-configuration che resti indelebilmente scritta sul vostro disco (almeno fino a che non cambierete distribuzione ;)).

Modifichiamo il file /etc/bluetooth/rfcomm.conf con i parametri che già dovreste conoscere a memoria (io ribadisco che non li ho mai imparati, quindi direi che non è preoccupante se non li si ricorda):


#
# RFCOMM configuration file.
#

rfcomm0 {
# Automatically bind the device at startup
bind yes;

# Bluetooth address of the device
device 00:17:B0:FB:6E:7C;

# RFCOMM channel for the connection
channel 3;

# Description of the connection
comment "My Nokia";
}

Dopo averlo aperto avrete notato che è praticamente già tutto scritto dentro il file, dovrete solo decommentare e personalizzare ;)

Ora avrete il device rfcomm0 configurato e pronto all'occorrenza.


Per poter invece fisicamente collegarsi ad internet serve dell'altro. Io prediligo Gnome PPP perchè mi mostra anche il tempo di connessione (pagando ad ore non fa male vederlo), però se non volete assolutamente usare un applicativo grafico basta e avanza wvdial (che è comunque ciò che usa anche Gnome PPP).
Non staremo a dilungarci molto sulla configurazione di Gnome PPP perchè è abbastanza banale e perchè i parametri dipendono dall'operatore telefonico con cui vi dovete collegare.
La cosa importante (sia in GnomePPP che in wvdial) è che mettiamo come Modem /dev/rfcommo (o quello che vi siete scelti in fase di configurazione).

That's all!