Linphone ist ein Open -Source -Softphone für Voice und Video über IP -Aufrufen und Instant Messaging.
Es ist vollständig sip-basiert, für alle Anrufe, Präsenz und IM-Funktionen.
Die allgemeine Beschreibung ist auf der Linphone -Website erhältlich
Copyright © Belledonne Kommunikation
Linphone ist zwei lizenziert und ist auch verfügbar:
Unter einer GNU/GPLV3 -Lizenz kostenlos (Open Source). Bitte stellen Sie sicher, dass Sie die Bedingungen dieser Lizenz verstehen und zustimmen, bevor Sie sie verwenden (Einzelheiten siehe Lizenzdatei).
unter einer proprietären Lizenz gegen eine Gebühr in geschlossenen Quellenanträgen verwendet werden. Wenden Sie sich an Belledonne Communications für Fragen zu Kosten und Dienstleistungen.
Unterstützte Funktionen und RFCs
Linphone Public Wiki
Hier finden Sie die allgemeinen Anweisungen, um Linphone für Desktop zu erstellen. Die spezifischen Anweisungen für jede Build -Plattform werden direkt unten beschrieben. Sie benötigen die Werkzeuge:
cmake > = 3.22: Laden Sie es in https://cmake.org/download/ herunterpython : https://www.python.org/downloads/release/python-381/pip : Es ist bereits in Python eingebettet, daher sollte es nichts dagegen zu tun habenyasm : https://yasm.tortall.net/download.htmlnasm : https://www.nasm.us/pub/nasm/releasebuilds/doxygen (für die CXX -Wrapper erforderlich)Perlpystache : Verwenden Sie 'PIP Installation Pystache --user'six : Verwenden Sie 'PIP Installation Six -User'git Für Desktop: Sie benötigen QT6 ( 6.2 oder neuer ). C++17 Unterstützung ist erforderlich!
Es ist erforderlich, den pip -Befehl zu installieren und auszuführen:
pip install pystache six
Sie müssen die Umgebungsvariable Qt6_DIR festlegen, um auf den Pfad zu verweisen, der die CMake -Ordner von QT6 und den PATH zum QT6 bin enthält. Beispiel:
Qt6_DIR="~/Qt/6.5.3/gcc_64/lib/cmake/Qt6"
PATH="~/Qt/6.5.3/gcc_64/bin/:$PATH"
HINWEIS: Wenn Sie das Tool von Drittanbietern haben, installiert qtchooser : Eval "$ (qtchooser -print -env)" Export qt6_dir = $ {qtlibdir}/cmake/qt6 export path = $ {qttooldir}: $ path. Für spezifische Anforderungen, siehe Plattformanweisungen unten, siehe Plattformanweisungen unten.
`git clone https://gitlab.linphone.org/BC/public/linphone-desktop.git --recursive`
`cd linphone-desktop`
`mkdir build`
`cd build`
`cmake .. -DCMAKE_BUILD_PARALLEL_LEVEL=10 -DCMAKE_BUILD_TYPE=RelWithDebInfo`
`cmake --build . --parallel 10 --config RelWithDebInfo`
`cmake --install .`
`./OUTPUT/bin/linphone --verbose` or `./OUTPUT/Linphone.app/Contents/MacOS/linphone --verbose`
git clone https://gitlab.linphone.org/BC/public/linphone-desktop.git --recursive
Der Build erfolgt durch Bau des SDK und der Anwendung. Ihre Ziele sind sdk und Linphone .
Erstellen Sie Ihren Build -Ordner im Root des Projekts: mkdir build Gehen Sie zu diesem neuen Ordner und beginnen Sie den Build -Prozess: cd build
Bereiten Sie Ihre Optionen vor: cmake .. Standardmäßig wird versucht, alle benötigten Abhängigkeiten zu kompilieren. Sie können einige durch Hinzufügen -DENABLE_<COMPONENT>=NO zum Befehl entfernen. Sie können cmake-gui .. Wenn Sie einen besseren Zugriff auf sie haben möchten. Sie können -DCMAKE_BUILD_PARALLEL_LEVEL=<count> hinzufügen, um <count> parallele Builds für die Beschleunigung des Vorgangs zu machen. Außerdem können Sie addieren -DENABLE_BUILD_VERBOSE=ON um mehr Feedback zu erhalten, während Sie das Projekt generieren.
Hinweis: Für Makefile oder Ninja müssen Sie -DCMAKE_BUILD_TYPE=<your_config> hinzufügen, wenn Sie in einer bestimmten Konfiguration erstellen möchten (z. B. RelWithDebInfo ).
cmake --build . --target <target> --parallel <count> (Ersetzen Sie <target> durch den Zielnamen und <count> durch die Anzahl der parallelen Builds). HINWEIS: Für Xcode oder Visual Studio müssen Sie addieren --config <your_config> Wenn Sie eine bestimmte Konfiguration erstellen möchten (z. B. RelWithDebInfo ).
Wenn alle vorbei sind, befinden sich die Dateien im Ausgangsordner im Build -Verzeichnis. Beim Wiederaufbau müssen Sie cmake --build . --target install (oder cmake --install . ), um die Anwendung in die richtige Konfiguration zu setzen.
Binärdateien in anderen Ordnern (wie build/bin/ und linphone-sdk ) sollen nicht funktionieren.
Wenn linphone-qt-only einige Änderungen sdk SDK vornehmen
Um Pakete zu erhalten, können Sie cmake .. -DENABLE_APP_PACKAGING=YES . Die Dateien befinden sich im Ordner OUTPUT/packages .
Aktualisieren Sie Ihr Projekt mit:
Git Fetch Git Pull -Rebase
Aktualisieren Sie Submodules aus Ihrer aktuellen Filiale
GIT -Submodul -Update - -init -recursive
Dann einfach mit CMAKE wieder aufbauen.
-DLINPHONESDK_DOXYGEN_PROGRAM verwenden. ZB auf Mac: -DLINPHONESDK_DOXYGEN_PROGRAM=/Applications/Doxygen.app/Contents/Resources/doxygen
Wenn der Aufbau des SDK -Absturzes mit so etwas wie "cmd.exe fehlgeschlagen" und keine weiteren Informationen mehr ist, kann es eine Abhängigkeit sein, die nicht verfügbar ist. Sie müssen überprüfen, ob sich alle auf Ihrem Weg befinden. Wenn es um VPX oder Decaf geht, kann dies normalerweise aus Ihrer Perl -Installation stammen.
Wenn die Anwendung nicht startet und eine leere Datei mit einem zufälligen Namen erstellt, kann sie aus einer schlechten Konfiguration zwischen Ihrer Anwendung und anderen Untermodulen stammen. Überprüfen Sie Ihre Konfigurationen und erzwingen Sie sie mit -DCMAKE_BUILD_TYPE=<your_config> oder --config <your_config> .
Auf dem Mac kann die Anwendung am Anfang von QOPENGLCONTEXT zum Start abbrechen. Eine Problemumgehung besteht darin, den MIPMAP -Modus für Bilder durch Hinzufügen in Ihre Konfigurationsdatei (Linphonerc) zu deaktivieren: mipmap_enabled=0 im Abschnitt [ui] .
Um die erforderlichen Abhängigkeiten auf Mac OS X zu installieren, können Sie Homebrew verwenden. Bevor Sie Pakete mit Brew installieren, müssen Sie möglicherweise Verzeichnisberechtigungen ändern (wenn Sie die Berechtigungen nicht mit sudo auf einer macOS> = hohen Sierra ändern können, sehen Sie sich diese Stackoverflow -Antwort an).
Installieren Sie Xcode im Apple Store. Führen Sie es mindestens einmal aus, damit es seine Werkzeuge installieren kann. Möglicherweise müssen Sie rennen:
Xcode-Select-Installation
Installieren Sie Homebrew, indem Sie die Anweisungen hier befolgen https://brew.sh/
Abhängigkeiten installieren:
Brauen Installation CMake PKG-Config Git Doxygen Nasm Yasm
Stellen Sie zunächst sicher, dass Sie PIP haben
Anschließend können Sie ein PIP -Paket mit dem folgenden Befehl installieren:
Python -M PIP Install [Paket]
Geben Sie beispielsweise den folgenden Befehl ein:
python -m pip install pystache six graphviz
Laden Sie QT herunter, installieren Sie eine QT6 -Version und setzen Sie QT6_DIR- und Pfadvariablen.
Wenn Sie auf einem ARM64 -System aufbauen und eine Intel -Version wünschen, müssen Sie den X86_64 -Prozessor in der Generationsstufe von CMake auswählen:
-Dcmake_apple_silicon_processor = x86_64
Wie gewohnt bauen (allgemeine Schritte).
Wenn Sie einen Fehler zu Modulen erhalten, die für Python nicht gefunden werden, kann dies daran liegen, dass CMake versucht, eine andere Version von Ihrem Pfad aus zu verwenden. Es kann der Fall sein, wenn Sie Python von Brew installiert haben. Installieren Sie die Python -Module unter Verwendung absoluter Pfad. Zum Beispiel:
/opt/homebrew/python3 -m pip install Pystache Six Graphviz
Die 32-Bit-Version wird nicht unterstützt, da QT6 keine 32Bit-Pakete für MSVC bereitstellt. Visual Studio 2022 wird nur unterstützt.
MinGW/MSYS2 : Downloadpacman -Sy --needed base-devel mingw-w64-mingw64-toolchainpacman -S python3-pip in MSYS2 MSYS -Konsolepython3 -m pip install pystache six in cmdC:msys64mingw64bin , C:msys64 und C:msys64usrbin in Ihrer Pfadumgebungsvariable aus Windows Advanced -Einstellungen hinzu. Binärdateien aus dem MSYS -Ordner (nicht von Mingw64) unterstützt den Windows -Pfad nicht vollständig und sind daher zu vermeiden. Geben Sie beim Erstellen des SDK -DENABLE_WINDOWS_TOOLS_CHECK=ON , um die SDK zu erstellen, um automatisch fehlende Werkzeuge von MSYS2 zu installieren: toolchain , python , doxygen , perl , yasm , gawk , bzip2 , nasm , sed , patch , pkg-config , gettext , glib2 , intltool und graphviz (falls erforderlich) (falls erforderlich) (falls erforderlich) (falls erforderlich) (falls erforderlich) (falls erforderlich) (falls erforderlich) (falls erforderlich) (falls erforderlich) (falls erforderlich) (falls erforderlich) (falls erforderlich).
git : Verwenden Sie MSYS2: pacman -S git oder Download
Visual Studio muss auch ordnungsgemäß mit Addons konfiguriert sein. Stellen Sie unter "Tools"-> "Tools und Funktionen erhalten" sicher, dass die folgenden Komponenten installiert sind:
Stellen Sie sicher, dass Sie die richtige QT -Version auf MSVC heruntergeladen haben.
Oder öffnen Sie eine Befehlszeile mit Developer Command Prompt for VS 2022 und rufen Sie QTENV2.BAT auf C:Qt<version>msvc2019binqtenv2.bat das sich in Ihren QT -Binärdateien befindet, z.
Bauen Sie wie gewohnt mit addiert -A x64 zu cmake .. (allgemeine Schritte):
cmake .. -DCMAKE_BUILD_PARALLEL_LEVEL=10 -DCMAKE_BUILD_TYPE=RelWithDebInfo -A x64 Der Standardbau ist sehr lang. Es wird bevorzugt, den Ninja -Generator -G "Ninja" zu verwendencmake --build . --target ALL_BUILD --parallel 10 --config RelWithDebInfosudo apt installieren qt6-base-dev
Im Falle eines Moduls "Qtquick.*" Ist kein Fehler installiert. Sie können diese Pakete installieren:
Es gibt Docker -Dateienkonfigurationen, bei denen Abhängigkeiten abgerufen werden können.
Außerdem sind im Ordner Docker-Files von Linphone-SDK-Submodul mehr Konfigurationen verfügbar.
| Optionen | Beschreibung | Standardwert |
|---|---|---|
| Enable_app_license | Aktivieren Sie die Lizenz in Paketen. | JA |
| Enable_app_packaging | Verpackung aktivieren. Das Paket wird in OUTPUT/packages bereitgestellt | NEIN |
| Enable_app_pdf_viewer | Aktivieren Sie den PDF -Viewer. Benötigen Sie QT PDF -Modul. | JA |
| Enable_app_webview | Aktivieren Sie WebView für Konten. Die WebView -Engine muss bereitgestellt werden, sie dauert eine große Größe. | NEIN |
| Enable_app_package_rootca | Einbetten Sie die RootCA -Datei (Verkettung aller von Mozilla veröffentlichten Root -Zertifikate) in das Paket ein | JA |
| Enable_build_app_plugins | Aktivieren Sie den Aufbau von Plugins | JA |
| Enable_build_examples | Aktivieren Sie den Aufbau von Beispielen | NEIN |
| Enable_build_verbose | Ermöglichen | NEIN |
| Enable_daemon | Aktivieren Sie die Linphone -Daemon -Schnittstelle. | NEIN |
| Enable_pqcrypto | Aktivieren Sie Post Quantum ZRTP. | NEIN |
| Aktivieren_strict | Erstellen Sie mit strengen Compilator -Flaggen z. | NEIN |
| Enable_tests | Bauen Sie mit Testbinärdateien von SDK auf | NEIN |
| Enable_tests_components | Bauen libbctoolbox-tester | NEIN |
| Enable_tools | Aktivieren Sie die Werkzeuge von SDK | NEIN |
| Enable_unit_tests | Aktivieren Sie den Unit -Test von SDK. | NEIN |
| Enable_update_check | Aktualisierungsprüfung aktivieren. | JA |
| Linphone_sdk_make_release_file_url | Erstellen Sie eine Release -Datei, die mit check_version funktioniert, und verwenden Sie diese URL | "" " |
Um einen Patch zur Aufnahme in den Quellcode von Linphone einzureichen:
Stellen Sie zunächst sicher, dass Ihr Patch vor der Einreichung für die neuesten Git -Quellen gilt: Patches, die in alten Versionen hergestellt wurden, können und werden nicht verschmolzen.
Füllen Sie die Mitwirkungsvereinbarung aus und senden Sie die Mitwirkungsvereinbarung, damit Ihr Patch in den Git -Baum aufgenommen wird, indem Sie dort Links folgen. Ziel dieser Vereinbarung ist es, uns die friedliche Ausübung unserer Rechte an den Quellcode für Linphone zu gewähren, ohne Ihre Rechte über Ihren Beitrag zu verlieren.
Gehen Sie dann zum Github -Repository und stellen Sie basierend auf Ihrem Code eine Pull -Anfragen.
Bitte beachten Sie, dass wir keine kostenlose Unterstützung anbieten und diese Beiträge in unserer Freizeit behandelt werden.
Linphone: Anwendungscode.
Modell: SDK -Management, das auf dem SDK -Thread ausgeführt wird.
Ansicht: GUI -Sachen, die auf UI -Thread ausgeführt werden.
Kern: Hauptcode, der das Modell und die Ansicht in einem MVVM -Muster verknüpft.
Daten: Alle Daten, die kein Code sind
Tool: Interne Bibliothek für generische Tools.
CMAKE: Erstellen und Installationsskripte.
extern: externe Projekte.
Starten Sie die Anwendung mit --verbose Parameter, um vollständige Protokolle zu erhalten, und senden Sie sie mit Ihrer Anfrage. Sie können die Schaltfläche "Protokolle senden" in Einstellungen verwenden, um Protokolldateien hochzuladen und per E -Mail oder mit einem Beitrag im entsprechenden GitHub -Projekt freizugeben:
In einigen Betriebssystemen (wie Fedora 22 und später) deaktivieren sie die QT -Debug -Ausgabe standardmäßig. Um die vollständige Ausgabe zu erhalten, müssen Sie ~/.config/QtProject/qtlogging.ini erstellen und hinzufügen:
[Rules]
*.debug=true
qt.*.debug=false