chan_mobile avec 2 mobiles

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";
}
!!! Il y a un problème avec les numéros de port

On relance le daemon bluetooth

root@cxx[/etc/bluetooth]$ /etc/init.d/bluetooth restart
Puis on configure la détection des mobiles (normalement les 2 premières commandes font pareils que les 2 dernières):
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
On vérifie que l’on voit bien les mobiles (la commande dev liste les ID des interfaces bluetooth, la commande scan liste les ID des mobiles détectés):
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
Après il faut appareiller les mobiles au serveur (je me souviens plus de la manip exacte):
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
Ensuite vérifier que les mobiles sont accessibles sous Asterisk:
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