Linphone是通过IP通话和即时消息传递的语音和视频的开源软电话。
它完全基于sip,用于所有呼叫,存在和IM功能。
一般描述可从Linphone网站获得
版权所有©Belledonne Communications
Linphone已获得双重许可,并且可以使用:
根据GNU/GPLV3许可,免费(开源)。在使用该许可之前,请确保您了解并同意本许可证的条款(有关详细信息,请参见许可证文件)。
根据专有许可,需要在封闭的源申请中使用。有关成本和服务的任何问题,请联系Belledonne Communications。
支持功能和RFC
Linphone Public Wiki
这是为桌面构建Linphone的一般说明。下面描述了每个构建平台的特定说明。您将需要工具:
cmake > = 3.22:在https://cmake.org/download/中下载python :https://www.python.org/downloads/release/python-381/pip :它已经嵌入了python内,所以对此无关yasm :https://yasm.tortall.net/download.htmlnasm :https://www.nasm.us/pub/nasm/releasebuilds/doxygen (CXX包装纸需要)Perlpystache :使用'pip install pystache -user'six :使用“ pip安装六 - 用户”git对于桌面:您将需要QT6( 6.2或更新)。 C++17需要支持!
有必要安装pip命令并执行:
pip install pystache six
您必须设置环境变量Qt6_DIR ,以指向包含QT6的CMAKE文件夹的路径,以及QT6 bin的PATH 。例子:
Qt6_DIR="~/Qt/6.5.3/gcc_64/lib/cmake/Qt6"
PATH="~/Qt/6.5.3/gcc_64/bin/:$PATH"
注意:如果您安装了第三方工具qtchooser :eRAT“ $(qtchooser -print -env)”导出qt6_dir = $ {qtlibdir}/cmake/cmake/qt6 export path = $ {qttooldir}:$ {qttooldir}:$ path 3。有关特定要求,请参见平台注释的特定要求。
`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
构建是通过构建SDK和应用程序来完成的。他们的目标是sdk和Linphone 。
在项目的根部创建您的构建文件夹: mkdir build转到此新文件夹并开始构建过程: cd build
准备您的选择: cmake ..默认情况下,它将尝试编译所有需要的依赖项。您可以通过添加-DENABLE_<COMPONENT>=NO命令删除一些。您可以使用cmake-gui ..如果您想更好地访问它们。您可以添加-DCMAKE_BUILD_PARALLEL_LEVEL=<count> do <count>并行构建以加速过程。另外,您可以添加-DENABLE_BUILD_VERBOSE=ON ,以在生成项目时获得更多反馈。
注意:对于Makefile或Ninja,您必须添加-DCMAKE_BUILD_TYPE=<your_config>如果您想以特定的配置构建(例如, RelWithDebInfo )。
cmake --build . --target <target> --parallel <count> (将<target>替换为目标名称,而<count>则以并行构建数)。注意:对于Xcode或Visual Studio,您必须添加--config <your_config>如果您想以特定的配置构建(例如RelWithDebInfo )。
当所有内容结束时,文件将位于构建目录中的输出文件夹中。重建时,您必须使用cmake --build . --target install (或cmake --install . )将应用程序放在正确的配置中。
其他文件夹中的二进制文件(例如build/bin/ and linphone-sdk )不应该使用。
在SDK中进行一些修改时,您只能使用Target sdk重建SDK,而对于linphone-qt-only的应用程序也可以重建SDK
为了获取软件包,您可以使用cmake .. -DENABLE_APP_PACKAGING=YES 。这些文件将在OUTPUT/packages文件夹中。
使用以下方式更新您的项目:
git提取git拉动 - rebase
更新您当前分支的子模块
git suppodule更新 - init-回报
然后只需使用CMAKE重新构建即可。
-DLINPHONESDK_DOXYGEN_PROGRAM 。例如,在Mac上: -DLINPHONESDK_DOXYGEN_PROGRAM=/Applications/Doxygen.app/Contents/Resources/doxygen
如果SDK崩溃的构建具有“ cmd.exe失败”之类的东西,而没有更多信息,则可能是无法可用的依赖性。您必须检查一切是否在您的路上。通常,如果是关于VPX或DECAF,则可能来自您的Perl安装。
如果应用程序未启动并创建一个带有随机名称的空文件,则可能来自您的应用程序和其他子模型之间的不良配置。检查您的配置,并用-DCMAKE_BUILD_TYPE=<your_config>或--config <your_config>强迫它们。
在Mac上,该应用程序可以在Qopenglcontext开始时崩溃。解决方法是通过添加到[ui]部分中的mipmap_enabled=0来停用图像上的MIPMAP模式。
要在Mac OS X上安装所需的依赖项,您可以使用自制。在使用Brew安装软件包之前,您可能必须更改目录权限(如果您无法使用MacOS上的Sudo更改权限> = High Sierra,请查看此stackoverflow答案)。
从Apple Store安装Xcode。至少运行一次以允许其安装其工具。您可能需要运行:
XCode-select-安装
通过按照说明在此处安装自制酿造
安装依赖项:
酿造CMAKE PKG-CONFIG GIT DOXYGEN NASM YASM
首先确保您有PIP
然后,您可以安装带有以下命令的PIP包:
Python -M PIP安装[软件包]
例如,输入以下命令:
python -m pip install pystache six graphviz
下载QT,安装QT6版本并设置QT6_DIR和路径变量。
如果您要在ARM64系统上构建并想要Intel版本,则必须在CMAKE的生成阶段选择X86_64处理器:
-dcmake_apple_silicon_processor = x86_64
像往常一样构建(一般步骤)。
如果您遇到有关Python找不到的模块的错误,则可能是因为CMake尝试使用路径中的另一个版本。如果您从啤酒中安装了Python,则可能是这种情况。使用绝对路径安装Python模块。例如:
/opt/homebrew/python3 -m pip安装pystache六graphviz
32位版本不受支持,因为QT6不为MSVC提供32bits软件包。 Visual Studio 2022仅支持。
MinGW/MSYS2 :下载pacman -Sy --needed base-devel mingw-w64-mingw64-toolchainpacman -S python3-pip MSYS2 MSYS控制台python3 -m pip install pystache six cmd中的六C:msys64mingw64bin , C:msys64 and C:msys64usrbin在您的路径环境变量中,来自Windows Advanced设置。来自MSYS文件夹的二进制文件(不是来自MingW64)并不能完全支持Windows路径,因此应避免使用它们。 Specify -DENABLE_WINDOWS_TOOLS_CHECK=ON when building the SDK to install automatically missing tools from MSYS2 : toolchain , python , doxygen , perl , yasm , gawk , bzip2 , nasm , sed , patch , pkg-config , gettext , glib2 , intltool and graphviz (if needed)
git :使用msys2: pacman -S git或下载
Visual Studio还必须与附加子正确配置。在“工具” - >“获取工具和功能”下,请确保安装以下组件:
确保您已在MSVC上下载了正确的QT版本。
或使用Visual Studio Developer Command Prompt for VS 2022并打开命令行,并致电qt binaries eg中的qtenv2.bat: C:Qt<version>msvc2019binqtenv2.bat
像往常一样构建-A x64到cmake .. (一般步骤):
cmake .. -DCMAKE_BUILD_PARALLEL_LEVEL=10 -DCMAKE_BUILD_TYPE=RelWithDebInfo -A x64默认构建非常长。更喜欢使用Ninja Generator -G "Ninja"cmake --build . --target ALL_BUILD --parallel 10 --config RelWithDebInfosudo apt安装qt6-base-dev
如果“ Qtquick”模块。*”未安装'错误,则可以安装以下软件包:
有一些Docker文件配置可以检索依赖关系。
同样,在Linphone-SDK子模块的Docker-Files文件夹中提供了更多配置。
| 选项 | 描述 | 默认值 |
|---|---|---|
| enable_app_license | 启用包装许可证。 | 是的 |
| enable_app_packaging | 启用包装。软件包将部署在OUTPUT/packages中 | 不 |
| enable_app_pdf_viewer | 启用PDF查看器。需要QT PDF模块。 | 是的 |
| enable_app_webview | 为帐户启用WebView。必须部署WebView引擎,需要大尺寸。 | 不 |
| enable_app_package_rootca | 将rootca文件(Mozilla发布的所有根证书的串联)嵌入包装中 | 是的 |
| enable_build_app_plugins | 启用插件的构建 | 是的 |
| enable_build_examples | 启用示例的构建 | 不 |
| enable_build_verbose | 使构建生成更详细 | 不 |
| enable_daemon | 启用Linphone守护程序界面。 | 不 |
| enable_pqcrypto | 启用后量子ZRTP。 | 不 |
| enable_strict | 用严格的编译器标志构建,例如-wall -werror | 不 |
| enable_tests | 使用SDK的测试二进制文件构建 | 不 |
| enable_tests_components | 构建libbctoolbox-tester | 不 |
| enable_tools | 启用SDK的工具 | 不 |
| enable_unit_tests | 启用SDK的单元测试。 | 不 |
| enable_update_check | 启用更新检查。 | 是的 |
| linphone_sdk_make_release_file_url | 制作一个符合check_version并使用此URL的释放文件 | “” |
为了提交一个补丁以包含Linphone的源代码:
首先确保您的补丁程序适用于提交之前的最新git源:对旧版本制作的补丁无法和不会合并。
填写并发送贡献者协议,以通过以下链接将其包含在git树中。本协议的目的是授予我们对林电话源代码的和平行使我们的权利,而不会失去您对贡献的权利。
然后转到GitHub存储库,并根据您的代码提出拉请请求。
请注意,我们不提供免费的支持,这些贡献将在我们的业余时间内解决。
Linphone:应用程序代码。
型号:SDK线程运行的SDK管理。
查看:在UI线程上运行的GUI东西。
核心:以MVVM模式链接模型和查看的主代码。
数据:所有不是代码的数据
工具:通用工具的内部库。
CMAKE:构建和安装脚本。
外部:外部项目。
使用--verbose参数启动应用程序以获取完整日志,并随您的请求发送。您可以在设置中使用“发送日志”按钮上传日志文件,并通过电子邮件或与相应的GitHub项目中的帖子共享:
在某些操作系统(例如Fedora 22及以后)上,它们默认情况下禁用QT调试输出。要获得完整的输出,您需要创建~/.config/QtProject/qtlogging.ini并添加:
[Rules]
*.debug=true
qt.*.debug=false