公式の Linphone アプリは、linphone.org
ドメインと Google または Apple が提供するプッシュ通知サービス(Firebase Cloud Messaging / Apple Push Notification Service)と紐付けられています。そのため、linphone.org
以外のドメインを使って Linphone を運用する場合、このプッシュ通知サービスはデフォルトでは利用できません。
独自ドメインを使用して Flexisip サーバを構築し、同様のプッシュ通知機能を実現するには、以下の2つの対応が必要です:
-
Flexisip の設定変更
Flexisip サーバに、Firebase サービスへアクセスするための認証情報(サービスアカウントの JSON キーファイル)を指定します。これにより、サーバは FCM 経由でクライアントへ通知を送信できるようになります。
秘密鍵ファイル:project-name-firebase-adminsdk-xxxxx-xxxxxxx.json -
Linphone アプリのカスタムビルド
Linphone クライアント側も、独自ドメインに対応させるためにビルドし直す必要があります。Firebase プロジェクトに独自ドメイン対応の Android アプリを登録し、そのアプリのパッケージ名やプロジェクトID、Sender ID(プロジェクト番号)を Linphone に組み込みます。
構成ファイル:google-services.json
必要なファイルの取得は以下参照願います。
これにより、Flexisip が Firebase を介して独自ドメイン用の Linphone アプリへプッシュ通知を正しく配信できるようになります。
ビルド環境・ツール
ホストOS:Ubuntu24.04
ビルドツール:
-
VSCode + Extension (Gradle for Java)
-
openjdk-21-jdk
$ sudo apt install openjdk-21-jdk
-
Android Studio コマンドラインツール**
$ mkdir -p ~/Android/Sdk/cmdline-tools $ unzip commandlinetools-linux-*.zip -d ~/Android/Sdk/cmdline-tools $ mv ~/Android/Sdk/cmdline-tools/cmdline-tools ~/Android/Sdk/cmdline-tools/latest
Android Studio とアプリツールのダウンロード - Android デベロッパー | Android Developers
追加ファイル
Android SDK ツールのファイルパスを設定
linphone-android/local.properties
sdk.dir=/home/Your_User_Name/Android/Sdk
リリース版に必要な署名ファイルを作成
linphone-android/app/bc-android.keystore
$ keytool -genkey -v -keystore bc-android.keystore -keyalg RSA -keysize 2048 -validity 10000 -alias my-key-alias
入替えファイル
ダウンロードした構成ファイルの入替え
linphone-android/app/google-services.json
変更ファイル
Firebaseで指定したアプリのパッケージ名へ変更。
注) この名称については、Firebaseでアプリ作成時にパッケージ名をorg.linphone
とすれば、この手間を省けます。
linphone-android/app/build.gradle.kts
val packageName = "com.ficusonline.linphone"
署名ファイル作成時に入力したパスワードなどを入力
linphone-android/keystore.properties
storePassword=xxxxx
keyPassword=xxxxx
keyAlias=my-key-alias
storeFile=bc-android.keystore
ビルド
プロジェクトディレクトリまたはVSCodeのターミナルから直接コマンドを入力するか、Gradleのエクステンション画面からコマンドを入力
ターミナルの場合
$ ./gradlew assembleDebug
$ ./gradlew installDebug
$ ./gradlew assembleRelease
APKファイルは app/build/outputs/apk ...
に作成されます。
Gradleエクステンションの場合
GRADLEPROJECTSの右側に表示されるターミナルアイコンをクリックすると右側にコマンド入力欄が表示されます。ここに./gradlewを省略したオプションのみを入力して下さい。
例)assembleDebug と入力してリターン
各ビルドオプションについては以下を参照して下さい。