LinPhoneは、IP通話とインスタントメッセージングを超える音声およびビデオ用のオープンソースソフトフォンです。
すべての呼び出し、存在感、IM機能に合わせて、完全にSIPベースです。
一般的な説明は、LinphoneのWebサイトから入手できます
Copyright©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 :「ピップインストール6 -USER」を使用します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がインストールされている場合:eval "$(qtchooser -print -env)" export qt6_dir = {qtlibdir}/cmake/qt6エクスポートパス= $ {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>を追加して、プロセスを高速化するために<count>並列ビルドを行うことができます。また、 -DENABLE_BUILD_VERBOSE=ONを追加して、プロジェクトを生成しながらより多くのフィードバックを取得できます。
注:makefileまたはninjaの場合、特定の構成( RelWithDebInfoなど)でビルドする場合は、 -DCMAKE_BUILD_TYPE=<your_config>を追加する必要があります。
cmake --build . --target <target> --parallel <count> ( <target>をターゲット名に置き換え、<count>並列ビルドの数を<count>に置き換えます)。注:XcodeまたはVisual Studioの場合、特定の構成( RelWithDebInfoなど)でビルドする場合は、 --config <your_config>追加する必要があります。
すべてが終了すると、ファイルはビルドディレクトリの出力フォルダーになります。再構築するときは、 cmake --build . --target install (またはcmake --install .アプリケーションを正しい構成に配置します。
他のフォルダー内のバイナリ( build/bin/やlinphone-sdkなど)は機能することは想定されていません。
SDKでいくつかの変更を行うと、ターゲットsdkを使用してSDKのみを再構築でき、 linphone-qt-onlyアプリケーションで同じものを再構築できます。
パッケージを入手するには、 cmake .. -DENABLE_APP_PACKAGING=YESを使用できます。ファイルはOUTPUT/packagesフォルダーになります。
プロジェクトを更新してください:
git fetch git pull -rebase
現在のブランチからサブモジュールを更新します
Gitサブモジュールアップデート - Init- Recursive
次に、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]セクションで構成ファイル(linphonerc): mipmap_enabled=0に追加することにより、画像上のmipmapモードを無効にすることです。
必要な依存関係をMac OS Xにインストールするには、HomeBrewを使用できます。 Brewでパッケージをインストールする前に、ディレクトリの権限を変更する必要がある場合があります(MacOS> = High SierraでSUDOを使用してアクセス許可を変更できない場合は、このStackOverFlowの回答を確認してください)。
Apple StoreからXcodeをインストールします。少なくとも1回実行して、ツールをインストールできるようにします。実行する必要がある場合があります:
xcode-select - インストール
ここで手順に従ってhomebrewをインストールするhttps://brew.sh/
依存関係をインストールします:
brew install 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がパスから別のバージョンを使用しようとするためかもしれません。 BrewからPythonをインストールした場合は当てはまります。絶対パスを使用してPythonモジュールをインストールします。例えば:
/opt/homebrew/python3 -m pipインストールPystache 6 Graphviz
QT6がMSVCに32ビットパッケージを提供していないため、32ビットバージョンはサポートされていません。 Visual Studio 2022はサポートされています。
MinGW/MSYS2 :ダウンロードpacman -Sy --needed base-devel mingw-w64-mingw64-toolchainMSYS2 MSYSコンソールのpacman -S python3-pippython3 -m pip install pystache sixにcmdにインストールしますC:msys64mingw64bin 、 C:msys64 and C:msys64usrbinをWindows Advanced Settingsからのパス環境変数に追加します。 MSYSフォルダー(MINGW64からではなく)のバイナリは、Windows Pathを完全にサポートしておらず、したがって、回避する必要があります。 specify -DENABLE_WINDOWS_TOOLS_CHECK=ON sdkを構築するときにmsys2から自動的に欠落しているツールをインストールするためにインストールする: toolchain 、 python 、 doxygen 、 perl 、 yasm 、 gawk 、 bzip2 、 nasm 、 sed 、 patch 、 pkg-config 、 gettext 、 glib2 、 intltool 、 graphviz (neils berise)
git :msys2を使用: pacman -S gitまたはdownload
Visual Studioもアドオンで適切に構成する必要があります。 「ツール」 - >「ツールと機能の取得」の下で、次のコンポーネントがインストールされていることを確認してください。
MSVCに正しいQTバージョンをダウンロードしたことを確認してください。
または、Visual Studio Developer Command Prompt for VS 2022を使用し、 C:Qt<version>msvc2019binqtenv2.batを呼び出します。これはQTバイナリにあります。
-A x64 cmake .. (一般的な手順):
cmake .. -DCMAKE_BUILD_PARALLEL_LEVEL=10 -DCMAKE_BUILD_TYPE=RelWithDebInfo -A x64デフォルトのビルドは非常に長いです。忍者ジェネレーター-G "Ninja"を使用することが望ましいcmake --build . --target ALL_BUILD --parallel 10 --config RelWithDebInfosudo apt install 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 | ポストQuantum Zrtpを有効にします。 | いいえ |
| enable_strict | 厳密なコンピレーターフラグなどのビルド - 壁 - 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ツリーに含まれるために、パッチの貢献者契約を記入して送信します。この契約の目標は、あなたの貢献に対するあなたの権利を失うことなく、私たちの権利の平和的な行使をLinphoneソースコードの平和的な行使を与えることです。
次に、githubリポジトリに移動し、コードに基づいてプルリクエストを行います。
私たちは無料のサポートを提供しておらず、これらの貢献は私たちの自由時間に対処されることに注意してください。
LINPHONE:アプリケーションコード。
モデル:SDKスレッドで実行されるSDK管理。
表示:UIスレッドで実行されるGUIのもの。
コア:MVVMパターンでモデルとビューをリンクするメインコード。
データ:コードではないすべてのデータ
ツール:ジェネリックツール用の内部ライブラリ。
cmake:ビルドおよびインストールスクリプト。
外部:外部プロジェクト。
--verboseパラメーターを使用してアプリケーションを起動して、完全なログを取得し、リクエストで送信します。 [設定の[ログ]]ボタンを使用して、ログファイルをアップロードし、電子メールまたは対応するGitHubプロジェクトの投稿で共有できます。
一部のOS(Fedora 22以降など)では、デフォルトでQTデバッグ出力を無効にします。完全な出力を取得するには、 ~/.config/QtProject/qtlogging.iniを作成して追加する必要があります。
[Rules]
*.debug=true
qt.*.debug=false