Android 12以降、AndroidにはTS.43 Service Entitlement Configurationのサポートが含まれています。これは、Voice-over-Wi-Fi(VoWiFi)、Voice-over-LTE(VoLTE)などのサービスをアクティブ化するための資格検証ステップを定義するGSMA仕様です。 、SMS over IP(SMSoIP)、eSIMコンパニオンデバイス(要求元のデバイスに関連付けられている)のオンデバイスサービスアクティベーション(ODSA)、およびデータプラン情報。
この仕様をサポートするために、Androidは、サービスプロバイダーがモバイルデバイスにIPマルチメディアサブシステム(IMS)ネットワークサービスのステータスを通知できるようにするIMSサービス資格機能を提供します。このエンタイトルメント機能により、デバイスは、ユーザーがクレデンシャルを手動で入力しなくても、 EAP-AKA認証を使用して、GSMATS.43仕様で定義されているIMSエンタイトルメントステータスのキャリアエンタイトルメントサーバーにクエリを実行できます。
IMSエンタイトルメントサーバーを使用する通信事業者は、サービスプロビジョニングにIMSサービスエンタイトルメント機能を使用できます。この機能を採用すると、次の利点があります。
- この資格機能は複数の製品およびOEMで使用できるため、通信事業者のテストおよび認証コストを削減します。
- 標準のAndroidアプリにより、デバイスメーカーの開発オーバーヘッドを削減します。
- 機能はオープンソースであるため、デバイスの製造元と通信事業者がその機能のコードを提供できるようにします。
- 北米の通信事業者に緊急アドレス管理を提供します。
建築
次の図は、IMSサービス資格機能のアーキテクチャーと動作を示しています。
図1.TS.43エンタイトルメント機能のアーキテクチャ
図1に示すように、IMSサービス資格機能のアーキテクチャーには、以下のコンポーネントが含まれています。
-
service_entitlement
TS.43サービスAPI静的ライブラリ:このライブラリは、TS.43仕様を実装し、通信事業者のエンタイトルメントサーバーと対話し、各TS.43ユースケースのアプリ向けAPIを公開します。 ImsServiceEntitlement
クライアントアプリ:このアプリはTS.43サービスAPIを使用します。このアプリは、ユーザーがサービスをアクティブ化するためにキャリアのサービスポータルをレンダリングするためのWebビューを含むUI要素を実装し、他のAndroidコンポーネントと対話してユーザーエクスペリエンスをエンドツーエンドで管理します。キャリアのTS.43ベースのエンタイトルメントサーバーと連携するようにAndroidを構成する方法の詳細については、 ImsServiceEntitlementアプリを参照してください。
図1の番号付きの行は、IMSサービス資格機能のコンポーネントが相互に通信する方法を示しています。以下に、ラベル付けされた各ステップについて説明します。
(1)クライアントアプリはTS.43サービスAPIを呼び出して、サービス資格要求を開始します。
(2) TS.43サービスAPIは、キャリアのエンタイトルメントサーバーにHTTPリクエストを送信して、EAP-AKAチャレンジを開始します。
(3) TS.43サービスAPIは、テレフォニーAPI(たとえば、 getIccAuthentication
)を呼び出して、EAP-AKAチャレンジレスポンスを完了します。
(4) TS.43サービスは、EAP-AKA応答が検証された後、キャリアのエンタイトルメントサーバーからサービスエンタイトルメントまたは構成データを受信します。
(5) TS.43サービスは、サービスの資格または構成データをクライアントアプリに返します。
(6)クライアントアプリはデータを処理し、オプションでユーザーがサービスのアクティブ化を完了するためにキャリアのサービスポータルをレンダリングします。
統合
このセクションでは、 service_entitlement
ライブラリとImsServiceEntitlement
アプリを統合するプロセスについて説明します。
Android 12 APIの依存関係がないため、 service_entitlement
ライブラリとImsServiceEntitlement
アプリを古いAndroidプラットフォームにバックポートできます。
service_entitlementライブラリ
service_entitlement
ライブラリはImsServiceEntitlement app
に静的にリンクされているため、ライブラリをImsServiceEntitlement
アプリに統合するために追加の手順は必要ありません。
service_entitlement
ライブラリは、データプランやODSAなどのTS.43ユースケース用の独自のアプリと統合できます。ライブラリは、EAP-AKAプロトコルに基づくTS.43以外の資格のユースケース用のアプリに統合することもできます。
以下に、そのようなユースケースに使用するAPIについて説明します。
- ライブラリに実装されているTS.43HTTPプロトコルを使用するTS.43アプリ:
ServiceEntitlement
クラスのAPIを使用します - ライブラリに実装されているEAP-AKAプロトコルを使用するTS.43以外のアプリ:
EapAkaHelper
クラスで公開されているAPIを使用します
ImsServiceEntitlementアプリ
デフォルトでは、Androidには特権アプリとして製品パーティションにインストールされたImsServiceEntitlement
アプリが含まれています。アプリを構成するには、次のCarrierConfigキーを使用します。
鍵 | 価値 |
---|---|
KEY_ENTITLEMENT_SERVER_URL_STRING | キャリアのエンタイトルメントサーバーのURL。 https:// プレフィックスを含める必要があります。 |
KEY_FCM_SENDER_ID_STRING | キャリアのFCM送信者ID。 運送業者がFCMを必要としない場合は、この値を設定しないでください。 |
KEY_SHOW_VOWIFI_WEBVIEW_BOOL | ユーザーがVoWiFiサービスにサインアップするためにキャリアがWebポータルUIを必要とする場合は、 true に設定します。たとえば、利用規約に同意したり、緊急アドレスを入力したりします。これは通常、北米の通信事業者が必要とします。 |
KEY_WFC_EMERGENCY_ADDRESS_CARRIER_APP_STRING | KEY_SHOW_VOWIFI_WEBVIEW_BOOL がtrue 場合は、 com.android.imsserviceentitlement/.WfcActivationActivity に設定します。 |
KEY_IMS_PROVISIONING_BOOL | キャリアがバックグラウンドでIMS(VoLTE / VoWiFi / SMSoIP)サービスのネットワークプロビジョニングを必要とする場合は、 true に設定します。これは、特定のヨーロッパの通信事業者によって要求されています。 |
KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL | KEY_IMS_PROVISIONING_BOOL がtrue 場合は、trueに設定しtrue 。 |
キャリアのエンタイトルメントサーバーとWebポータルへのHTTPトラフィックは、デフォルトのネットワーク(たとえば、デフォルトのモバイルデータやWi-Fi)を経由します。
GMSパートナー:次のキャリアは、TS.43 v5.0仕様に従って、Android12のTS.43エンタイトルメントアプリでサポートされています。
- 米国:CSpire、US Cellular、Cellcom
- フランス:オレンジ
IMSプロビジョニング用の追加のシステムUI
このセクションでは、OEMがIMSサービスプロビジョニングに関連する追加のシステムUI要素をサポートする方法について説明します(たとえば、VoWiFiがプロビジョニングされたときに通知を表示する場合)。
ImsServiceEntitlement
アプリは、 ProvisioningManager.setProvisioningIntValue(KEY_VOICE_OVER_WIFI_ENABLED_OVERRIDE, value)
システムAPIを使用して、VoWiFiプロビジョニング状態をプラットフォームに設定します。このAPIは、VoLTE( KEY_VOLTE_PROVISIONING_STATUS
を使用)およびSMSoIP( KEY_SMS_OVER_IP_ENABLED
を使用)にも使用されます。
システムUIは、 getProvisioningIntValue
を使用するか、コールバックを登録してregisterProvisioningChangedCallback
を介してプロビジョニング状態の変化を監視することにより、プロビジョニング状態を読み取ることができます。
テスト用の構成のオーバーライド
次の手順を使用して、テスト目的でImsServiceEntitlement
アプリの動作を一時的に変更します。キャリア構成をオーバーライドする方法の詳細については、キャリア構成のオーバーライドを参照してください。
VoWiFiサインアッププロセスをスキップする
VoWiFiサインアッププロセスをスキップして、VoWiFiを直接オンにできるようにするには、キャリア設定KEY_WFC_EMERGENCY_ADDRESS_CARRIER_APP_STRING
を上書きし、その値を空の文字列に設定します。
IMSプロビジョニングをスキップする
IMSプロビジョニングをスキップし、IMSサービスを利用可能にし、ユーザーがネットワークプロビジョニングなしでそのようなサービスをオンにできるようにするには、キャリアKEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL
をオーバーライドし、その値をfalse
に設定します。
エンタイトルメントサーバーのURLを変更する
エンタイトルメントサーバーのURLを変更するには、carrier config KEY_ENTITLEMENT_SERVER_URL_STRING
をオーバーライドし、その値を予想されるURL文字列に設定します。 https://
プレフィックスを含める必要があります。
キャリア構成のオーバーライド
Android 11から、carrier config overrideコマンドが組み込まれ、root権限で使用できます。
次のコマンドは、キャリア設定キーcarrier_volte_provisioning_required_bool
をオーバーライドし、その値をfalse
に設定する方法の例です。コマンドを複数回実行して、複数の構成をオーバーライドできます。
adb root
adb shell cmd phone cc set-value -p carrier_volte_provisioning_required_bool false
すべてのオーバーライドをクリアするには、次のコマンドを使用します。
adb shell cmd phone cc clear-values
詳細情報を取得するには、次のコマンドを実行します。
adb shell cmd phone cc