web-dev-qa-db-fra.com

Envoyer des messages de notification OSD à tous les systèmes d'un réseau

Ce que j'essaie de faire, c'est d'envoyer des informations d'identification de l'appelant (CID) à partir d'un système exécutant Asterisk + FreePBX à tous les (3) systèmes frontaux MythTV de mon réseau. J'aimerais que les informations CID s'affichent par-dessus tout ce qui se passe (par exemple, que ce soit dans un menu ou pour lire un enregistrement). Finalement, il peut y avoir d'autres informations également, mais pour l'instant le CID serait un excellent début.

Les notifications de style libnotify sont très bien (même si j'ai probablement besoin d'augmenter la taille du texte pour le rendre visible). Je pensais à quelque chose comme Growl , bien que cela ne semble pas exister pour Linux.

Idéalement, je pourrais simplement faire une sorte de diffusion sur l'ensemble du réseau, par exemple, à partir du système FreePBX, je pourrais exécuter une commande comme:

notify --broadcast  --title "Incoming Call"  "Smith J\n613-555-1234"

Et puis sur n'importe quel frontend mythtv, il apparaîtrait quelque part à l'écran.


Remarque: il y a un plugin MythNotify , que j'ai utilisé dans une précédente itération de ma configuration, mais il a une limitation sévère (je crois basée sur la façon dont fonctionne les choses OSD de MythTV) qu'il ne peut afficher que notifications pendant la lecture vidéo: pas dans les menus. Je me souviens également qu'il était difficile d'obtenir un affichage correct: il utilise XML pour la messagerie puis XSLT pour passer au format XML de mythtv. Si vous voulez afficher quelque chose de légèrement différent, vous devez créer une petite poignée de nouveaux fichiers XML et même alors obtenir le message "callerid-from-phonebook.xml" pour le rendre réellement dans le (distant) "callerid-from-phonebook- osd.xml "pour l'affichage est une sorte d'art noir.

4
gregmac

Vous pouvez le faire en utilisant les outils de notification en ligne de commande.

  1. Installez le paquet "libnotify-bin" sur tous les systèmes de votre réseau, qui fournit un outil appelé "notify-send".
  2. Installez le serveur ssh sur tous les systèmes de votre réseau et assurez-vous qu'ils sont configurés pour autoriser les connexions ssh sans mot de passe (voir http://www.debian-administration.org/articles/152 pour plus d'informations sur cette).
  3. Configurez votre script de notification sur votre serveur pour exécuter notify-send, comme ceci:

    ssh username @ system1 'notify-send "Appel entrant de Smith J\n613-555-1234"'

    ssh username @ system2 'notify-send "Appel entrant de Smith J\n613-555-1234"'

Cela entraînera une fenêtre de notification sur les systèmes nommés 'system1' et 'system2'.

2
fader