web-dev-qa-db-ja.com

ネットワーク上のすべてのシステムにOSD通知メッセージを送信します

私がやろうとしているのは、Asterisk + FreePBXを実行しているシステムから発信者ID(CID)情報をネットワーク上のすべてのMythTVフロントエンドシステムに送信することです。 CID情報を、何が起こっているか(たとえば、メニュー上にあるか、記録を再生するかなど)の上にポップアップ表示したいのです。最終的には他の情報もあるかもしれませんが、現時点ではCIDは素晴らしい出発点です。

Libnotifyスタイルの通知は問題ありません(ただし、表示するにはテキストサイズを大きくする必要があります)。 Growl のようなものを考えていましたが、これはLinuxには存在しないようです。

FreePBXシステムから次のようなコマンドを実行できるなど、ネットワーク全体に何らかのブロードキャストを行うことができれば理想的です。

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

そして、mythtvフロントエンドでは、画面上のどこかに表示されます。


注: MythNotify プラグインがあり、以前のセットアップで使用しましたが、表示しかできないという重大な制限があります(MythTVのOSDの機能に基づいていると思います)ビデオ再生中の通知:メニュー内ではありません。正しく表示するのが苦痛だったことも覚えています。メッセージングにXMLを使用し、次にXSLTを使用してmythtvのXML形式に変更します。少し違ったものを表示したい場合は、少数の新しいXMLファイルを作成し、「callerid-from-phonebook.xml」メッセージを取得して、実際に(リモート)「callerid-from-phonebook-表示用のosd.xml」ファイルは、ある種のブラックアートです。

4
gregmac

コマンドライン通知ツールを使用して実行できます。

  1. ネットワーク上のすべてのシステムにパッケージ「libnotify-bin」をインストールします。これにより、「notify-send」というツールが提供されます。
  2. ネットワーク上のすべてのシステムにsshサーバーをインストールし、パスワードなしのsshログインを許可するように構成されていることを確認します(詳細については http://www.debian-administration.org/articles/152 を参照してください)この)。
  3. 次のように、サーバー上に通知スクリプトを設定して、notify-sendを実行します。

    ssh username @ system1 'notify-send "スミスJ\n613-555-1234からの着信コール"'

    ssh username @ system2 'notify-send "スミスJ\n613-555-1234からの着信呼び出し"'

これにより、「system1」および「system2」という名前のシステムで通知ポップアップが表示されます。

2
fader