紹介

ジュミの設置には通常2つの主要要素があります

  1. ジャミ・デモン/ライブラリ

  2. クライアント (すなわちフロントエンドまたはユーザーインターフェース)

Jami を利用するには,Jami のダモン/ライブラリ が常に必要である.これはJami の核心であり,すべての接続性,通信,暗号化,メディア論理を含んでいる.OpenDHT,PJSIP,GnuTLS,FFmpeg のようなライブラリを使用し,DBus,libwrap (共有ライブラリ),JNI,REST を含むいくつかの API を備えています.これらの API は,グラフィックユーザーインターフェース (特にヘッドレス/サーバー設定で Jami を使用するために有用),Jami の周りに自動化ツール/スクリプトを構築し,Jami のユーザーインターフェースを構築する上で使えます.

クライアント (つまりユーザーインターフェース) は,使用されているオペレーティングシステムおよび/またはプラットフォームによって異なります.例えば,Android/Replicant システムでは,これは jami-client-android,および GNU/Linux,Windows,macOSでは,これは jami-client-qtです.以前は,GNU/Linux のGTK ベースの jami-client-gnome と macOS の jami-client-macos も存在していました.両者は,Qt フレームワークに基づく新しいクロスプラットフォーム jami-client-qt の好りに廃止されました.

GNU/Linux システムでは, Jami-client-qt は Jami daemon/library と通信するための2つの主要な API の1つを使用するために構成され,構築することができます.

  1. libwrap: jami-client-qt が libwrap を使用するように設定されたとき (macOS と Windows で常にそうである) は, Jami daemon の共有ライブラリ API を使用し,別々の daemon プロセスはありません.これは,下のDBus API に比べて,より効率的なことが利点があります.

    dl.jami.net で配布されているJami パッケージは,現在,すべてlibwrap API を使用するように構成されています.

  2. DBus: jami-client-qt が DBus を使用するように設定された場合,そのDBus API を介して Jami daemon と通信し, daemon はそれ自体から別のプロセスとして実行されます.これは,他の手段 (例えば小さなユーティリティスクリプト) を介して同時に daemon と通信し制御するのに非常に柔軟です. Qt ベースの Jami クライアントもそれを使用し,相互作用します.この追加柔軟性の関連コストは DBus を使用するオーバーヘッドです.