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

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

Функция предоставления прав доступа TS.43

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

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

  • Библиотека service_entitlement TS.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 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