Право на услугу IMS

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

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

Операторы с серверами IMS entitlement могут использовать функцию IMS service entitlement для предоставления услуг. Внедрение функции обеспечивает следующие преимущества:

  • Снижает затраты на тестирование и сертификацию для операторов, поскольку эту функцию предоставления прав можно использовать для нескольких продуктов и 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 entitlement на основе протокола 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, US Cellular, 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