Pojedyncza rejestracja IMS

Android 12 obsługuje model pojedynczej rejestracji w celu udostępniania funkcji MMTEL i RCS. Ten model umożliwia zarządzanie wszystkimi funkcjami IMS na urządzeniach za pomocą jednej rejestracji IMS udostępnianej przez usługę ImsService urządzenia oraz 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 za pomocą architektury z zestawem interfejsów API, które umożliwiają stosowi usług telefonicznych AOSP zarządzanie funkcjami MMTEL udostępnianymi przez usługę ImsService oraz funkcjami RCS dostępnymi w wybranej przez użytkownika aplikacji do obsługi wiadomości RCS. Aby obsługiwać IMS, producenci urządzeń i dostawcy SoC muszą wdrożyć te interfejsy API w celu włączenia funkcji RCS w wybranej przez użytkownika aplikacji do obsługi wiadomości RCS.

Rysunek 1 przedstawia pakiet IMS urządzenia w przypadku modelu pojedynczej rejestracji IMS. Wszystkie aplikacje IMS używają domyślnej usługi ImsService na potrzeby MMTEL i RCS w ramach pojedynczej rejestracji IMS. Obejmuje to: provisioning, przekierowywanie wiadomości SIP i wymiana możliwości użytkowników RCS.

Architektura trybu pojedynczej rejestracji

Rysunek 1. Architektura modelu pojedynczej rejestracji

Android 11 i starsze wersje obsługują tylko model podwójnej rejestracji w celu udostępniania funkcji MMTEL i RCS. MMTEL jest udostępniana przez usługę ImsService, a funkcje RCS są implementowane na poziomie wyższym i niezależnie zarządzają własnym stosem IMS oraz połączeniem z siecią operatora.

Rysunek 2 przedstawia architekturę modelu podwójnej rejestracji. W tym modelu każda aplikacja odpowiada za nawiązywanie połączenia z siecią operatora i rejestrację IMS w celu korzystania z funkcji MMTEL i RCS. Usługa ImsService na urządzeniu 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 rejestracji pojedynczego urządzenia IMS

Urządzenia, które działają u operatorów wymagających pojedynczej rejestracji IMS, muszą obsługiwać interfejsy API pojedynczej rejestracji IMS i definiować funkcję Androida PackageManager#FEATURE_TELEPHONY_IMS_SINGLE_REGISTRATION. Rysunek 3 przedstawia interfejsy API, które obsługują pojedynczą rejestrację IMS.

Interfejs API obsługujący pojedynczą rejestrację IMS

Rysunek 3. Interfejsy API wysokiego poziomu, które obsługują pojedynczą rejestrację IMS

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

Powierzchnia interfejsu API Interfejsy API aplikacji RCS Interfejsy IMS dostawców Opis
Wdrażanie RCS ProvisioningManager ImsConfigImplBase Umożliwia OEM-owi lub operatorowi udostępnienie aplikacji, która zaktualizuje stan obsługi RCS, jeśli operator korzysta z własnego mechanizmu uprawnień. Usługa ImsService musi też obsługiwać standardowy serwer konfiguracji AutoConfigurationServer (ACS) na potrzeby obsługi administracyjnej operatorów, którzy nie używają zastrzeżonego mechanizmu.
Przekazywanie wiadomości SIP SipDelegateManager SipTransportImplBase Zezwala aplikacji RCS na pierwsze powiązanie określonych tagów funkcji RCS z urządzeniem ImsService, a następnie na wysyłanie i odbieranie wiadomości SIP oraz aktualizacji rejestracji w IMS powiązanych z tymi tagami funkcji RCS.
Powiadomienia dotyczące dedykowanych nośników ConnectivityManager DataCallResponse Zezwala aplikacji na nasłuchiwanie powiadomień QoS przez gniazdo powiązane z określonym portem lokalnym.
Uwierzytelnianie GBA bootstrapAuthenticationRequest GbaService Zezwala aplikacji RCS na uwierzytelnianie przy użyciu sieci i kluczy dostępu używanych na potrzeby funkcji RCS, takich jak przesyłanie plików.
Wymiana danych o użytkownikach RCS ImsRcsManager RcsCapabilityExchangeImplBase Umożliwia AOSP wysyłanie funkcji MMTEL i RCS do usługi ImsService dostawcy, aby można je było opublikować w ramach jednego elementu w sieci w celu wymiany informacji o możliwościach użytkownika RCS. Umożliwia też innym aplikacjom zainteresowanym możliwościami RCS co najmniej 1 kontaktem wysyłanie do sieci zapytań o funkcje RCS kontaktów.

Zabezpieczenia i uprawnienia

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

Aplikacja do obsługi wiadomości z funkcjami RCS musi zdefiniować uprawnienie android.permission.PERFORM_IMS_SINGLE_REGISTRATION. Aby to uprawnienie zostało przyznane, muszą zostać spełnione te warunki:

  • Aplikacja musi być zainstalowana jako aplikacja uprzywilejowana, co oznacza, że jest wstępnie zainstalowana na urządzeniu i ma dostęp do uprawnień uprzywilejowanych.
  • Aplikacja musi być ustawiona jako domyślna aplikacja do obsługi SMS-ów użytkownika za pomocą RoleManager

Jeśli którykolwiek z tych warunków nie jest spełniony, aplikacji odmawia się 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 RCS do rejestracji pojedynczych użytkowników, ponieważ wymagają one certyfikatu operatora na urządzeniu.

Uprawnienia android.permission.ACCESS_RCS_USER_CAPABILITY_EXCHANGE przyznane aplikacji, która ma też uprawnienie READ_CONTACT, umożliwia aplikacji używanie funkcji RCS w numerach telefonów za pomocą RcsUceAdapter. Aby można było uzyskać to uprawnienie, muszą być spełnione te warunki:

  • Aplikacja musi być zainstalowana jako aplikacja uprzywilejowana, co oznacza, że jest wstępnie zainstalowana na urządzeniu i ma dostęp do uprawnień uprzywilejowanych.
  • Aplikacja musi być zdefiniowana jako jedna z tych RoleManagerról:

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

Aby uzyskać dostęp do APN IMS za pomocą ConnectivityManager w celu konfigurowania i zarządzania ruchem danych, aplikacje muszą też poprosić o uprawnienia android.permission.CONNECTIVITY_USE_RESTRICTED_NETWORKS.

Przykłady i źródło

Android udostępnia w AOSP aplikację testową do obsługi wiadomości z podstawową obsługą wiadomości RCS na potrzeby testowania i rozwoju. Aplikację znajdziesz na stronie testapps/TestRcsApp. Po zainstalowaniu aplikacji na urządzeniu można ją ustawić jako domyślną aplikację do obsługi wiadomości użytkownika. Aplikacja będzie miała uprawnienia wymagane do uzyskania dostępu do interfejsów API rejestracji pojedynczej IMS.

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

Implementacja

Szczegółowe informacje o wdrożeniu znajdziesz w artykule na temat pojedynczej rejestracji komunikatora na urządzeniach z Androidem.

Weryfikacja

Aby sprawdzić implementację pojedynczej rejestracji IMS, wykonaj te czynności:

  • Upewnij się, że zestaw testów CTS CtsTelephonyTestCases został zaliczony.
  • Zainstaluj i uruchom aplikację TestRcsApp, aby przeprowadzić podstawowe testy pojedynczej rejestracji podczas integracji.
  • Przejdź certyfikację operatora w przypadku testowania pojedynczej rejestracji IMS.