Linphone est un softphone open source pour la voix et la vidéo sur les appels IP et la messagerie instantanée.
Il est entièrement basé sur SIP, pour toutes les fonctionnalités d'appel, de présence et de messagerie instantanée.
La description générale est disponible sur le site Web de Linphone
Copyright © Belledonne Communications
Linphone est en double sous licence et est disponible soit:
Sous une licence GNU / GPLV3, gratuitement (open source). Veuillez vous assurer que vous comprenez et acceptez les termes de cette licence avant de l'utiliser (voir le fichier de licence pour plus de détails).
En vertu d'une licence propriétaire, pour des frais, à utiliser dans les demandes de source fermée. Contactez Belledonne Communications pour toute question sur les coûts et les services.
Fonctionnalités prises en charge et RFC
Wiki public linphone
Voici les instructions générales pour construire Linphone pour le bureau. Les instructions spécifiques pour chaque plate-forme de construction sont décrites juste en dessous. Vous aurez besoin des outils:
cmake > = 3.22: Téléchargez-le dans https://cmake.org/download/python : https://www.python.org/downloads/release/python-381/pip : Il est déjà intégré à l'intérieur de Python, donc il ne devrait rien y faireyasm : https://yasm.tortall.net/download.htmlnasm : https://www.nasm.us/pub/nasm/releasebuilds/doxygen (requis pour l'emballage CXX)Perlpystache : utilisez 'pip install pystache --User'six : Utilisez 'PIP Installer Six --User'git Pour le bureau: vous aurez besoin de QT6 ( 6.2 ou plus récent ). Le support C++17 est requis!
Il est nécessaire d'installer la commande pip et d'exécuter:
pip install pystache six
Vous devez définir la variable d'environnement Qt6_DIR pour pointer le chemin contenant les dossiers CMake de QT6 et le PATH vers le bin QT6. Exemple:
Qt6_DIR="~/Qt/6.5.3/gcc_64/lib/cmake/Qt6"
PATH="~/Qt/6.5.3/gcc_64/bin/:$PATH"
Remarque: Si l'outil tiers qtchooser a installé: EVAL "$ (qtchooser -print-env)" Export qt6_dir = $ {qtlibdir} / cmake / qt6 export path = $ {qttooldir}: $ path 3. Pour des exigences spécifiques, voir les instructions de la plate-forme ci-dessous.
`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
La construction est effectuée en construisant le SDK et l'application. Leurs cibles sont sdk et Linphone .
Créez votre dossier Build à la racine du projet: mkdir build allez dans ce nouveau dossier et commencez le processus de construction: cd build
Préparez vos options: cmake .. Par défaut, il essaiera de compiler toutes les dépendances nécessaires. Vous pouvez en supprimer en ajoutant -DENABLE_<COMPONENT>=NO à la commande. Vous pouvez utiliser cmake-gui .. Si vous voulez avoir un meilleur accès à eux. Vous pouvez ajouter -DCMAKE_BUILD_PARALLEL_LEVEL=<count> pour faire <count> des builds parallèles pour accélérer le processus. En outre, vous pouvez ajouter -DENABLE_BUILD_VERBOSE=ON pour obtenir plus de commentaires tout en générant le projet.
Remarque: Pour MakeFile ou Ninja, vous devez ajouter -DCMAKE_BUILD_TYPE=<your_config> Si vous souhaitez construire dans une configuration spécifique (par exemple RelWithDebInfo ).
cmake --build . --target <target> --parallel <count> (Remplacer <target> par le nom cible et <count> par le nombre de versions parallèles). Remarque: Pour Xcode ou Visual Studio, vous devez ajouter --config <your_config> Si vous souhaitez construire dans une configuration spécifique (par exemple RelWithDebInfo ).
Une fois tous terminés, les fichiers seront dans le dossier de sortie dans le répertoire de construction. Lors de la reconstruction, vous devez utiliser cmake --build . --target install (ou cmake --install . ) Pour placer l'application dans la configuration correcte.
Les binaires à l'intérieur d'autres dossiers (comme build/bin/ et linphone-sdk ) ne sont pas censés fonctionner.
Lorsque vous apportez des modifications dans le SDK, vous ne pouvez reconstruire que le SDK avec le sdk cible et le même pour l'application avec linphone-qt-only
Afin d'obtenir des packages, vous pouvez utiliser cmake .. -DENABLE_APP_PACKAGING=YES . Les fichiers seront dans le dossier OUTPUT/packages .
Mettez à jour votre projet avec:
git fetch git pull --rebase
Mettre à jour les sous-modules de votre branche actuelle
Mise à jour du sous-module GIT - Init - réécursive
Ensuite, ré-construction à l'aide de CMake.
-DLINPHONESDK_DOXYGEN_PROGRAM . Par exemple sur mac: -DLINPHONESDK_DOXYGEN_PROGRAM=/Applications/Doxygen.app/Contents/Resources/doxygen
Si la construction du SDK crash avec quelque chose comme "Cmd.exe a échoué" et pas plus d'informations, cela peut être une dépendance qui n'est pas disponible. Vous devez vérifier si tous sont sur votre chemin. Habituellement, s'il s'agit de VPX ou de décaf, cela pourrait provenir de votre installation Perl.
Si l'application ne démarre pas et ne crée pas un fichier vide avec un nom aléatoire, il pourrait provenir d'une mauvaise configuration entre votre application et d'autres sous-modules. Vérifiez vos configurations et obligez-les avec -DCMAKE_BUILD_TYPE=<your_config> ou --config <your_config> .
Sur Mac, l'application peut s'écraser au début de QOpennglContext. Une solution de contournement consiste à désactiver le mode MIPMAP sur les images en ajoutant dans votre fichier de configuration (LinPhonerc): mipmap_enabled=0 dans [ui] section.
Pour installer les dépendances requises sur Mac OS X, vous pouvez utiliser Homebrew. Avant d'installer des packages avec Brew, vous devrez peut-être modifier les autorisations des répertoires (si vous ne pouvez pas modifier les autorisations avec sudo sur un macOS> = Sierra élevé, jetez un œil à cette réponse Stackoverflow).
Installez Xcode depuis l'Apple Store. Exécutez-le au moins une fois pour lui permettre d'installer ses outils. Vous devrez peut-être courir:
Xcode-Select - Installation
Installez Homebrew en suivant les instructions ici https://brew.sh/
Installez les dépendances:
Brew Installer Cmake PKG-Config Git Doxygen Nasm Yasm
Assurez-vous d'abord que vous avez PIP
Ensuite, vous pouvez installer un package PIP avec la commande suivante:
Python -M Pip Install [Package]
Par exemple, entrez la commande suivante:
python -m pip install pystache six graphviz
Téléchargez QT, installez une version QT6 et définissez les variables QT6_DIR et PATH.
Si vous construisez sur un système ARM64 et que vous souhaitez une version Intel, vous devez sélectionner le processeur x86_64 sur l'étape de génération de Cmake:
-Dcmake_apple_silicon_processor = x86_64
Construire comme d'habitude (étapes générales).
Si vous obtenez une erreur sur les modules qui ne sont pas trouvés pour Python, cela peut être dû au fait que Cmake essaie d'utiliser une autre version de votre chemin. Cela peut être le cas si vous avez installé Python de Brew. Installez les modules Python en utilisant un chemin absolu. Par exemple:
/ opt / homebrew / python3 -m pip install pystache six graphviz
La version 32 bits n'est pas prise en charge car QT6 ne fournit pas de packages 32bits pour MSVC. Visual Studio 2022 n'est pris en charge que.
MinGW/MSYS2 : téléchargerpacman -Sy --needed base-devel mingw-w64-mingw64-toolchainpacman -S python3-pip dans la console MSYS2 MSYSpython3 -m pip install pystache six en cmdC:msys64mingw64bin , C:msys64 et C:msys64usrbin dans votre variable d'environnement de chemin à partir des paramètres avancés de Windows. Les binaires du dossier MSYS (pas de MingW64) ne prennent pas en charge entièrement le chemin Windows et donc, ils doivent être évités. Spécifiez -DENABLE_WINDOWS_TOOLS_CHECK=ON lors de la construction du SDK pour installer automatiquement les outils manquants de MSYS2: toolchain , python , doxygen , patch , perl , yasm , gawk , bzip2 , nasm , sed , pkg-config , gettext , glib2 , intltool et graphviz (IF nécessaire)
git : Utilisez MSYS2: pacman -S git ou téléchargez
Visual Studio doit également être correctement configuré avec des addons. Sous "Outils" -> "Obtenez des outils et des fonctionnalités", assurez-vous que les composants suivants sont installés:
Assurez-vous que vous avez téléchargé la version QT correcte sur MSVC.
Ou ouvrez une ligne de commande avec Visual Studio Developer Command Prompt for VS 2022 et appelez qtenv2.bat qui se trouve dans vos binaires QT: C:Qt<version>msvc2019binqtenv2.bat
Construire comme d'habitude avec l'ajout -A x64 à cmake .. (étapes générales):
cmake .. -DCMAKE_BUILD_PARALLEL_LEVEL=10 -DCMAKE_BUILD_TYPE=RelWithDebInfo -A x64 La version par défaut est très longue. Il est préféré utiliser le générateur ninja -G "Ninja"cmake --build . --target ALL_BUILD --parallel 10 --config RelWithDebInfosudo apt installer qt6-base-dev
En cas d'erreur de «module» «Qtquick». »N'est pas installée, vous pouvez installer ces packages:
Il existe des configurations de fichiers Docker où les dépendances peuvent être récupérées.
De plus, plus de configurations sont disponibles dans le dossier Docker-Files du sous-module Linphone-SDK.
| Options | Description | Valeur par défaut |
|---|---|---|
| Activer_app_license | Activez la licence en forfaits. | OUI |
| Activer_app_packaging | Activer l'emballage. Le package sera déployé en OUTPUT/packages | NON |
| Enable_app_pdf_viewer | Activer la visionneuse PDF. Besoin du module PDF QT. | OUI |
| Activer_app_webview | Activer WebView pour les comptes. Le moteur WebView doit être déployé, il prend une grande taille. | NON |
| Enable_app_package_rootca | Entrez le fichier rootca (concaténation de tous les certificats racine publiés par Mozilla) dans le package | OUI |
| Enable_build_app_plugins | Activer la construction de plugins | OUI |
| Enable_build_examples | Activer la construction d'exemples | NON |
| Enable_build_verbose | Permettre à la génération de construction d'être plus verbeux | NON |
| Activer_daemon | Activez l'interface Daemon Linphone. | NON |
| Activer_pqcrypto | Activer le post quantum zrtp. | NON |
| Activer_strict | Construire avec des drapeaux de compilatrice stricts, par exemple, wall -werror | NON |
| Activer_tests | Construire avec des binaires de test de SDK | NON |
| Activer_tests_components | Construire libbctoolbox-tester | NON |
| Activer_tools | Activer les outils du SDK | NON |
| Enable_unit_tests | Activer le test unitaire du SDK. | NON |
| Activer_update_check | Activer la mise à jour de la vérification. | OUI |
| Linphone_sdk_make_release_file_url | Faites un fichier de libération qui fonctionne le long de Check_version et utilisez cette URL | "" |
Afin de soumettre un correctif d'inclusion dans le code source de Linphone:
Assurez-vous d'abord que votre correctif s'applique aux dernières sources GIT avant de soumettre: les correctifs réalisés aux anciennes versions ne peuvent pas et ne seront pas fusionnés.
Remplissez et envoyez le contrat de contributeur pour que votre correctif soit inclus dans l'arbre GIT en suivant les liens là-bas. L'objectif de cet accord est de nous accorder l'exercice pacifique de nos droits sur le code source de Linphone, sans perdre vos droits sur votre contribution.
Ensuite, accédez au référentiel GitHub et faites des demandes de traction en fonction de votre code.
Veuillez noter que nous n'offrons pas de soutien gratuit et que ces contributions seront traitées sur notre temps libre.
Linphone: code d'application.
Modèle: gestion du SDK qui est exécuté sur le thread SDK.
Voir: GUI Stuff qui est exécuté sur le fil d'interface utilisateur.
Core: code principal qui lie le modèle et afficher dans un modèle MVVM.
Données: toutes les données qui ne sont pas du code
Outil: bibliothèque interne pour les outils génériques.
CMake: scripts de construction et d'installation.
Externe: projets externes.
Lancez l'application avec --verbose paramètre pour obtenir des journaux complets et envoyez-le avec votre demande. Vous pouvez utiliser le bouton "Envoyer des journaux" dans les paramètres pour télécharger des fichiers journaux et le partager par e-mail ou avec un message dans le projet GitHub correspondant:
Sur certains OS (comme Fedora 22 et plus tard), ils désactivent la sortie de débogage QT par défaut. Pour obtenir une sortie complète, vous devez créer ~/.config/QtProject/qtlogging.ini et ajouter:
[Rules]
*.debug=true
qt.*.debug=false