Pojedyncza rejestracja IMS

Android 12 wprowadza obsługę pojedynczego modelu rejestracji do udostępniania funkcji MMTEL i RCS. Ten model umożliwia zarządzanie wszystkimi funkcjami IMS za pomocą jednej rejestracji IMS zapewnianej przez usługę ImsService urządzenia i spełnianie wymagań wprowadzonych przez niektórych operatorów telekomunikacyjnych. W porównaniu z modelem podwójnej rejestracji, w którym na jednym urządzeniu zarządza się wieloma rejestracjami IMS, pojedyncza rejestracja zmniejsza ruch w sieci operatora i zwiększa niezawodność.

Android 12 obsługuje ten model pojedynczej rejestracji dzięki architekturze z zestawem interfejsów API, które umożliwiają stosowi telefonicznemu AOSP zarządzanie zarówno funkcjami MMTEL zapewnianymi przez ImsService , jak i funkcjami RCS zapewnianymi przez wybraną przez użytkownika aplikację do obsługi wiadomości RCS. Aby obsługiwać pojedynczą rejestrację IMS, producenci urządzeń i dostawcy układów SoC muszą wdrożyć te interfejsy API, aby włączyć funkcje RCS w wybranej przez użytkownika aplikacji do obsługi wiadomości RCS.

Rysunek 1 przedstawia stos IMS urządzenia podczas korzystania z modelu pojedynczej rejestracji IMS. Wszystkie aplikacje IMS korzystają z domyślnej usługi ImsService na urządzeniu w przypadku funkcji MMTEL i RCS w ramach jednej rejestracji IMS. Obejmuje to udostępnianie, przekazywanie wiadomości SIP i wymianę informacji o możliwościach użytkownika RCS.

Architektura trybu pojedynczej rejestracji

Rysunek 1. Architektura modelu pojedynczej rejestracji

Android 11 i starsze wersje obsługują tylko model podwójnej rejestracji, który zapewnia funkcje MMTEL i RCS. MMTEL jest obsługiwany przez ImsService urządzenia, a funkcje RCS są implementowane na wyższym poziomie i niezależnie zarządzają własnym stosem IMS oraz połączeniem z siecią operatora.

Ilustracja 2 przedstawia architekturę modelu podwójnej rejestracji. W tym modelu każda aplikacja odpowiada za połączenie z siecią operatora i ustanowienie rejestracji IMS dla funkcji MMTEL i RCS. Usługa ImsService urządzenia implementuje MMTEL, korzysta z połączenia danych IMS urządzenia z siecią operatora i działa niezależnie od innych aplikacji RCS.

architektura trybu podwójnej rejestracji,

Rysunek 2. Architektura modelu podwójnej rejestracji

Interfejsy API pojedynczej rejestracji IMS

Urządzenia w sieciach operatorów, które wymagają pojedynczej rejestracji IMS, muszą obsługiwać interfejsy API pojedynczej rejestracji IMS i definiować funkcję Androida PackageManager#FEATURE_TELEPHONY_IMS_SINGLE_REGISTRATION. Na rysunku 3 przedstawiono interfejsy API, które obsługują pojedynczą rejestrację IMS.

Platformy API obsługujące pojedynczą rejestrację IMS

Rysunek 3. Interfejsy API wysokiego poziomu obsługujące pojedynczą rejestrację IMS

Urządzenia z Androidem, które obsługują pojedynczą rejestrację IMS w ramach stosu telefonicznego AOSP, muszą obsługiwać wszystkie interfejsy API AOSP opisane w tabeli poniżej.

API Surface Area Interfejsy API aplikacji RCS Interfejsy API IMS dostawcy Opis
Udostępnianie RCS ProvisioningManager ImsConfigImplBase Umożliwia producentowi OEM lub operatorowi udostępnienie aplikacji do aktualizowania stanu udostępniania RCS, jeśli operator korzysta z własnego mechanizmu uprawnień operatora. Usługa ImsService musi też obsługiwać standardowy serwer automatycznej konfiguracji (ACS) do udostępniania usług operatorom, którzy nie używają mechanizmu własności.
Przekazywanie wiadomości SIP SipDelegateManager SipTransportImplBase Umożliwia aplikacji RCS najpierw powiązanie określonych tagów funkcji RCS z urządzeniem ImsService, a następnie wysyłanie i odbieranie wiadomości SIP oraz aktualizacji rejestracji IMS powiązanych z tymi tagami funkcji RCS.
Powiadomienia o dedykowanym nośniku ConnectivityManager DataCallResponse Zezwala aplikacji na nasłuchiwanie powiadomień QoS na gnieździe powiązanym z określonym portem lokalnym.
Uwierzytelnianie GBA bootstrapAuthenticationRequest GbaService Umożliwia aplikacji RCS uwierzytelnianie w sieci i dostęp do kluczy używanych w funkcjach RCS, takich jak przesyłanie plików.
Wymiana informacji o możliwościach użytkownika RCS ImsRcsManager RcsCapabilityExchangeImplBase Zapewnia AOSP możliwość wysyłania funkcji MMTEL i RCS do usługi ImsService dostawcy, aby można je było opublikować w sieci jako jedną encję na potrzeby wymiany funkcji użytkownika RCS. Umożliwia też innym aplikacjom zainteresowanym funkcjami RCS co najmniej 1 kontaktu wysyłanie do sieci zapytań o funkcje RCS tych kontaktów.

Bezpieczeństwo i uprawnienia

W Androidzie 12 wprowadzono te uprawnienia, aby zapewnić bezpieczny dostęp do sieci operatora i danych użytkownika:

Uprawnienie android.permission.PERFORM_IMS_SINGLE_REGISTRATION musi być zdefiniowane przez aplikację do obsługi wiadomości z funkcjami RCS. Aby to uprawnienie zostało przyznane, muszą być spełnione te warunki:

  • Aplikacja musi być zainstalowana jako aplikacja z uprawnieniami, co oznacza, że jest wstępnie zainstalowana na urządzeniu i ma dostęp do uprawnień specjalnych.
  • Aplikacja musi być ustawiona jako domyślna aplikacja do SMS-ów za pomocą funkcji RoleManager

Jeśli oba te warunki nie są spełnione, aplikacja nie otrzyma dostępu do uprawnienia android.permission.PERFORM_IMS_SINGLE_REGISTRATION. Oznacza to, że aplikacje innych firm nie mogą uzyskiwać dostępu do interfejsów API pojedynczej rejestracji RCS, ponieważ wymagają one certyfikacji operatora na urządzeniu.

Uprawnienie android.permission.ACCESS_RCS_USER_CAPABILITY_EXCHANGE przyznane aplikacji, która ma też uprawnienie READ_CONTACTS, umożliwia jej żądanie informacji o możliwościach RCS numerów telefonów za pomocą RcsUceAdapter. Aby można było przyznać to uprawnienie, muszą być spełnione te warunki:

  • Aplikacja musi być zainstalowana jako aplikacja z uprawnieniami, co oznacza, że jest preinstalowana na urządzeniu i ma dostęp do uprawnień specjalnych.
  • Aplikacja musi mieć jedną z tych ról:RoleManager

    • Domyślna aplikacja do obsługi wiadomości: ustawiana przez użytkownika.
    • Domyślna aplikacja telefoniczna: ustawiana przez użytkownika.
    • Domyślna aplikacja do obsługi kontaktów: rola wprowadzona w Androidzie 12, która umożliwia producentowi OEM zdefiniowanie nazwy pakietu za pomocą wartości nakładki urządzenia config_systemContacts, która musi odpowiadać aplikacji do obsługi kontaktów na urządzeniu. Ta aplikacja otrzymuje następnie rolę kontaktów.

Aby uzyskać dostęp do nazwy APN IMS za pomocą ConnectivityManager w celu skonfigurowania ruchu danych i zarządzania nim, aplikacje muszą też poprosić o uprawnienie android.permission.CONNECTIVITY_USE_RESTRICTED_NETWORKS.

Przykłady i źródło

Android udostępnia w AOSP aplikację, która implementuje testową aplikację do obsługi wiadomości z podstawową obsługą wiadomości RCS na potrzeby testowania i programowania. Aplikację znajdziesz pod adresem testapps/TestRcsApp. Po zainstalowaniu aplikacji na urządzeniu można ją ustawić jako domyślną aplikację do obsługi wiadomości użytkownika. Będzie ona mieć uprawnienia wymagane do uzyskiwania dostępu do interfejsów API pojedynczej rejestracji IMS.

Android udostępnia też przykładową implementację ImsService dla RCS. Kod źródłowy znajduje się w lokalizacji /testapps/ImsTestService.

Implementacja

Więcej informacji o wdrażaniu znajdziesz w artykule IMS Single Registration in Android (w języku angielskim).

Walidacja

Aby sprawdzić, czy implementacja pojedynczej rejestracji IMS jest prawidłowa:

  • Upewnij się, że zestaw testów CTS CtsTelephonyTestCases został zaliczony.
  • Zainstaluj i uruchom aplikację TestRcsApp, aby podczas integracji uruchamiać podstawowe elementy testowania pojedynczej rejestracji.
  • Przejść certyfikację operatora w zakresie elementów testowania pojedynczej rejestracji IMS.