Единая регистрация IMS

В Android 12 представлена ​​поддержка единой модели регистрации для предоставления функций MMTEL и RCS. Эта модель позволяет устройствам управлять всеми функциями IMS с помощью единой регистрации IMS, предоставляемой ImsService устройства, и соответствовать требованиям, введенным некоторыми операторами связи. По сравнению с моделью двойной регистрации, когда несколько регистраций IMS управляются на одном устройстве, единая регистрация снижает трафик в сети оператора и повышает надежность.

Android 12 поддерживает эту единую модель регистрации с помощью архитектуры с набором API-интерфейсов, которые позволяют стеку телефонии AOSP управлять как функциями MMTEL, предоставляемыми ImsService , так и функциями RCS, предоставляемыми выбранным пользователем приложением обмена сообщениями RCS. Для поддержки единой регистрации IMS производители устройств и поставщики SoC должны реализовать эти API, чтобы активировать функции RCS в выбранном пользователем приложении обмена сообщениями RCS.

На рис. 1 показан стек IMS устройства при использовании модели одиночной регистрации IMS. Все приложения IMS используют ImsService устройства по умолчанию для функций MMTEL и RCS по одной регистрации IMS. Это включает подготовку, пересылку сообщений SIP и обмен пользовательскими возможностями RCS.

Единая архитектура режима регистрации

Рис. 1. Архитектура модели единой регистрации

Android 11 и более ранние версии поддерживают только модель двойной регистрации для предоставления функций MMTEL и RCS, где MMTEL предоставляется ImsService устройства, а функции RCS реализуются поверх и управляют собственным стеком IMS и подключением к сети оператора независимо.

Рисунок 2 иллюстрирует архитектуру модели двойной регистрации. В этой модели каждое приложение отвечает за подключение к сети оператора и установку регистрации IMS для функций MMTEL и RCS. ImsService устройства реализует MMTEL, использует подключение данных IMS устройства к сети оператора и работает независимо от других приложений RCS.

архитектура режима двойной регистрации

Рисунок 2. Архитектура модели двойной регистрации

API единой регистрации IMS

Устройства, работающие с операторами связи, для которых требуется единая регистрация IMS, должны поддерживать API единой регистрации IMS и определять функцию Android PackageManager#FEATURE_TELEPHONY_IMS_SINGLE_REGISTRATION . На рис. 3 показаны API, поддерживающие единую регистрацию IMS.

Поверхности API, поддерживающие единую регистрацию IMS

Рис. 3. Поверхности API высокого уровня, поддерживающие единую регистрацию IMS

Устройства Android, поддерживающие единую регистрацию IMS как часть стека телефонии AOSP, должны поддерживать все API-интерфейсы AOSP, описанные в следующей таблице.

Площадь поверхности API API-интерфейсы приложений RCS API поставщика IMS Описание
Подготовка RCS ProvisioningManager Имсконфигимплбасе Позволяет OEM-производителю или оператору связи предоставлять приложение для обновления статуса подготовки RCS, если оператор использует проприетарный механизм предоставления прав операторам связи. ImsService также должен поддерживать стандартный сервер AutoConfigurationServer (ACS) для предоставления услуг операторам связи, не использующим проприетарный механизм.
Переадресация SIP-сообщений SipDelegateManager SipTransportImplBase Позволяет приложению RCS сначала связывать определенные теги функций RCS с ImsService устройства, а затем отправлять и получать сообщения SIP и обновления регистрации IMS, связанные с этими тегами функций RCS.
Уведомления о выделенном носителе ConnectivityManager DataCallResponse Позволяет приложению прослушивать уведомления QoS в сокете, связанном с определенным локальным портом.
GBA-аутентификация бутстрапаутентикатионрекуест GbaService Позволяет приложению RCS аутентифицироваться с помощью сети и ключей доступа, используемых для функций RCS, таких как передача файлов.
Обмен пользовательскими возможностями RCS ImsRcsManager RcsCapabilityExchangeImplBase Предоставляет AOSP возможность отправлять свои возможности MMTEL и RCS поставщику ImsService, чтобы их можно было опубликовать под одним объектом в сети для обмена пользовательскими возможностями RCS. Также позволяет другим приложениям, заинтересованным в возможностях RCS одного или нескольких контактов, запрашивать в сети возможности RCS контактов.

Безопасность и разрешения

Android 12 вводит следующие разрешения для обеспечения безопасного доступа к сети оператора и данным пользователя:

Разрешение android.permission.PERFORM_IMS_SINGLE_REGISTRATION должно быть определено приложением обмена сообщениями с функциями RCS. Чтобы это разрешение было предоставлено, должно выполняться следующее:

  • Приложение должно быть установлено как привилегированное приложение, то есть оно предварительно установлено на устройстве и имеет доступ к привилегированным разрешениям.
  • Приложение должно быть установлено как роль SMS пользователя по умолчанию с помощью RoleManager

Если оба эти условия не выполняются, приложению будет отказано в доступе к разрешению android.permission.PERFORM_IMS_SINGLE_REGISTRATION . Это означает, что сторонним приложениям не разрешен доступ к API единой регистрации RCS, поскольку они требуют сертификации оператора связи на устройстве.

Разрешение android.permission.ACCESS_RCS_USER_CAPABILITY_EXCHANGE , предоставленное приложению, которое также имеет разрешение READ_CONTACTS, позволяет приложению запрашивать возможности RCS телефонных номеров с помощью RcsUceAdapter . Чтобы это разрешение было предоставлено, должно выполняться следующее:

  • Приложение должно быть установлено как привилегированное приложение, то есть оно предварительно установлено на устройстве и имеет доступ к привилегированным разрешениям.
  • Приложение должно быть определено как одна из следующих ролей RoleManager :

    • Приложение для обмена сообщениями по умолчанию: устанавливается пользователем.
    • Приложение для набора номера по умолчанию: устанавливается пользователем.
    • Приложение контактов по умолчанию: роль, представленная в Android 12, которая позволяет OEM-производителю определять имя пакета через значение наложения устройства config_systemContacts , которое должно соответствовать приложению контактов устройства. Затем этому приложению назначается роль контактов.

Чтобы получить доступ к IMS APN с помощью ConnectivityManager для настройки и управления трафиком данных, приложения также должны запрашивать разрешение android.permission.CONNECTIVITY_USE_RESTRICTED_NETWORKS .

Примеры и источник

Android предоставляет приложение в AOSP, которое реализует тестовое приложение для обмена сообщениями с базовой поддержкой обмена сообщениями RCS для целей тестирования и разработки. Вы можете найти приложение по адресу testapps/TestRcsApp . Когда приложение установлено на устройстве, его можно установить в качестве приложения для обмена сообщениями пользователя по умолчанию, и оно будет иметь разрешения, необходимые для доступа к API единой регистрации IMS.

Android также предоставляет образец реализации ImsService для RCS. Исходный код находится в /testapps/ImsTestService .

Реализация

Для получения дополнительных сведений о реализации загрузите единую регистрацию IMS в Android .

Проверка

Чтобы проверить реализацию единой регистрации IMS, выполните следующие действия.

  • Убедитесь, что набор тестов CtsTelephonyTestCases CTS пройден.
  • Установите и запустите TestRcsApp , чтобы запускать базовые тестовые случаи с одиночной регистрацией во время интеграции.
  • Пройдите сертификацию перевозчика для тестовых случаев одиночной регистрации IMS.