Разрешение на обслуживание IMS

Начиная с Android 12, Android включает поддержку TS.43 Service Entitlement Configuration , спецификации GSMA, которая определяет этап проверки прав для активации услуг, включая Voice-over-Wi-Fi (VoWiFi), Voice-over-LTE (VoLTE). , SMS через IP (SMSoIP), активация службы на устройстве (ODSA) сопутствующих устройств eSIM (связанных с запрашивающим устройством) и информация о тарифном плане.

Для поддержки этой спецификации Android предоставляет функцию предоставления прав на услуги IMS, которая позволяет поставщику услуг информировать мобильные устройства о состоянии сетевых услуг подсистемы IP-мультимедиа (IMS). Эта функция разрешений позволяет устройству запрашивать сервер разрешений оператора, как определено спецификацией GSMA TS.43, для статуса разрешений IMS с использованием аутентификации EAP-AKA , не требуя от пользователей ввода каких-либо учетных данных вручную.

Операторы связи с серверами разрешений IMS могут использовать функцию разрешений на услуги IMS для предоставления услуг. Принятие этой функции дает следующие преимущества:

  • Сокращает затраты на тестирование и сертификацию для операторов связи, поскольку эту функцию разрешений можно использовать для нескольких продуктов и OEM-производителей.
  • Сокращает затраты на разработку для производителей устройств с помощью стандартного приложения для Android.
  • Позволяет производителям устройств и операторам связи вносить код для функции, поскольку эта функция является открытым исходным кодом.
  • Обеспечивает управление адресами в экстренных случаях для операторов связи в Северной Америке.

Архитектура

На следующем рисунке показаны архитектура и поведение функции предоставления прав на услуги IMS.

Функция прав TS.43

Рисунок 1. Архитектура функции предоставления прав TS.43

Как показано на рис. 1, архитектура функции предоставления прав на услуги IMS включает следующие компоненты:

  • service_entitlement Статическая библиотека API службы TS.43 : эта библиотека реализует спецификацию TS.43, взаимодействует с сервером авторизации оператора связи и предоставляет API-интерфейсы, ориентированные на приложения, для каждого варианта использования TS.43.
  • Клиентское приложение ImsServiceEntitlement : это приложение использует API службы TS.43. В приложении реализованы элементы пользовательского интерфейса, в том числе веб-просмотры для отображения сервисного портала оператора связи, чтобы пользователи могли активировать услуги, и взаимодействует с другими компонентами Android для сквозного управления взаимодействием с пользователем.

    Дополнительные сведения о настройке Android для работы с сервером разрешений на основе TS.43 оператора см. в приложении ImsServiceEntitlement .

Пронумерованные строки на рис. 1 показывают, как компоненты функции прав на услуги IMS взаимодействуют друг с другом. Ниже описывается каждый из шагов, как помечено:

(1) Клиентское приложение вызывает API-интерфейс службы TS.43, чтобы инициировать запрос прав на обслуживание.

(2) API службы TS.43 отправляет HTTP-запрос на сервер авторизации оператора, чтобы инициировать вызов EAP-AKA.

(3) API службы TS.43 вызывает API телефонии (например, getIccAuthentication ) для завершения запроса-ответа EAP-AKA.

(4) Служба TS.43 получает разрешение на обслуживание или данные конфигурации от сервера разрешений оператора связи после проверки ответа EAP-AKA.

(5) Служба TS.43 возвращает права на службу или данные конфигурации клиентскому приложению.

(6) Клиентское приложение обрабатывает данные и при необходимости отображает сервисный портал оператора, чтобы пользователь мог завершить активацию сервиса.

Интеграция

В этом разделе описывается процесс интеграции библиотеки service_entitlement и приложения ImsServiceEntitlement .

Поскольку API-интерфейс Android 12 не зависит, библиотека service_entitlement и приложение ImsServiceEntitlement могут быть перенесены на более старые платформы Android.

библиотека service_entitlement

Поскольку библиотека service_entitlement статически связана с ImsServiceEntitlement app , для интеграции библиотеки в приложение ImsServiceEntitlement не требуется никаких дополнительных действий.

Библиотека service_entitlement может быть интегрирована с вашими собственными приложениями для сценариев использования TS.43, таких как тарифный план данных и ODSA. Библиотеку также можно интегрировать в приложение для случаев использования прав, отличных от TS.43, на основе протокола EAP-AKA.

Ниже описаны API для таких случаев использования:

  • Приложение TS.43, использующее протокол HTTP TS.43, реализованный в библиотеке: используйте API в классе ServiceEntitlement
  • Приложение, отличное от TS.43, использующее протокол EAP-AKA, реализованный в библиотеке: используйте API-интерфейсы, представленные в классе EapAkaHelper

Приложение ImsServiceEntitlement

По умолчанию Android включает приложение ImsServiceEntitlement , установленное в разделе продукта, как привилегированное приложение. Для настройки приложения используйте следующие ключи CarrierConfig:

Ключ Стоимость
KEY_ENTITLEMENT_SERVER_URL_STRING URL-адрес сервера авторизации оператора связи. Должен быть включен префикс https:// .
KEY_FCM_SENDER_ID_STRING Идентификатор отправителя FCM перевозчика.

Не устанавливайте это значение, если оператор не требует FCM.
KEY_SHOW_VOWIFI_WEBVIEW_BOOL Установите значение true , если оператору требуется пользовательский интерфейс веб-портала, чтобы пользователи могли подписаться на услугу VoWiFi. Например, согласившись с положениями и условиями или указав адрес для экстренной связи.

Обычно этого требуют операторы связи в Северной Америке.
KEY_WFC_EMERGENCY_ADDRESS_CARRIER_APP_STRING
Установите com.android.imsserviceentitlement/.WfcActivationActivity , если KEY_SHOW_VOWIFI_WEBVIEW_BOOL имеет значение true .
KEY_IMS_PROVISIONING_BOOL Установите значение true , если оператору связи требуется сетевая подготовка служб IMS (VoLTE/VoWiFi/SMSoIP) в фоновом режиме.

Этого требуют некоторые европейские перевозчики.
KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL Установите значение true , если KEY_IMS_PROVISIONING_BOOL имеет значение true .

HTTP-трафик к серверу авторизации оператора и веб-порталу проходит через сеть по умолчанию, например, мобильные данные по умолчанию или Wi-Fi.

Партнеры GMS: следующие операторы связи поддерживаются приложением прав TS.43 в Android 12 в соответствии со спецификацией TS.43 v5.0:

  • США: CSpire, сотовая связь США, Cellcom
  • Франция: оранжевый

Дополнительный системный пользовательский интерфейс для подготовки IMS

В этом разделе описывается, как OEM-производители могут поддерживать дополнительные элементы пользовательского интерфейса системы, связанные с предоставлением услуг IMS (например, при отображении уведомления о предоставлении VoWiFi).

Приложение ImsServiceEntitlement устанавливает состояние подготовки VoWiFi на платформу с помощью системного API ProvisioningManager.setProvisioningIntValue(KEY_VOICE_OVER_WIFI_ENABLED_OVERRIDE, value) . Этот API также используется для VoLTE (с KEY_VOLTE_PROVISIONING_STATUS ) и SMSoIP (с KEY_SMS_OVER_IP_ENABLED ).

Затем системный пользовательский интерфейс может прочитать состояние подготовки с помощью 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-адрес сервера прав, переопределите конфигурацию оператора связи KEY_ENTITLEMENT_SERVER_URL_STRING и задайте для него ожидаемую строку URL-адреса. Вы должны включить префикс https:// .

Переопределение конфигураций оператора связи

Начиная с Android 11, команды переопределения конфигурации оператора связи являются встроенными и доступны с привилегиями 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