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

Начиная с Android 12, Android поддерживает TS.43 Service Entitlement Configuration — спецификацию GSMA, которая определяет этап проверки прав на активацию таких услуг, как Voice-over-Wi-Fi (VoWiFi), Voice-over-LTE (VoLTE), SMS over IP (SMSoIP), On-Device Service Activation (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, 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