Начиная с Android 12, Android включает поддержку спецификации GSMA TS.43 Service Entitlement Configuration , которая определяет этап проверки прав доступа для активации таких услуг, как 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 для предоставления услуг. Внедрение этой функции обеспечивает следующие преимущества:
- Это снижает затраты на тестирование и сертификацию для операторов связи, поскольку данная функция предоставления прав может использоваться для нескольких продуктов и производителей оригинального оборудования.
- Сокращает затраты на разработку для производителей устройств за счет использования стандартного приложения Android.
- Это позволяет производителям устройств и операторам связи вносить свой вклад в разработку кода для этой функции, поскольку она является открытым исходным кодом.
- Обеспечивает управление адресами для экстренных случаев для североамериканских операторов связи.
Архитектура
На следующем рисунке показана архитектура и принцип работы функции предоставления прав на использование сервисов IMS.

Рисунок 1. Архитектура функций управления правами доступа TS.43.
Как показано на рисунке 1, архитектура функции предоставления прав на использование сервисов IMS включает следующие компоненты:
- Библиотека
service_entitlementTS.43 Service API (статическая библиотека ): Эта библиотека реализует спецификацию 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 .
Поскольку библиотека service_entitlement и приложение ImsServiceEntitlement не зависят от API Android 12, их можно портировать на более старые версии Android.
библиотека прав доступа к сервисам
Поскольку библиотека service_entitlement статически связана с приложением ImsServiceEntitlement , для ее интеграции в приложение 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.
В этом разделе описывается, как производители оборудования могут поддерживать дополнительные элементы пользовательского интерфейса системы, связанные с предоставлением услуг 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 и включить его напрямую, переопределите параметр конфигурации оператора 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 rootadb 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