IMSサービス資格

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サービス資格機能のアーキテクチャーと動作を示しています。

TS.43エンタイトルメント機能

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_BOOLtrue場合は、 com.android.imsserviceentitlement/.WfcActivationActivityに設定します。
KEY_IMS_PROVISIONING_BOOLキャリアがバックグラウンドでIMS(VoLTE / VoWiFi / SMSoIP)サービスのネットワークプロビジョニングを必要とする場合は、 trueに設定します。

これは、特定のヨーロッパの通信事業者によって要求されています。
KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL KEY_IMS_PROVISIONING_BOOLtrue場合は、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