Bevezetés

A Jami telepítés általában két fő összetevőből áll:

  1. a Jami-rendszerfolyamat/könyvtár, és

  2. az ügyfél (azaz kezelőfelület vagy felhasználói felület).

A Jami használatához mindig szükség van a Jami rendszerfolyamatra/könyvtárra, mivel ez a Jami magja, és tartalmazza az összes kapcsolatot, kommunikációt, kriptográfiát és médialogikát. Olyan könyvtárakat használ, mint az OpenDHT, PJSIP, GnuTLS és FFmpeg, és számos API-ja (application programming interface - alkalmazásprogramozási felület) van, köztük a DBus, a libwrap (megosztott könyvtár), a JNI és a REST. Ezek az API-k lehetővé teszik a Jamival való interakciót anélkül, hogy grafikus felhasználói felületen kellene keresztülmenniük (különösen hasznosak a Jami fej nélküli/kiszolgáló beállításban való használatához), automatizálási eszközök/parancsfájlok létrehozását a Jami körül, és egyéni felhasználói felületek létrehozását a Jami számára.

Az ügyfél (azaz a felhasználói felület) a használt operációs rendszertől és/vagy platformtól függ. Például Android/Replicant rendszereken ez a következő lenne: jami-client-android, iOS rendszeren ez a következő lenne: jami-client-ios, és GNU/Linux, macOS és Windows rendszereken ez a következő lenne: jami-client-qt. Régebben létezett egy GTK-alapú jami-client-gnome GNU/Linuxhoz és egy jami-client-macos macOS-hez is, mindkettő elavult, és a Qt keretrendszeren alapuló újabb, többplatformos jami-client-qt javára vált.

GNU/Linux rendszereken a jami-client-qt beállítható és felépíthető úgy, hogy a két fő API egyikét használja a Jami rendszerfolyamattal/könyvtárral való kommunikációhoz:

  1. libwrap: Ha a jami-client-qt a libwrap könyvtár használatára van beállítva (ami mindig így van macOS és Windows rendszereken), akkor a Jami rendszerfolyamat megosztott könyvtár API-ját fogja használni, és nem lesz külön rendszerfolyamat. Ennek megvan az az előnye, hogy a dolgok valamivel hatékonyabbak, mint az alább említett DBus API-val, cserébe a kisebb rugalmasságért (a libwrap könyvtár használatakor nem tud együttműködni a Jamival a DBus API-n keresztül).

    A dl.jami.net webhelyen keresztül terjesztett Jami-csomagok jelenleg a libwrap-API használatára vannak beállítva.

  2. DBus: Ha a jami-client-qt a DBus API használatára van beállítva, a DBus-API-ján keresztül kommunikál a Jami-rendszerfolyamattal, és a rendszerfolyamat önálló folyamatként fog futni. Ez nagymértékben rugalmas a rendszerfolyamat más eszközökön (például kis segédprogram-parancsfájlokon) keresztüli egyidejű kommunikációjához és vezérléséhez, miközben a Qt alapú Jami-ügyfél is használja és interakcióba lép vele. Ennek a rugalmasságnak a járulékos költsége a DBus API használatának többletköltsége.