Pojedyncza rejestracja IMS

W systemie Android 12 wprowadzono obsługę jednego modelu rejestracji w celu zapewnienia funkcji MMTEL i RCS. Model ten pozwala urządzeniom na zarządzanie wszystkimi funkcjami IMS poprzez pojedynczą rejestrację IMS zapewnianą przez ImsService urządzenia i spełnianie wymagań wprowadzanych 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 poprzez architekturę 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 udostępnianymi przez wybraną przez użytkownika aplikację do przesyłania wiadomości RCS. Aby obsługiwać pojedynczą rejestrację IMS, producenci urządzeń i dostawcy SoC muszą wdrożyć te interfejsy API, aby włączyć funkcje RCS w wybranej przez użytkownika aplikacji do przesyłania wiadomości RCS.

Rysunek 1 ilustruje stos IMS urządzenia przy zastosowaniu modelu pojedynczej rejestracji IMS. Wszystkie aplikacje IMS korzystają z domyślnych funkcji ImsService dla MMTEL i RCS urządzenia w ramach jednej rejestracji IMS. Obejmuje to udostępnianie, przekazywanie komunikatów SIP i wymianę 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 zapewniający funkcje MMTEL i RCS, gdzie MMTEL jest zapewniany przez ImsService urządzenia, a funkcje RCS są implementowane na górze i niezależnie zarządzają własnym stosem IMS i połączeniem z siecią operatora.

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

architektura podwójnego trybu rejestracji

Rysunek 2. Architektura modelu podwójnej rejestracji

Interfejsy API pojedynczej rejestracji IMS

Urządzenia dostępne 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 obsługujące pojedynczą rejestrację IMS.

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

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

Urządzenia z systemem Android obsługujące pojedynczą rejestrację IMS w ramach stosu telefonicznego AOSP muszą obsługiwać wszystkie interfejsy API AOSP opisane w poniższej tabeli.

Powierzchnia API Interfejsy API aplikacji RCS Interfejsy API IMS dostawcy Opis
Udostępnianie RCS Menedżer zaopatrzenia ImsConfigImplBase Umożliwia producentowi OEM lub operatorowi udostępnienie aplikacji umożliwiającej aktualizację stanu udostępniania RCS, jeśli przewoźnik korzysta z zastrzeżonego mechanizmu uprawnień operatora. ImsService musi także obsługiwać standardowy serwer AutoConfigurationServer (ACS) w celu udostępniania usług operatorom, którzy nie korzystają z zastrzeżonego mechanizmu.
Przekazywanie wiadomości SIP Menedżer SipDelegate SipTransportImplBase Umożliwia aplikacji RCS najpierw skojarzenie określonych znacznikó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 znacznikami funkcji RCS.
Dedykowane powiadomienia na okaziciela Menedżer połączeń Odpowiedź na połączenie danych Zezwala aplikacji na nasłuchiwanie powiadomień QoS w gnieździe powiązanym z określonym portem lokalnym.
Uwierzytelnianie GBA żądanie uwierzytelnienia bootstrap Usługa GBa Umożliwia aplikacji RCS uwierzytelnianie za pomocą kluczy sieciowych i dostępu używanych w funkcjach RCS, takich jak przesyłanie plików.
Wymiana możliwości użytkowników RCS Menedżer ImsRcs RcsCapabilityExchangeImplBase Zapewnia AOSP możliwość wysyłania swoich możliwości MMTEL i RCS do dostawcy ImsService, aby można je było opublikować w ramach jednego podmiotu w sieci w celu wymiany możliwości użytkowników RCS. Umożliwia także innym aplikacjom zainteresowanym możliwościami RCS jednego lub większej liczby kontaktów wysyłanie do sieci zapytań o możliwości RCS kontaktów.

Bezpieczeństwo i uprawnienia

W Androidzie 12 wprowadzono następujące uprawnienia, które mają zapewnić bezpieczny dostęp do sieci operatora i danych użytkownika:

Uprawnienie android.permission.PERFORM_IMS_SINGLE_REGISTRATION musi zostać zdefiniowane przez aplikację do przesyłania wiadomości z funkcjami RCS. Aby to zezwolenie zostało przyznane, muszą być spełnione następujące warunki:

  • Aplikacja musi być zainstalowana jako aplikacja uprzywilejowana, co oznacza, że ​​jest preinstalowana na urządzeniu i ma dostęp do uprzywilejowanych uprawnień
  • Aplikację należy ustawić jako domyślną rolę SMS użytkownika za pomocą RoleManager

Jeśli oba te warunki nie zostaną spełnione, aplikacji odmówi 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 pojedynczej rejestracji RCS, ponieważ wymagają one certyfikatu operatora na urządzeniu.

Uprawnienie android.permission.ACCESS_RCS_USER_CAPABILITY_EXCHANGE przyznane aplikacji, która ma również uprawnienie READ_CONTACTS, umożliwia aplikacji żądanie możliwości RCS numerów telefonów za pomocą RcsUceAdapter . Aby to zezwolenie zostało przyznane, muszą być spełnione następujące warunki:

  • Aplikacja musi być zainstalowana jako aplikacja uprzywilejowana, co oznacza, że ​​jest preinstalowana na urządzeniu i ma dostęp do uprzywilejowanych uprawnień.
  • Aplikację należy zdefiniować jako jedną z następujących ról RoleManager :

    • Domyślna aplikacja do przesyłania wiadomości: ustawiana przez użytkownika.
    • Domyślna aplikacja dialera: ustawiana przez użytkownika.
    • Domyślna aplikacja do kontaktów: rola wprowadzona w systemie Android 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 kontaktów na urządzeniu. Ta aplikacja otrzymuje następnie rolę kontaktów.

Aby uzyskać dostęp do IMS APN za pomocą ConnectivityManager w celu skonfigurowania ruchu danych i zarządzania nim, aplikacje muszą również zażądać pozwolenia android.permission.CONNECTIVITY_USE_RESTRICTED_NETWORKS .

Przykłady i źródło

Android udostępnia aplikację w AOSP, która implementuje testową aplikację do przesyłania wiadomości z podstawową obsługą wiadomości RCS do celów testowania i programowania. Aplikację można znaleźć pod testapps/TestRcsApp . Gdy aplikacja jest zainstalowana na urządzeniu, można ją ustawić jako domyślną aplikację do przesyłania wiadomości użytkownika i będzie ona posiadać uprawnienia wymagane do uzyskania dostępu do interfejsów API pojedynczej rejestracji IMS.

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

Realizacja

Aby uzyskać więcej informacji na temat wdrożenia, pobierz rejestrację pojedynczą IMS w systemie Android .

Walidacja

Aby zweryfikować wdrożenie pojedynczej rejestracji IMS, wykonaj następujące czynności:

  • Upewnij się, że zestaw testów CtsTelephonyTestCases CTS przeszedł pomyślnie.
  • Zainstaluj i uruchom aplikację TestRcsApp , aby podczas integracji uruchamiać podstawowe przypadki testowe z pojedynczą rejestracją.
  • Zdać certyfikację przewoźnika w przypadku testów pojedynczej rejestracji IMS.