Начиная с 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.
Рисунок 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