Environnement testé
Les mobiles:
– Samsung
– Nokia
Les clefs Bluetooth:
root@cxx[~]$ lsusb
Bus 002 Device 004: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)
Bus 002 Device 003: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)
Bus 002 Device 002: ID 05e3:0608 Genesys Logic, Inc. USB-2.0 4-Port HUB
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
...
Pilotes Linux
Pour les clefs USB Bluetooth, il faut les pilotes USB liés à la carte (ehci_hcd, ohci_hcd, …).
Puis:
- rfcomm
- sco
- l2cap
- btusb
- bluetooth
On les trouve dans « Networking support »-> »Bluetooth subsystem support ».
Après il y a besoin de L2CAP, SCO et RFCOMM. Les autres sont pas utiles.
Paquets Debian
- bluetooth
- bluez
- bluez-alsa
- asterisk-mobile
Configuration bluez4 (Debian)
Dans main.conf, on désactive le plugin réseau:
DisablePlugins = network,netlink
Class = 0x3e0100;
Puis on configure le RFCOMM (dans /etc/bluetooth/rfcomm.conf)
#
# RFCOMM configuration file.
#
rfcomm0 {
# Automatically bind the device at startup
bind yes;
# Bluetooth address of the device
device xx:xx:xx:xx:xx:xx;
# RFCOMM channel for the connection
channel 13;
# Description of the connection
comment "Tel1";
}
rfcomm1 {
bind yes;
device yy:yy:yy:yy:yy:yy;
channel 5;
comment "Tel2";
}
On relance le daemon bluetooth
root@cxx[/etc/bluetooth]$ /etc/init.d/bluetooth restart
root@cxx[/etc/bluetooth]$ dbus-send --system --dest=org.bluez /org/bluez/hci0 org.bluez.Adapter.SetMode string:discoverable
root@cxx[/etc/bluetooth]$ dbus-send --system --dest=org.bluez /org/bluez/hci1 org.bluez.Adapter.SetMode string:discoverable
root@cxx[/etc/bluetooth]$ hciconfig hci0 piscan
root@cxx[/etc/bluetooth]$ hciconfig hci1 piscan
root@cxx[/etc/bluetooth]$ hcitool dev
Devices:
hci0 00:...
hci1 00:...
root@cxx[/etc/bluetooth]$ hcitool scan
Scanning ...
xx:xx:xx:xx:xx:xx Tel1
yy:yy:yy:yy:yy:yy Tel2
root@cxx[/etc/bluetooth]$ /usr/share/doc/bluez/examples/simple-agent hci0 xx:xx:xx:xx:xx:xx
Normalement ça demande un code dans le shell qui sera demandé juste après sur le mobile. Sur le mobile, autoriser le server a se connecter automatiquement.
Configuration Asterisk
Il faut avoir activé le module chan_mobile (dans modules.conf).
Dans le fichier /etc/asterisk/mobiles.conf il faut mettre les ID des clefs Bluetooth et des mobiles:
[adapter]
id=apm0
address=00:...
[adapter]
id=apm1
address=00:....
[Tel2]
address=yy:yy:yy:yy:yy:yy
port=5
context=in-gsm
adapter=apm0
[Tel1]
address=xx:xx:xx:xx:xx:xx
port=13
context=in-gsm
adapter=apm1
cxx*CLI> mobile search
Address Name Usable Type Port
xx:xx:xx:xx:xx:xx Tel1 Yes Phone 13
yy:yy:yy:yy:yy:yy Tel2 Yes Phone 5
cxx*CLI> mobile show devices
ID Address Group Adapter Connected State SMS
Tel1 xx:xx:xx:xx:xx:xx 0 apm1 No None Yes
Tel2 yy:yy:yy:yy:yy:yy 0 apm0 No None Yes