Le deuxième exercice lié à PAW consiste a faire une levée de doutes en cas d’effraction ou autre besoin de ce style. Le principe est simple. Au lieu de lancer une caméra afin de voir ce qu’il se passe à la maison on lance un appel téléphonique afin d’écouter ce qu’il se passe. Cette fonctionnalité doit être déclenchable automatiquement je recevrai donc un appel de la maison. Je dois également pouvoir volontairement me faire appeler par le système domotique. Paw permet cela et toujours via une commande HTTP.
Le script du jour propose les spécificités suivantes:
- Pouvoir être appelé par une simple requête HTTP
- Pouvoir passer en paramètre le numéro de téléphone à appeler
- Raccrocher automatiquement la communication téléphonique à la maison dès que je raccroche.
Pour obtenir le service attendu encore une fois il suffit de placer le script sur le serveur et le tour est joué.
Voici le script que je vous propose:
<html> <head> <title>Appel téléphonique</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> </head> <body> <h1>Appel téléphonique</h1> <bsh> import android.app.Service; import android.content.Intent; import android.net.Uri; service = (Service) server.props.get("serviceContext"); numero = parameters.get("numero"); if(numero != null && !numero.equals("")) { intent = new Intent(Intent.ACTION_CALL); intent.setData(Uri.parse("tel:" + numero)); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); //on lance l'appel service.startActivity(intent); } </bsh> <h2>Paramètres</h2> <p> La page prend en paramètre d'entrée les éléments suivants:<br> numero : le numéro de téléphone à appeler<br> </p> <h2>Fonctionnement</h2> <p> L'appel se fera donc de la manière suivante: <br> http://192.168.0.10:8080/scripts/dial.xhtml?numero=0102030405<br> </p> <h2>Valeurs</h2> <p> En train d'appeler le tél : <bsh>$$.print(numero); </bsh><br> </p> </body> </html>
Encore une fois le script n’est pas trop compliqué grâce au fait que l’on utilise des fonctionnalités existantes sur Android et présentées de manière packagées en BeanShell dans PAW.
L’installation se fait de la même manière que pour le script concernant la reconnaissance vocale. Le prérequis est bien entendu d’avoir installé au préalable le serveur PAW sur votre téléphone Android comme présenté dans le précédent article:
- Télécharger le code précédent et le sauvegarder le sur votre disque dur dans un fichier appelé : “dial.xhtml”
- Se connecter au serveur PAW.
- Accéder au gestionnaire de fichiers : Menu Media->File manager
- Dans le répertoire /sdcard/paw/html de votre téléphone créer le répertoire “actions” s’il n’existe pas encore
- Indiquer l’endroit de votre disque dur où se trouve le script à uploader sur le serveur PAW en cliquant sur “Parcourir”.
- Sélectionner le fichier “dial.xhtml” et cliquer sur “Open”.
- Effectuer l’upload en cliquant sur “Upload”.
- Le message suivant vous confirme le chargement du script sur le serveur.
Il ne vous reste plus qu’à renseigner l’URL adéquate dans un scénario pour une Zibase ou bien dans un périphérique HTTP sur un serveur eedomus.
L’URL simplifiée à renseigner sera de la forme:
http://192.168.0.10:8080/actions/dial.xhtml?numero=0102030405
En modifiant “192.168.0.10” par l’adresse IP de votre serveur PAW et “0102030405” par le numéro de téléphone que vous souhaitez faire appeler.
Je n’ai rien dû faire de particulier pour que le téléphone – serveur PAW raccroche. Lorsqu’il m’appelle et que je mets fin à la conversation, cela met également un terme à l’appel du téléphone appelant.
Cette méthode à toutefois une limite: la qualité du micro de votre téléphone. En effet ils sont fabriqués pour ne pas trop capter les bruits environnants alors que dans le cas présent c’est plutôt cela qui serait souhaitable! C’est l’occasion de recycler un kit main libre ou un kit Bluetooth…
Cette méthode peut être utilisés par contre pour que des personnes dépendantes puissent appeler un proche facilement en appuyant par exemple sur un gros bouton que vous aurez mis à sa disposition. Le bouton doté d’un actionneur déclencherait le scénario préparé à l’avance pour vous appeler.
Auriez-vous une utilité à soumettre?