jystervinou / freebox-caller-id

Recevez des notifications quand le téléphone fixe de la Freebox sonne (Révolution ou Mini 4k). Ne vous déplacez plus pour rien (appel indésirable, numéro masqué...) ! Notification par SMS Free Mobile (numéro ou nom de l'appelant) ou notification vocale directement via le haut-parleur de la Freebox.
24 stars 8 forks source link
free-mobile freebox freebox-os

Freebox Caller ID

Vous en avez assez d'aller voir qui appelle sur votre téléphone Freebox fixe, quand la plupart du temps il s'agit d'un appel indésirable ou d'un numéro caché ?

Ce script est fait pour vous !

Quand le téléphone fixe de la Freebox (Révolution ou Mini 4K) sonne, ce script envoie une notification, au choix :

Vous pouvez alors décider de vous lever pour aller répondre ou pas.

Prérequis

Vous devez récupérer votre identifiant et la clé d'identification de l'API de notification SMS sur votre compte Free Mobile.

Vous devez lancer le script 24h/24 sur un serveur qui se trouve sur le réseau local du Freebox Server. Le script a été testé avec un Raspberry Pi 3.

Installation

FFmpeg

FFmpeg sert à jouer le fichier son vers le haut-parleur du Freebox Server. (via AirTunes)

Pour le Pi3 (et le 2 ??) :

wget https://johnvansickle.com/ffmpeg/releases/ffmpeg-release-armhf-32bit-static.tar.xz
tar -xJf ffmpeg-release-armhf-32bit-static.tar.xz
sudo cp ffmpeg-3.4-armhf-32bit-static/ff* /usr/local/bin/

Le chemin de ffmpeg est /usr/local/bin/ffmpeg

Pour le Pi :

wget https://johnvansickle.com/ffmpeg/releases/ffmpeg-release-armel-32bit-static.tar.xz
tar -xJf ffmpeg-release-armhf-32bit-static.tar.xz
sudo cp ffmpeg-3.4-armhf-32bit-static/ff* /usr/local/bin/

Le chemin de ffmpeg est /usr/local/bin/ffmpeg

Svoxpico

Svoxpico est un des meilleurs utilitaires de synthèse de voix sous linux.

sudo apt-get install libttspico-utils

Sox

Sox est un utilitaire "couteau suisse" pour tout ce qui est manipulation de fichiers sons.

sudo apt-get install sox

Freebox Caller ID

Le script principal qui orquestre le tout.

git clone https://github.com/jystervinou/freebox-caller-id.git

cd freebox-caller-id

npm install

Pour mettre à jour Freebox Caller ID, vous pouvez faire un git pull dans le répertoire freebox-caller-id.

Fonctionnement

1- Créer un fichier config/local.json en prenant pour modèle le fichier config/default.json (Renseigner vos identifiants Free Mobile pour l'API de notification par SMS).

2- Initialiser le script pour s'authentifier auprès de la Freebox. Une demande d'autorisation va s'afficher sur l'écran LCD de Freebox Server. Répondez oui avec la flèche droite.

node caller_id.js init

3- Vous pouvez maintenant lancer le script principal :

node caller_id.js

Carnet d'adresse de la Freebox

Freebox Caller ID utilise le carnet d'adresse de la Freebox pour trouver le nom de l'appelant.

La Freebox Révolution et la Freebox Mini 4k possèdent un carnet d'adresse intégré pour gérer vos contacts.

Le plus simple est d'importer en masse vos contacts dans le carnet d'adresses. Par exemple, vous pouvez exporter vos contacts à partir de Google Contacts. (Format vcard/vcf)

Options

1- Vous pouvez renseigner plusieurs numéros Free Mobile destinataires des notifications. Il suffit de rajouter un nouvel élément dans l'Array 'freemobile' dans config/local.json.

{
  "freemobile" : [{
      "login" : "12345678",
      "pass" : "xxxxxxxxxxxxxx"
    },
    {
      "login" : "87654321",
      "pass" : "yyyyyyyyyyyyyy"
    }
  ]
}

2- Vous pouvez customiser le template des SMS, en rajoutant un champ 'template' (utilise doT et sa syntaxe):

{
  "freemobile" : [{
    "login" : "12345678",
    "pass" : "xxxxxxxxxxxxxx",
    "template" : "{{=call.number}}"
  }]
}

Les champs disponibles sont call.number, call.name, call.type, call.id, call.duration, call.datetime, call.contact_id, call.line_id, call.new (valeurs fournies par FreeboxOS).

3- Pour envoyer le nom de l'appelant sur le haut-parleur du Freebox Server, il faut ajouter un champ voice2freebox dans le fichier de conf :

{
  "freemobile" : [{
      "login" : "12345678",
      "pass" : "xxxxxxxxxxxxxx"
    }
  ],
  "voice2freebox" : {
    "pico2wave" : "/usr/bin/pico2wave",
    "sox" : "/usr/bin/sox",
    "ffmpeg" : "/usr/local/bin/ffmpeg",
    "before" : "./starwars.wav",
    "middle" : "./r2d2.wav",
    "after" : "./theend.wav",
    "repeat" : 3
  }
}

Vous ne devez mettre les champs pico2wave, sox et ffmpeg seulement si vous souhaitez modifier les valeurs par défaut (qui sont celles juste au dessus).

Note : les fichiers wav doivent avoir un Sample Rate de 16000, vous pouvez utiliser soxi test.wav pour le vérifier. (soxi est installé en même temps que sox)

Pour modifier le Sample Rate d'un fichier wav : sox entree.wav -r 16000 sortie.wav

Auteurs

See also the list of contributors who participated in this project.

License

This project is licensed under the GPL License - see the LICENSE.md file for details

Remerciements