Linphone es un softphone de código abierto para voz y video a través de llamadas de IP y mensajes instantáneos.
Está completamente basado en SIP, para todas las características de llamadas, presencia y IM.
La descripción general está disponible en el sitio web de Linphone
Copyright © Belledonne Communications
Linphone tiene doble licencia y está disponible:
bajo una licencia GNU/GPLV3, gratis (código abierto). Asegúrese de que comprenda y esté de acuerdo con los términos de esta licencia antes de usarla (consulte el archivo de licencia para obtener más detalles).
Bajo una licencia de propiedad, por una tarifa, que se utilizará en solicitudes de código cerrado. Póngase en contacto con Belledonne Communications para cualquier pregunta sobre costos y servicios.
Características compatibles y RFCS
Wiki público de LinPhone
Estas son las instrucciones generales para construir LinPhone para escritorio. Las instrucciones específicas para cada plataforma de compilación se describen justo a continuación. Necesitará las herramientas:
cmake > = 3.22: Deséfrelo en https://cmake.org/download/python : https://www.python.org/downloads/release/python-381/pip : Ya está incrustado dentro de Python, por lo que no debería haber nada que hacer al respectoyasm : https://yasm.tortall.net/download.htmlnasm : https://www.nasm.us/pub/nasm/releaseBuilds/doxygen (requerido para el envoltorio CXX)Perlpystache : use 'Pip Instale Pystache -User'six : Use 'Pip Instale Six -User'git Para escritorio: necesitará QT6 ( 6.2 o más nuevo ). ¡Se requiere soporte C++17 !
Es necesario instalar el comando pip y ejecutar:
pip install pystache six
Debe establecer la variable de entorno Qt6_DIR para apuntar a la ruta que contiene las carpetas CMake de QT6 y la PATH al bin QT6. Ejemplo:
Qt6_DIR="~/Qt/6.5.3/gcc_64/lib/cmake/Qt6"
PATH="~/Qt/6.5.3/gcc_64/bin/:$PATH"
NOTA: Si tiene la herramienta de terceros qtchooser instalada: eval "$ (Qtchooser -print -env)" Exportar QT6_DIR = $ {Qtlibdir}/CMake/Qt6 Export Rath = $ {Qttooldir}: $ Path 3. Para requisitos específicos, vea las secciones de las instrucciones de la plataforma a continuación.
`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 construcción se realiza construyendo el SDK y la aplicación. Sus objetivos son sdk y Linphone .
Cree su carpeta de compilación en la raíz del proyecto: mkdir build Vaya a esta nueva carpeta y comience el proceso de compilación: cd build
Prepare sus opciones: cmake .. Por defecto, intentará compilar todas las dependencias necesarias. Puede eliminar algunos agregando -DENABLE_<COMPONENT>=NO al comando. Puede usar cmake-gui .. si desea tener un mejor acceso a ellos. Puede agregar -DCMAKE_BUILD_PARALLEL_LEVEL=<count> para hacer <count> construcciones paralelas para acelerar el proceso. Además, puede agregar -DENABLE_BUILD_VERBOSE=ON para obtener más comentarios mientras se genera el proyecto.
Nota: Para Makefile o Ninja, debe agregar -DCMAKE_BUILD_TYPE=<your_config> Si desea construir una configuración específica (por ejemplo, RelWithDebInfo ).
cmake --build . --target <target> --parallel <count> (reemplace <target> con el nombre de destino y <count> por el número de construcciones paralelas). Nota: Para Xcode o Visual Studio, debe agregar --config <your_config> Si desea construir una configuración específica (por ejemplo, RelWithDebInfo ).
Cuando todos hayan terminado, los archivos estarán en la carpeta de salida en el directorio de compilación. Al reconstruir, debes usar cmake --build . --target install (o cmake --install . ) Para colocar la aplicación en la configuración correcta.
No se supone que los binarios dentro de otras carpetas (como build/bin/ y linphone-sdk ) funcionen.
Al realizar algunas modificaciones en el SDK, puede reconstruir solo el SDK con el sdk de destino y lo mismo para la aplicación con linphone-qt-only
Para obtener paquetes, puede usar cmake .. -DENABLE_APP_PACKAGING=YES . Los archivos estarán en la carpeta OUTPUT/packages .
Actualice su proyecto con:
Git Fetch Git Pull -ReBase
Actualizar submódulos desde su rama actual
Git Submodule Update --init - -RECURSIVE
Entonces simplemente reconstruya el uso de CMake.
-DLINPHONESDK_DOXYGEN_PROGRAM . Por ejemplo, en Mac: -DLINPHONESDK_DOXYGEN_PROGRAM=/Applications/Doxygen.app/Contents/Resources/doxygen
Si la construcción del SDK se bloquea con algo como "CMD.EXE falló" y no más información, puede ser una dependencia que no está disponible. Tienes que verificar si todos están en tu camino. Por lo general, si se trata de VPX o descafeinado, esto podría provenir de su instalación de Perl.
Si la aplicación no se inicia y crea un archivo vacío con un nombre aleatorio, podría provenir de una mala configuración entre su aplicación y otros submódulos. Verifique sus configuraciones y forzarlas con -DCMAKE_BUILD_TYPE=<your_config> o --config <your_config> .
En Mac, la aplicación puede bloquearse al comienzo desde QopenglContext. Una solución es desactivar el modo MIPMAP en las imágenes agregando a su archivo de configuración (LinPhonERC): mipmap_enabled=0 en la sección [ui] .
Para instalar las dependencias requeridas en Mac OS X, puede usar HomeBrew. Antes de instalar paquetes con Brew, es posible que deba cambiar los permisos de directorios (si no puede cambiar los permisos con sudo en un macOS> = High Sierra, eche un vistazo a esta respuesta de StackOverflow).
Instale Xcode en la tienda Apple. Ejecutarlo al menos una vez para permitirle instalar sus herramientas. Es posible que deba ejecutar:
xcode-select --install
Instale HomeBrew siguiendo las instrucciones aquí https://brew.sh/
Instalar dependencias:
Brew instalar cmake pkg-config git doxygen nasm yasm
Primero asegúrese de tener PIP
Luego, puede instalar un paquete PIP con el siguiente comando:
python -m pip install [paquete]
Por ejemplo, ingrese el siguiente comando:
python -m pip install pystache six graphviz
Descargue QT, instale una versión QT6 y establezca las variables QT6_DIR y PATH.
Si está construyendo en un sistema ARM64 y desea una versión Intel, debe seleccionar el procesador X86_64 en la etapa de generación de CMake:
-Dcmake_apple_silicon_processor = x86_64
Construir como de costumbre (pasos generales).
Si recibe un error sobre los módulos que no se encuentran para Python, puede deberse a que CMake intenta usar otra versión desde su ruta. Puede ser el caso si instaló Python de Brew. Instale los módulos de Python utilizando la ruta absoluta. Por ejemplo:
/opt/homebrew/python3 -m PIP install Pystache Six Graphviz
La versión de 32 bits no es compatible ya que QT6 no proporciona paquetes de 32 bits para MSVC. Visual Studio 2022 solo es compatible.
MinGW/MSYS2 : descargarpacman -Sy --needed base-devel mingw-w64-mingw64-toolchainpacman -S python3-pip en la consola MSYS2 MSYSpython3 -m pip install pystache six en cmdC:msys64mingw64bin , C:msys64 y C:msys64usrbin en su ruta variable de entorno desde la configuración avanzada de Windows. Los binarios de la carpeta MSYS (no de MingW64) no admiten completamente la ruta de Windows y, por lo tanto, deben evitarse. Especifique -DENABLE_WINDOWS_TOOLS_CHECK=ON Al construir el SDK para instalar herramientas que faltan automáticamente de MSYS2: toolchain , python , doxygen , perl , yasm , gawk , bzip2 , nasm , sed , patch , pkg-config , gettext , glib2 , intltool y graphviz (si se necesita)
git : Use MSYS2: pacman -S git o Descargar
Visual Studio también debe configurarse correctamente con complementos. En "Herramientas"-> "Obtener herramientas y características", asegúrese de que estén instalados los siguientes componentes:
Asegúrese de haber descargado la versión QT correcta en MSVC.
O abra una línea de comando con Visual Studio Developer Command Prompt for VS 2022 y llame a Qtenv2.Bat que está en sus binarios QT, por ejemplo, C:Qt<version>msvc2019binqtenv2.bat
Construir como de costumbre con agregar -A x64 a cmake .. (pasos generales):
cmake .. -DCMAKE_BUILD_PARALLEL_LEVEL=10 -DCMAKE_BUILD_TYPE=RelWithDebInfo -A x64 La construcción predeterminada es muy larga. Se prefiere usar el generador ninja -G "Ninja"cmake --build . --target ALL_BUILD --parallel 10 --config RelWithDebInfosudo apt install QT6-Base-Dev
En el caso de 'módulo "Qtquick.*" No está instalado' Error, puede instalar estos paquetes:
Hay configuraciones de archivos Docker donde se pueden recuperar dependencias.
Además, hay más configuraciones disponibles en la carpeta Docker-Files del submódulo LinPhone-SDK.
| Opción | Descripción | Valor predeterminado |
|---|---|---|
| Enable_app_license | Habilite la licencia en paquetes. | SÍ |
| Enable_app_packaging | Habilitar el embalaje. El paquete se implementará en OUTPUT/packages | NO |
| Enable_app_pdf_viewer | Habilitar el visor PDF. Necesita el módulo PDF QT. | SÍ |
| Enable_app_webview | Habilitar WebView para cuentas. El motor WebView debe implementarse, se necesita de gran tamaño. | NO |
| Enable_app_package_rootca | Incrustar el archivo rootca (concatenación de todos los certificados raíz publicados por Mozilla) en el paquete | SÍ |
| Enable_build_app_plugins | Habilitar la construcción de complementos | SÍ |
| Enable_build_examples | Habilitar la construcción de ejemplos | NO |
| Enable_build_verbose | Permitir que la generación de construcción sea más detallada | NO |
| Habilitar_daemon | Habilite la interfaz Linphone Daemon. | NO |
| Enable_pqCrypto | Habilitar Post Quantum ZRTP. | NO |
| Habilitar_strict | Construir con estrictas banderas del compilador, por ejemplo, Wall -Werror | NO |
| Habilitar_TESTS | Construir con binarios de prueba de SDK | NO |
| Enable_tests_components | Construir libbctoolbox-tester | NO |
| Habilitar_Tools | Habilitar herramientas de SDK | NO |
| Enable_unit_tests | Habilitar prueba unitaria de SDK. | NO |
| Enable_update_check | Habilitar la verificación de actualización. | SÍ |
| Linphone_sdk_make_release_file_url | Haga un archivo de lanzamiento que funcione a lo largo de check_version y use esta URL | " |
Para enviar un parche para su inclusión en el código fuente de Linphone:
Primero asegúrese de que su parche se aplique a las últimas fuentes de GIT antes de enviar: los parches hechos a versiones antiguas no pueden y no se fusionarán.
Complete y envíe el acuerdo de contribuyente para que su parche se incluya en el árbol GIT siguiendo los enlaces allí. El objetivo de este Acuerdo es otorgarnos el ejercicio pacífico de nuestros derechos al código fuente de LinPhone, sin perder sus derechos sobre su contribución.
Luego vaya al repositorio de GitHub y realice una solicitud de extracción basada en su código.
Tenga en cuenta que no ofrecemos soporte gratuito y estas contribuciones se abordarán en nuestro tiempo libre.
Linphone: código de aplicación.
Modelo: SDK Management que se ejecuta en el hilo SDK.
Vista: Cosas de la GUI que se ejecuta en el hilo de la interfaz de usuario.
Core: Código principal que enlaza el modelo y la vista en un patrón MVVM.
Datos: todos los datos que no son código
Herramienta: Biblioteca interna para herramientas genéricas.
CMake: scripts de compilación e instalación.
externo: proyectos externos.
Inicie la aplicación con el parámetro --verbose para obtener registros completos y enviarla con su solicitud. Puede usar el botón "Enviar registros" en la configuración para cargar archivos de registro y compartirlo por correo electrónico o con una publicación en el proyecto GitHub correspondiente:
En algún sistema operativo (como Fedora 22 y posterior), deshabilitan la salida de depuración de Qt de forma predeterminada. Para obtener una salida completa, debe crear ~/.config/QtProject/qtlogging.ini y agregar:
[Rules]
*.debug=true
qt.*.debug=false