Linphone 是一款用于 IP 语音和视频通话以及即时通讯的开源软电话。
它完全基于 SIP 协议,支持所有通话、在线状态和即时通讯功能。
可以从 Linphone 网站 获取一般性描述。
版权所有 © Belledonne Communications
Linphone 采用双重许可,可以选择:
根据 GNU/GPLv3 许可证 免费使用(开源)。使用前请确保您理解并同意该许可证的条款(详见 LICENSE 文件)。
根据专有许可证,付费用于封闭源代码应用程序。如有任何关于费用和服务的问题,请联系 Belledonne Communications。
--help
: 显示可用参数。
--verbose
: 将日志打印到标准输出/标准错误。
--qt-logs-only
: 只打印应用程序的日志,不包含 SDK 日志。
以下是构建 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 Wrapper 需要)Perl
pystache
: 使用 'pip install pystache --user' 安装six
: 使用 'pip install six --user' 安装git
对于桌面版:您需要 Qt5 (5.15 或更新版本)。需要支持 C++11
!
必须安装 pip
命令并执行:
pip install pystache six
您必须设置环境变量 Qt5_DIR
指向包含 Qt5 cmake 文件夹的路径,并将 PATH
指向 Qt5 的 bin
。例如:
Qt5_DIR="~/Qt/5.15.2/gcc_64/lib/cmake/Qt5"
PATH="~/Qt/5.15.2/gcc_64/bin/:$PATH"
注意:如果您安装了第三方工具 qtchooser
:
eval "$(qtchooser -print-env)"
export Qt5_DIR=${QTLIBDIR}/cmake/Qt5
export PATH=${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` 或 `./OUTPUT/Linphone.app/Contents/MacOS/linphone --verbose`
git clone https://gitlab.linphone.org/BC/public/linphone-desktop.git --recursive
构建过程包括构建 SDK 和应用程序。它们的目标分别是 sdk
和 linphone-qt
。
在项目根目录创建构建文件夹: mkdir build
进入 新文件夹开始构建过程: cd build
准备选项: cmake ..
。默认情况下,它将尝试编译所有需要的依赖项。您可以通过添加 -DENABLE_<COMPONENT>=NO
来移除某些组件。如果想更好地访问这些选项,可以使用 cmake-gui ..
。您可以添加 -DCMAKE_BUILD_PARALLEL_LEVEL=<count>
来执行 <count>
个并行构建以加快进程。
此外,您可以添加 -DENABLE_BUILD_VERBOSE=ON
以在生成项目时获得更多反馈。
注意:对于 Makefile 或 Ninja,如果您希望在特定配置下构建(例如 RelWithDebInfo
),则必须添加 -DCMAKE_BUILD_TYPE=<your_config>
。
cmake --build . --target <target> --parallel <count>
(将 <target>
替换为目标名称,<count>
替换为并行构建数)。注意:对于 XCode 或 Visual Studio,如果您希望在特定配置下构建(例如 RelWithDebInfo
),则必须添加 --config <your_config>
。
完成后,文件将位于构建目录的 OUTPUT 文件夹中。重新构建时,必须使用 cmake --build . --target install
(或 cmake --install .
) 将应用程序放置在正确的配置中。
其他文件夹(如 linphone-app
和 linphone-sdk
)中的二进制文件不应该能正常工作。
4. 在对SDK进行一些修改时,你可以只使用目标sdk
重新构建SDK,同样地,使用linphone-qt-only
只重新构建应用程序。
cmake .. -DENABLE_APP_PACKAGING=YES
。文件将位于OUTPUT/packages
文件夹中。使用以下命令更新你的项目:
git fetch
git pull --rebase
从当前分支更新子模块
git submodule update --init --recursive
然后只需使用cmake重新构建即可。
-DLINPHONESDK_DOXYGEN_PROGRAM
。例如在Mac上: -DLINPHONESDK_DOXYGEN_PROGRAM=/Applications/Doxygen.app/Contents/Resources/doxygen
如果SDK的构建崩溃,出现类似"cmd.exe失败"的提示且没有更多信息,可能是某个依赖项不可用。你需要检查是否所有依赖项都在你的PATH中。 通常,如果是关于VPX或Decaf的问题,可能来自你的Perl安装。
如果应用程序无法启动并创建一个随机名称的空文件,可能是由于应用程序与其他子模块之间的配置不当。检查你的配置并使用-DCMAKE_BUILD_TYPE=<your_config>
或--config <your_config>
强制设置。
在Mac上,应用程序可能会在启动时因QOpenGLContext而崩溃。一个解决方法是在配置文件(linphonerc)的[ui]
部分添加mipmap_enabled=0
来停用图像的mipmap模式。
要在Mac OS X上安装所需的依赖项,你可以使用Homebrew。 在使用Brew安装软件包之前,你可能需要更改目录权限(如果你无法在MacOS >= High Sierra上使用sudo更改权限,请查看这个StackOverflow回答)。
从Apple商店安装XCode。至少运行一次以允许它安装其工具。你可能需要运行:
xcode-select --install
安装依赖项:
brew install cmake pkg-config git doxygen nasm yasm
首先确保你已安装pip
然后,你可以使用以下命令安装pip包:
python -m pip install [package]
例如,输入以下命令:
python -m pip install pystache six graphviz
6. 下载Qt,安装Qt5版本并设置Qt5_DIR和PATH变量。
默认架构为x86_64,因为Qt 5.15.2不支持arm64。可以使用LINPHONEAPP_MACOS_ARCHS更改架构。
-DLINPHONEAPP_MACOS_ARCHS=arm64
按常规步骤构建。
如果你遇到关于Python模块未找到的错误,可能是因为cmake尝试使用PATH中的另一个版本。如果你从brew安装了Python,这种情况可能会发生。使用绝对路径安装Python模块。 例如:
/opt/homebrew/python3 -m pip install pystache six graphviz
MinGW/MSYS2
: 下载
MSYS2 MSYS
控制台中运行pacman -Sy --needed base-devel mingw-w64-x86_64-toolchain
MSYS2 MSYS
控制台中运行pacman -S python3-pip
cmd
中运行python3 -m pip install pystache six
C:\msys64\mingw64\bin
、C:\msys64\
和C:\msys64\usr\bin
。msys文件夹中的二进制文件(不是mingw32/64中的)不完全支持Windows路径,因此应避免使用。构建SDK时,它将自动从MSYS2安装:toolchain
、python
、doxygen
、perl
、yasm
、gawk
、bzip2
、nasm
、sed
、patch
、pkg-config
、gettext
、glib2
、intltool
和graphviz
(如果需要)
git
: 使用MSYS2: pacman -S git
或下载
Visual Studio还必须正确配置附加组件。在"工具"->"获取工具和功能"下,确保安装了以下组件:
确保你已下载Qt msvc2019版本
(64位)。请注意,Qt msvc2019
可以与早期版本的Visual Studio一起使用。
或者打开Visual Studio的Developer Command Prompt for VS 2019
命令行,并调用qt二进制文件中的qtenv2.bat,例如:C:\Qt\<version>\msvc2019\bin\qtenv2.bat
按常规步骤构建,在cmake ..
中添加-A x64
(常规步骤):
cmake .. -DCMAKE_BUILD_PARALLEL_LEVEL=10 -DCMAKE_BUILD_TYPE=RelWithDebInfo -A x64
默认构建时间很长。建议使用Ninja生成器-G "Ninja"
cmake --build . --target ALL_BUILD --parallel 10 --config RelWithDebInfo
有docker文件配置,可以从中获取依赖项。 此外,linphone-sdk 子模块的 docker-files 文件夹中还有更多配置可用。
选项 | 描述 | 默认值 |
---|---|---|
ENABLE_APP_LICENSE | 在软件包中启用许可证 | 是 |
ENABLE_APP_PACKAGING | 启用打包。软件包将部署在 OUTPUT/packages 中 | 否 |
ENABLE_APP_PDF_VIEWER | 启用 PDF 查看器。需要 Qt PDF 模块 | 是 |
ENABLE_APP_WEBVIEW | 为账户启用网页视图。必须部署网页视图引擎,占用空间较大 | 否 |
ENABLE_APP_PACKAGE_ROOTCA | 将 rootca 文件(Mozilla 发布的所有根证书的合并)嵌入软件包中 | 是 |
ENABLE_BUILD_APP_PLUGINS | 启用插件构建 | 是 |
ENABLE_BUILD_EXAMPLES | 启用示例构建 | 否 |
ENABLE_BUILD_VERBOSE | 启用更详细的构建生成输出 | 否 |
ENABLE_DAEMON | 启用 linphone 守护进程接口 | 否 |
ENABLE_PQCRYPTO | 启用后量子 ZRTP | 否 |
ENABLE_SCREENSHARING | 启用屏幕共享 | 是 |
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 配合使用的 RELEASE 文件,并使用此 URL | "" |
要提交补丁以纳入 Linphone 的源代码中:
首先确保您的补丁适用于最新的 Git 源代码,然后再提交:对旧版本的补丁无法合并,也不会被合并。
填写并发送贡献者协议,以便将您的补丁纳入 Git 树中,具体方法请点击此处。该协议的目的是授予我们对 Linphone 源代码的和平行使权利,同时不影响您对自己贡献的权利。
然后前往 GitHub 仓库,基于您的代码创建一个拉取请求。
请注意,我们不提供免费支持,这些贡献将在我们的空闲时间内处理。
<a href="https://weblate.linphone.org/engage/linphone-desktop/?utm_source=widget"> <img src="https://yellow-cdn.veclightyear.com/0a4dffa0/20af9c4a-b546-4bb2-b704-e389c68157cb.svg" alt="翻译状态" align="right"/> </a>使用 --verbose
参数启动应用程序以获取完整日志,并将其与您的请求一起发送。您可以使用设置中的"发送日志"按钮上传日志文件,并通过电子邮件或在相应的 GitHub 项目中发帖分享:
在某些操作系统(如 Fedora 22 及更高版本)上,默认禁用了 Qt 调试输出。要获得完整输出,您需要创建 ~/.config/QtProject/qtlogging.ini
文件并添加以下内容:
[Rules]
*.debug=true
qt.*.debug=false
字节跳动发布的AI编程神器IDE
Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。
全能AI智能助手,随时解答生活与工作的多样问题
问小白,由元石科技研发的AI智能助手,快速准确地解答各种生活和工作问题,包括但不限于搜索、规划和社交互动,帮助用户在日常生活中提高效率,轻松管理个人事务。
实时语音翻译/同声传译工具
Transly是一个多场景的AI大语言模型驱动的同声传译、专业翻译助手,它拥有超精准的音频识别翻译能力,几乎零延迟的使用体验和支持多国语言可以让你带它走遍全球,无论你是留学生、商务人士、韩剧美剧爱好者,还是出国游玩、多国会议、跨国追星等等,都可以满足你所有需要同传的场景需求,线上线下通用,扫除语言障碍,让全世界的语言交流不再有国界。
一键生成PPT和Word,让学习生活更轻松
讯飞智文是一个利用 AI 技术的项目,能够帮助用户生成 PPT 以及各类文档。无论是商业领域的市场分析报告、年度目标制定,还是学生群体的职业生涯规划、实习避坑指南,亦或是活动策划、旅游攻略等内容,它都能提供支持,帮助用户精准表达,轻松呈现各种信息。
深度推理能力全新升级,全面对标OpenAI o1
科大讯飞的星火大模型,支持语言理解、知识问答和文本创作等多功能,适用于多种文件和业务场景,提升办公和日常生活的效率。讯飞星火是一个提供丰富智能服务的平台,涵盖科技资讯、图像创作、写作辅助、编程解答、科研文献解读等功能,能为不同需求的用户提供便捷高效的帮助,助力用户轻松获取信息、解决问题,满足多样化使用场景。
一种基于大语言模型的高效单流解耦语音令牌文本到语音合成模型
Spark-TTS 是一个基于 PyTorch 的开源 文本到语音合成项目,由多个知名机构联合参与。该项目提供了高效的 LLM(大语言模型)驱动的语音合成方案,支持语音克隆和语音创建功能,可通过命令行界面(CLI)和 Web UI 两种方式使用。用户可以根据需求调整语音的性别、音高、速度等参数,生成高质量的语音。该项目适用于多种场景,如有声读物制作、智能语音助手开发等。
AI助力,做PPT更简单!
咔片是一款轻量化在线演示设计工具,借助 AI 技术,实现从内容生成到智能设计的一站式 PPT 制作服务。支持多种文档格式导入生成 PPT,提供海量模板、智能美化、素材替换等功能,适用于销售、教师、学生等各类人群,能高效制作出高品质 PPT,满足不同场景演示需求。
选题、配图、成文,一站式创作,让内容运营更高效
讯飞绘文,一个AI集成平台,支持写作、选题、配图、排版和发布。高效生成适用于各类媒体的定制内容,加速品牌传播,提升内容营销效果。
专业的AI公文写作平台,公文写作神器
AI 材料星,专业的 AI 公文写作辅助平台,为体制内工作人员提供高效的公文写作解决方案。拥有海量公文文库、9 大核心 AI 功能,支持 30 + 文稿类型生成,助力快速完成领导讲话、工作总结、述职报告等材料,提升办公效率,是体制打工人的得力写作神器。
OpenAI Agents SDK,助力开发者便捷使用 OpenAI 相关功能。
openai-agents-python 是 OpenAI 推出的一款强大 Python SDK,它为开发者提供了与 OpenAI 模型交互的高效工具,支持工具调用、结果处理、追踪等功能,涵盖多种应用场景,如研究助手、财务研究等,能显著提升开发效率,让开发者更轻松地利用 OpenAI 的技术优势。
最新AI工具、AI资讯
独家AI资源、AI项目落地
微信扫一扫关注公众号