このプロジェクトについて

Linphoneは、IP音声・ビデオ通話とインスタントメッセージングのためのオープンソースソフトフォンです。完全にSIPベースで、通話、プレゼンス、IM機能をカバーしています。このリポジトリはlinphone-androidのLinphone.orgミラーであり、正規の開発場所はBelledonne CommunicationsのGitLabインスタンスです。 アプリはGoogle PlayとF-Droidで入手可能で、プロジェクトキーで署名されたAPKはLinphoneのウェブサイトからダウンロードできます。6.0.0リリースはUX/UI専門家と共に設計された完全な書き直しで、流動性の向上、真のマルチアカウントサポート、通話中の非対称ビデオを実現しています。Android 9.0以降が必要です。CHANGELOG.mdファイルに変更点と新機能が記載されています。 ライセンスはデュアルライセンスで、無料のオープンソース利用にはGNU/GPLv3、クローズドソースアプリケーションには有料のプロプライエタリライセンスが適用され、費用とサービスに関する問い合わせはBelledonne Communicationsが担当します。ドキュメントリンクでは、サポートされる機能とRFC、公開Wiki、Android向けKotlinチュートリアルがカバーされています。 ビルド:Android Studioでプロジェクトを開き、Gradle同期を待ってからビルドまたはインストールします。linphoneライブラリはプロジェクトのMavenリポジトリからAARとして取得されます。Android Studioを使用しない場合は、./gradlew assembleDebugまたはassembleReleaseを使用し、その後installDebugまたはinstallReleaseを実行します。APKはapp/build/outputs/apk/debug/とapp/build/outputs/apk/release/に生成されます。リリースAppBundleにはreleaseAppBundleターゲットを使用し、Play Store用にネイティブライブラリシンボルを含めるためにNDKがインストールされ、ANDROID_NDK_HOMEが設定されていることを確認してください。 ローカルSDKのビルドには、GitLabからlinphone-sdkを再帰的にクローンし、そのREADMEに従ってビルドし、GRADLE_USER_HOME配下のgradle.propertiesにSDKの絶対ビルドパスをLinphoneSdkBuildDirとして追加し、アプリを再ビルドします。ネイティブデバッグでは、Android Studio SDK ToolsのLLDBを使用し、デバッガ設定でDualまたはNativeを選択し、linphone-sdkデバッグライブラリへのパスを追加し、ネイティブファイルにブレークポイントを設定し、app/build.gradleでデバッグAARを使用します。 既知の問題には、linphone_logo_tintedに関するAAPTリソースエラー(app/src/main/res/xml/contacts.xmlを削除して再ビルドすることで解決)、起動時のlibc++_shared.soクラッシュ(プロジェクトをクリーンし、LINPHONESDK_ANDROID_ARCHS cmakeパラメータでSDKが正しいCPUアーキテクチャ向けにビルドされたか確認することで解決)、インストール後にAndroid Studioからアプリを起動した場合にプッシュ通知が機能しない問題(最近のアクティビティからアプリを削除し、ランチャーアイコンから再起動することで解決)が含まれます。 トラブルシューティング:動作の問題は、テンプレートを使用して一致するライブラリログと共にGitHubリポジトリで報告する必要があります。6.0.0以降、ログは常に有効でローカルに保存され、ヘルプ→トラブルシューティングから消去または安全にアップロードできます。ネイティブクラッシュの場合、シンボル化されたスタックトレースにはデバッグライブラリが必要で、SDKをローカルでビルドするか、MavenリポジトリからSDKバージョンに一致するlibs-debugアーカイブをダウンロードすることで入手できます。ndk-stackツールと、場合によってはadb logcatが必要です。ライブラリのアーキテクチャを知っている必要があります。接続されたデバイスからのスタックトレースをシンボル化するためのコマンドが、CPUアーキテクチャが分かる場合と分からない場合の両方について示されており、NDK r29ではlibs-debug.zipを直接使用できます。 カスタムパッケージ名は、app/build.gradle.ktsのpackageName変数を編集することで設定され、manifestPlaceholdersがそれを全体に適用します。useDifferentPackageNameForDebugBuildフラグで、デバッグビルド用にorg.linphone.debugパッケージを復元できます。processDebugGoogleServicesの「no matching client」エラーは、app/google-services.jsonを選択したパッケージ名用のものに置き換えるか、Firebase Cloud MessagingとCrashlyticsを使用しない場合は削除する必要があることを意味します。Firebaseは、Google Cloud Messagingが非推奨になって以来、唯一の公式プッシュ通知経路です。プロジェクトは独自のgoogle-services.jsonをアーカイブしているため、ビルドは無料のsip.linphone.orgサービスからプッシュ通知を受信でき、削除するとプッシュ通知が無効になります。カスタムプッシュサーバーを使用するには、そのファイルを置き換える必要があります。 翻訳はTransifexからセルフホストのWeblateインスタンスに移行しました。書き直し後、以前の翻訳は再利用できなかったため、貢献を歓迎します。貢献には、最新のgitソースに対するパッチと、プルリクエストのリンクを添えてメールで送信された完了済みの貢献者同意書が必要です。これにより、プロジェクトはソースコードに対する権利を平和的に行使でき、貢献者は自身の貢献に対する権利を保持します。