Jugant amb el bluetooth – I

He gastat bluetooth i linux ampliament pero sempre desde mode gràfic, com que vull saber un poc mes com funciona intentaré gastarlo desde consola jugant amb els comandes de bluez-utils, una serie de ferramentes lliures destinades a la creació de aplicacions que gasten bluetooth..

Primer intentaré vore quin és el meu dispositiu de conexió bluetooth, es un conceptronic bluetooth de 40 metres de radi. (està clar que el mobil no aguanta ni 10…)

vicent@ferrervicent:~$ hciconfig -a
hci0: Type: USB
BD Address: 00:80:5A:46:21:67 ACL MTU: 384:8 SCO MTU: 64:8
UP RUNNING PSCAN ISCAN
RX bytes:1544 acl:7 sco:0 events:57 errors:0
TX bytes:560 acl:5 sco:0 commands:32 errors:0
Features: 0xff 0xff 0x8f 0xfe 0x9b 0xf9 0x00 0x80
Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3
Link policy: RSWITCH HOLD SNIFF PARK
Link mode: SLAVE ACCEPT
Name: ‘ferrervicent-0’
Class: 0x3e0100
Service Classes: Networking, Rendering, Capturing
Device Class: Computer, Uncategorized
HCI Ver: 2.0 (0x3) HCI Rev: 0x7a6 LMP Ver: 2.0 (0x3) LMP Subver: 0x7a6
Manufacturer: Cambridge Silicon Radio (10)

Com podem observar ens dona bastant informació sobre el caxarret, ademés podem vore que el fabricant real es “Cambridge Silicon Radio” i no “Conceptronic” (son coses normals en el mon del hardware…)..

Com que ja sabem prou coses sobre la interfície bluetooth anem a vore que podem fer..

vicent@ferrervicent:~$ hcitool
hcitool – HCI Tool ver 2.24
Usage:
hcitool [options] [command parameters]
Options:
–help Display help
-i dev HCI device
Commands:
dev Display local devices
inq Inquire remote devices
scan Scan for remote devices
name Get name from remote device
info Get information from remote device
cmd Submit arbitrary HCI commands
con Display active connections
cc Create connection to remote device
dc Disconnect from remote device
sr Switch master/slave role
cpt Change connection packet type
rssi Display connection RSSI
lq Display link quality
tpl Display transmit power level
afh Display AFH channel map
lst Set/display link supervision timeout
auth Request authentication
enc Set connection encryption
key Change connection link key
clkoff Read clock offset
clock Read local or remote clock

For more information on the usage of each command use:
hcitool –help

Vejam que les posibilitats son bastant amplies… 🙂

Escanejarem en busca d’algun dispositiu…

vicent@ferrervicent:~$ hcitool -i hci0 scan
Scanning …
08:00:1F:85:4F:E1 GX25.D

I que tenim aci? un mobil.. ” 08:00:1F:85:4F:E1″ es la direcció bluetooth, en hexadecimal com podeu observar, i GX25.D es el nom del dispositiu…

Ja sabem que existix, pero … que podem fer amb això, moltes vegades ens trobarem davant d’un dispositiu bluetooth i subestimarem les seues posibilitats.. pertant, anem a escanejar el mobil en busca de posibles serveis que oferix…

vicent@ferrervicent:~$ sdptool browse 08:00:1F:85:4F:E1
Browsing 08:00:1F:85:4F:E1 …
Service Name: OBEX Object Push
Service RecHandle: 0x10001
Service Class ID List:
“OBEX Object Push” (0x1105)
Protocol Descriptor List:
“L2CAP” (0x0100)
“RFCOMM” (0x0003)
Channel: 4
“OBEX” (0x0008)
Language Base Attr List:
code_ISO639: 0x656e
encoding: 0x6a
base_offset: 0x100
Profile Descriptor List:
“OBEX Object Push” (0x1105)
Version: 0x0100

Service Name: Serial Port
Service RecHandle: 0x10002
Service Class ID List:
“Serial Port” (0x1101)
Protocol Descriptor List:
“L2CAP” (0x0100)
“RFCOMM” (0x0003)
Channel: 5
Language Base Attr List:
code_ISO639: 0x656e
encoding: 0x6a
base_offset: 0x100

Service Name: Dial-up networking
Service RecHandle: 0x10003
Service Class ID List:
“Dialup Networking” (0x1103)
Protocol Descriptor List:
“L2CAP” (0x0100)
“RFCOMM” (0x0003)
Channel: 3
Language Base Attr List:
code_ISO639: 0x656e
encoding: 0x6a
base_offset: 0x100
Profile Descriptor List:
“Dialup Networking” (0x1103)
Version: 0x0100

Service Name: Voice gateway
Service RecHandle: 0x10004
Service Class ID List:
“Headset Audio Gateway” (0x1112)
“Generic Audio” (0x1203)
Protocol Descriptor List:
“L2CAP” (0x0100)
“RFCOMM” (0x0003)
Channel: 1
Language Base Attr List:
code_ISO639: 0x656e
encoding: 0x6a
base_offset: 0x100
Profile Descriptor List:
“Headset” (0x1108)
Version: 0x0100

Service Name: Voice gateway
Service RecHandle: 0x10005
Service Class ID List:
“Handfree Audio Gateway” (0x111f)
“Generic Audio” (0x1203)
Protocol Descriptor List:
“L2CAP” (0x0100)
“RFCOMM” (0x0003)
Channel: 2
Language Base Attr List:
code_ISO639: 0x656e
encoding: 0x6a
base_offset: 0x100
Profile Descriptor List:
“Handsfree” (0x111e)
Version: 0x0101

Com podem observar admitix transferència de fitxers (OBEX Object Push), conexió com si fora per port de serie (Serial Port), gastar el mobil com a modem de l’ordinador (Dial-up networking), conectarli dispositius de veu (Voice gateway) que apareix com a 2 dispositius diferents…

I fins aci ha estat el capitol 1 de “jugant amb bluetooth” espere en pròxims posts anar investigant sobre les possibilitats del bluetooth i anar aconseguint alguna cosa més….

Feu un comentari