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