Pojedyncza rejestracja IMS

Android 12 wprowadza obsługę jednego modelu rejestracji w celu zapewnienia funkcji MMTEL i RCS. Model ten umożliwia urządzeniom zarządzanie wszystkimi funkcjami IMS poprzez pojedynczą rejestrację IMS dostarczoną przez ImsService urządzenia oraz spełnienie wymagań wprowadzanych przez niektórych operatorów telekomunikacyjnych. W porównaniu z modelem podwójnej rejestracji, w którym wiele rejestracji IMS jest zarządzanych na jednym urządzeniu, 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 telefonii AOSP zarządzanie zarówno funkcjami MMTEL zapewnianymi przez ImsService , jak i funkcjami RCS zapewnianymi 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ą zaimplementować 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 podczas korzystania z modelu pojedynczej rejestracji IMS. Wszystkie aplikacje IMS korzystają z domyślnej usługi ImsService dla funkcji MMTEL i RCS w ramach pojedynczej rejestracji IMS. Obejmuje to udostępnianie, przekazywanie komunikatów SIP i wymianę możliwości użytkownika RCS.

Architektura trybu pojedynczej rejestracji

Rysunek 1. Architektura modelu pojedynczej rejestracji

Android 11 i starsze obsługują tylko model podwójnej rejestracji w celu zapewnienia funkcji MMTEL i RCS, gdzie MMTEL jest zapewniany przez ImsService, a funkcje RCS są zaimplementowane 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 jest odpowiedzialna za połączenie z siecią operatora i ustanowienie rejestracji IMS dla funkcji MMTEL i RCS. 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 trybu podwójnej rejestracji

Rysunek 2. Architektura modelu podwójnej rejestracji

Interfejsy API pojedynczej rejestracji IMS

Urządzenia należące do operatorów wymagających pojedynczej rejestracji IMS muszą obsługiwać interfejsy API pojedynczej rejestracji IMS i definiować funkcję Android 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, które obsługują pojedynczą rejestrację IMS w ramach stosu telefonii AOSP, muszą obsługiwać wszystkie interfejsy API AOSP opisane w poniższej tabeli.

Powierzchnia API API aplikacji RCS Interfejsy API IMS dostawcy Opis
Udostępnianie RCS Menedżer ds. Zaopatrzenia ImsConfigImplBase Umożliwia producentowi OEM lub operatorowi udostępnienie aplikacji w celu zaktualizowania stanu udostępniania RCS, jeśli operator korzysta z zastrzeżonego mechanizmu uprawnień przewoźnika. Usługa ImsService musi również obsługiwać standardowy serwer AutoConfigurationServer (ACS) w celu obsługi administracyjnej przewoźników, którzy nie używają zastrzeżonego mechanizmu.
Przekazywanie wiadomości SIP Menedżer delegatów Sip SipTransportImplBase Umożliwia aplikacji RCS najpierw powiązanie określonych znaczników funkcji RCS z ImsService urządzenia, a następnie wysyłanie i odbieranie wiadomości SIP i aktualizacji rejestracji IMS powiązanych z tymi znacznikami funkcji RCS.
Dedykowane powiadomienia na okaziciela Menedżer połączeń DataCallOdpowiedź Pozwala aplikacji na nasłuchiwanie powiadomień QoS w gnieździe skojarzonym z określonym portem lokalnym.
Uwierzytelnianie GBA bootstrapAuthenticationRequest Usługa Gba Umożliwia aplikacji RCS uwierzytelnianie za pomocą sieci i kluczy dostępu używanych do funkcji RCS, takich jak przesyłanie plików.
Wymiana możliwości użytkownika RCS Menedżer ImsRcs RcsCapabilityExchangeImplBase Zapewnia AOSP możliwość wysyłania swoich funkcji MMTEL i RCS do dostawcy ImsService, aby mogły one być publikowane w ramach jednej jednostki w sieci w celu wymiany możliwości użytkownika RCS. Umożliwia również innym aplikacjom zainteresowanym możliwościami RCS jednego lub więcej kontaktów wysyłanie zapytań do sieci w celu uzyskania możliwości RCS kontaktów.

Bezpieczeństwo i uprawnienia

Android 12 wprowadza następujące 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 udzielone, muszą być spełnione następujące warunki:

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

Jeśli oba te warunki nie są spełnione, aplikacja nie ma 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 również uprawnienie READ_CONTACTS, umożliwia aplikacji żądanie funkcji RCS numerów telefonów przy użyciu RcsUceAdapter . Aby to uprawnienie zostało udzielone, muszą być spełnione następujące warunki:

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

    • Domyślna aplikacja do obsługi wiadomości: ustawiana przez użytkownika.
    • Domyślna aplikacja dialera: ustawiana przez użytkownika.
    • Domyślna aplikacja 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 urządzenia. 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ć uprawnienia android.permission.CONNECTIVITY_USE_RESTRICTED_NETWORKS .

Przykłady i źródło

Android udostępnia aplikację w AOSP, która implementuje aplikację do testowania wiadomości z podstawową obsługą wiadomości RCS do celów testowych i programistycznych. Możesz znaleźć aplikację w testapps/TestRcsApp . Gdy aplikacja jest zainstalowana na urządzeniu, może być ustawiona jako domyślna aplikacja do obsługi wiadomości użytkownika i będzie mieć uprawnienia wymagane do uzyskania dostępu do interfejsów API pojedynczej rejestracji IMS.

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

Realizacja

Aby uzyskać więcej informacji o implementacji, pobierz IMS Single Registration w systemie Android .

Walidacja

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

  • Upewnij się, że zestaw testów CtsTelephonyTestCases CTS przeszedł pomyślnie.
  • Zainstaluj i uruchom TestRcsApp , aby uruchomić podstawowe przypadki testowe pojedynczej rejestracji podczas integracji.
  • Zdaj certyfikację przewoźnika dla przypadków testowych pojedynczej rejestracji IMS.