Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente Prochaine révisionLes deux révisions suivantes |
informatique:reseau:messagerie:passerelle_sms [2012/07/31 11:48] – [Gestion du code PIN] bn8 | informatique:reseau:messagerie:passerelle_sms [2012/11/16 13:58] – Ajout du cas particulier de la clé Huawei E3131 bn8 |
---|
Nous utiliserons une clé USB 3G **Huawei K4511** dans ce test. Ce type de clé ont deux mode d'utilisation : | Nous utiliserons une clé USB 3G **Huawei K4511** dans ce test. Ce type de clé ont deux mode d'utilisation : |
| |
- un mode proposant à l'ordinateur sur lequel il est connecté, un lecteur CD virtuel contenant le logiciel d'installation Windows de la clé | * un mode proposant à l'ordinateur sur lequel il est connecté, un lecteur CD virtuel contenant le logiciel d'installation Windows de la clé |
- un second mode proposant un modem GSM que nous voulons utiliser | * un second mode proposant un modem GSM que nous voulons utiliser |
| |
Par défaut, lorsque l'on connecte la clé USB à la machine, celle-ci est en mode "CD virtuel". Pour basculer dans le mode //modem GSM//, nous allons utiliser l'outil //usb-modeswitch// qui s'en occupera. | Par défaut, lorsque l'on connecte la clé USB à la machine, celle-ci est en mode "CD virtuel". Pour basculer dans le mode //modem GSM//, nous allons utiliser l'outil //usb-modeswitch// qui s'en occupera. |
| |
<note important>En fonction de votre clé, il sera peut-être nécessaire d'installer un kernel Linux plus récent pour que le module **option** (driver USB GSM modem) supporte votre clé. Si le switching fonctionne (les ID vendeur et produit changent bien) mais que le périphérique n'est pas reconnu pas le module //option//, vous pouvez tenter de le faire détecter comme ceci : <code>echo 12d1 14cc > /sys/bus/usb-serial/drivers/option1/new_id</code> | <note important>En fonction de votre clé, il sera peut-être nécessaire d'installer un kernel Linux plus récent pour que le module **option** (driver USB GSM modem) supporte votre clé. Si le switching fonctionne (les ID vendeur et produit changent bien) mais que le périphérique n'est pas reconnu pas le module //option//, vous pouvez tenter de le faire détecter comme ceci : <code>echo 12d1 14cc > /sys/bus/usb-serial/drivers/option1/new_id</code> |
Observer ensuite le résultat dans les logs du kernel et si cela fonctionne vous pouvez automatiser cela via une règle //UDEV// de cette manière : <code>echo 'SUBSYSTEM=="usb", SYSFS{idVendor}=="12d1", SYSFS{idProduct}=="14cc", RUN="/usr/local/bin/detect_usb_key"' > /etc/udev/rules.d/99-usbkey.rules | Observer ensuite le résultat dans les logs du kernel et si cela fonctionne vous pouvez automatiser cela via une règle //UDEV// de cette manière : <code>echo 'SUBSYSTEM=="usb", SYSFS{idVendor}=="12d1", SYSFS{idProduct}=="14cc", RUN="/usr/local/sbin/detect_usb_key"' > /etc/udev/rules.d/99-usbkey.rules |
echo -e '#!/bin/bash\nmodprobe option\necho "12d1 14cc" > /sys/bus/usb-serial/drivers/option1/new_id' > /usr/local/bin/detect_usb_key | echo -e '#!/bin/bash\nmodprobe option\necho "12d1 14cc" > /sys/bus/usb-serial/drivers/option1/new_id' > /usr/local/sbin/detect_usb_key |
chmod 755 /usr/local/bin/detect_usb_key</code> | chmod 755 /usr/local/sbin/detect_usb_key</code> |
</note> | </note> |
| |
| ==== Cas particulier : Huawei E3131 ==== |
| |
| Comme pour une clé **Huawei K4511**, il faut tout d'abord utiliser //usbmodswitch// pour basculer notre clé en mode modem. Pour cela, il faut une version assez récente du paquet **usb_modswitch** (prendre la version //backports// sous Debian Squeeze) qui intègre cette clé. Au cas ou, voilà le contenu du fichier de config : |
| |
| <code> |
| TargetVendor= 0x12d1 |
| TargetProduct= 0x14db |
| |
| MessageContent="55534243123456780000000000000011062000000000000100000000000000" |
| NoDriverLoading=1 |
| </code> |
| |
| Mais Huawei a changé un peu la donne avec ces dernières clés en intégrant la techno //Hi-Link// (http://www.huawei.com/en/about-huawei/newsroom/press-release/hw-093761-e353-data-card.htm). Cette technos à pour but d'afficher à l'ordinateur un simple adaptateur USB Ethernet sur lequel à coup de DHCP on pourra tout simplement se connecter à Internet. C'est nikel si on veut simplement se connecter à Internet justement mais pour nous qui voulons envoyer des SMS... |
| |
| Heureusement, on peut rebasculer la clé en mode modem série et même bloquer la clé dans ce mode ! |
| |
| Pour cela : |
| |
| * Faite un petit coup de DHCP sur l'interface USB ethernet (eth1 pour moi). Vous pouvez aussi simplement vous attribuer un IP dans le réseau 192.168.1.0/24. |
| * Appeler l'URL HTTP suivante : http://192.168.1.1/html/switchProjectMode.html |
| * La clé basculera alors en mode modem série. Si comme moi, le module //option// ne la détecte pas, c'est qu'il faut lui faire détecter manuellement : <code>echo "12d1 1442" > /sys/bus/usb-serial/drivers/option1/new_id</code> |
| * Il nous reste encore à la bloquer dans ce mode. |
| * Connecté vous au premier device ttyUSB présent (/dev/ttyUSB0 pour moi) à l'aide d'un terminal, j'utilise minicom pour ma part : <code>minicom -D /dev/ttyUSB0</code> |
| * Une fois votre terminal connecté, lancer la commande AT suivante : <code>AT^U2DIAG=0</code> |
| * La réponse devrais être //OK//. Il est possible de revenir en arrière en procédant de la même manière et en appelant la commande AT suivante : <code>AT^U2DIAG=119</code> |
| * Débrancher et rebrancher la clé USB. Celle-ci devrais réapparaître sous de nouveaux identifiants : //12d1 1c05//. Il est alors à nouveau nécessaire de la faire reconnaître par le module option : <code>echo "12d1 1c05" > /sys/bus/usb-serial/drivers/option1/new_id</code> |
| |
| |
| |
| |
| |
==== Installer et configurer Gnokii ==== | ==== Installer et configurer Gnokii ==== |
* **gnokii_config** : le fichier de configuration pour gnokii à utiliser | * **gnokii_config** : le fichier de configuration pour gnokii à utiliser |
* Ajouter le transport suivant dans votre fichier //master.cf// : <code>sms unix - n n - 1 pipe | * Ajouter le transport suivant dans votre fichier //master.cf// : <code>sms unix - n n - 1 pipe |
flags=Rq user=gnokii:dialout argv=/usr/local/sbin/mail2gnokii.pl ${user}</code> | flags=Rq user=gnokii:dialout argv=/usr/local/sbin/mail2gnokii ${user}</code> |
| |
* L'utiliser pour le domaine de votre choix, exemple //sms.example.tld//. Pour cela, ajouter dans votre fichier //transport// : <code>sms.example.tld sms</code> | * L'utiliser pour le domaine de votre choix, exemple //sms.example.tld//. Pour cela, ajouter dans votre fichier //transport// : <code>sms.example.tld sms</code> |
Si cela ne vous conviens pas, définissez vos propres commandes en vous inspirant de celle par défaut. | Si cela ne vous conviens pas, définissez vos propres commandes en vous inspirant de celle par défaut. |
| |
| ==== Ajouter/supprimer un numéro de téléphone portable destinataire ==== |
| |
| Le script //mail2gnokii// comporte une sécurité pour éviter que la passerelle soit utilisée pour envoyer des SMS à n'importe qui. La liste **exhaustive** des numéros de téléphone portable destinataires doit être définie dans la variable de configuration //authorized_number// du script. |
| |
| Pour ajouter ou supprimer un numéro de téléphone de cette liste, il faut donc éditer le fichier ///usr/local/sbin/mail2gnokii// et modifier la variable //authorized_number// : <code>@authorized_number=("0600000000","0700000000");</code> |
| |
| |
| |