Единая регистрация 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 Диспетчер обеспечения Имсконфигимплбасе Позволяет OEM-производителю или оператору связи предоставить приложение для обновления статуса обеспечения RCS, если оператор использует собственный механизм предоставления полномочий оператору связи. ImsService также должен поддерживать стандартный AutoConfigurationServer (ACS) для предоставления услуг операторам связи, которые не используют собственный механизм.
Пересылка SIP-сообщений SipDelegateManager SipTransportImplBase Позволяет приложению RCS сначала связать определенные теги функций RCS с ImsService устройства, а затем отправлять и получать сообщения SIP и обновления регистрации IMS, связанные с этими тегами функций RCS.
Уведомления о выделенном носителе Диспетчер подключений Ответ на вызов данных Позволяет приложению прослушивать уведомления QoS в сокете, связанном с определенным локальным портом.
аутентификация GBA bootstrapAuthenticationRequest GbaService Позволяет приложению RCS аутентифицироваться с помощью сети и ключей доступа, используемых для функций RCS, таких как передача файлов.
Обмен возможностями пользователей RCS ИмсРксМенеджер Ркскапабилитиексчанжеимплбасе Предоставляет 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 , которое должно соответствовать приложению контактов устройства. Затем этому приложению назначается роль контактов.

Чтобы получить доступ к APN IMS с помощью 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.