Upoważnienie do korzystania z usługi IMS

Od Androida 12 Android obsługuje konfigurację uprawnień do usług TS.43, czyli specyfikację GSMA definiującą krok weryfikacji uprawnień do aktywacji usług, w tym Voice-over-Wi-Fi (VoWiFi), Voice-over-LTE (VoLTE), SMS over IP (SMSoIP), aktywacji usług na urządzeniu (ODSA) na urządzeniach towarzyszących eSIM (powiązanych z urządzeniem wysyłającym żądanie) oraz informacji o planie danych.

Aby obsługiwać tę specyfikację, Android udostępnia funkcję uprawnień do usług IMS, która umożliwia dostawcy usług informowanie urządzeń mobilnych o stanie usług sieciowych IMS (IP Multimedia Subsystem). Ta funkcja uprawnień umożliwia urządzeniu wysyłanie zapytań do serwera uprawnień operatora zgodnie ze specyfikacją GSMA TS.43 dotyczącą stanu uprawnień IMS za pomocą uwierzytelniania EAP-AKA bez konieczności ręcznego wpisywania danych logowania przez użytkowników.

Operatorzy z serwerami uprawnień IMS mogą używać funkcji uprawnień usług IMS do udostępniania usług. Wdrożenie tej funkcji przynosi następujące korzyści:

  • Obniża koszty testowania i certyfikacji dla operatorów, ponieważ ta funkcja uprawnień może być używana w przypadku wielu produktów i OEM-ów.
  • Zmniejsza koszty rozwoju dla producentów urządzeń dzięki standardowej aplikacji na Androida.
  • Umożliwia producentom urządzeń i operatorom tworzenie kodu dla tej funkcji, ponieważ jest ona dostępna jako oprogramowanie open source.
  • Zapewnia zarządzanie adresem alarmowym w przypadku operatorów w Ameryce Północnej.

Partnerzy usług mobilnych Google:

W przypadku operatorów, którzy nie obsługują specyfikacji TS.43, partnerzy GMS mogą używać aplikacji do aktywacji WFC, która jest dostępna na urządzeniach GMS jako aplikacja niespakowana, do obsługi usług sieci IMS.

Jeśli masz prośby o wprowadzenie funkcji związanych z uprawnieniami do korzystania z usługi IMS, skontaktuj się z przedstawicielem Google lub wyślij e-maila na adres gms-connectivity-apps@google.com.

Architektura

Na rysunku poniżej przedstawiono architekturę i działanie funkcji uprawnień do usługi IMS.

Funkcja uprawnień TS.43

Rysunek 1. Architektura funkcji uprawnień TS.43

Jak widać na rysunku 1, architektura funkcji uprawnień do usługi IMS obejmuje te komponenty:

  • service_entitlement Biblioteka statyczna interfejsu API usługi TS.43: Ta biblioteka implementuje specyfikację TS.43, współpracuje z serwerem uprawnień operatora i wyświetla interfejsy API dla aplikacji w przypadku każdego zastosowania TS.43.
  • ImsServiceEntitlementaplikacja kliencka: ta aplikacja korzysta z interfejsu TS.43 Service API. Aplikacja implementuje elementy UI, w tym widoki internetowe do renderowania portalu usług operatora, aby użytkownicy mogli aktywować usługi. Interakcje z innymi komponentami Androida umożliwiają zarządzanie wrażeniami użytkownika od początku do końca.

    Więcej informacji o konfigurowaniu Androida do współpracy z serwerem uprawnień dostawcy opartym na TS.43 znajdziesz w aplikacji ImsServiceEntitlement.

Linie z numerami na rysunku 1. pokazują, jak komponenty funkcji uprawnień usługi IMS komunikują się ze sobą. Poniżej znajdziesz opis poszczególnych kroków:

(1) aplikacja klienta wywołuje interfejs API usługi TS.43, aby zainicjować żądanie uprawnień do usługi.

(2) Interfejs API usługi TS.43 wysyła żądanie HTTP do serwera uprawnień operatora, aby zainicjować wyzwanie EAP-AKA.

(3) Interfejs API usługi TS.43 wywołuje interfejsy API telefonii (np. getIccAuthentication), aby ukończyć wymianę zapytań i odpowiedzi EAP-AKA.

(4) Usługa TS.43 pobiera dane dotyczące uprawnień do usługi lub konfiguracji od serwera uprawnień operatora po zweryfikowaniu odpowiedzi EAP-AKA.

(5) Usługa TS.43 zwraca uprawnienia do usługi lub dane konfiguracji do aplikacji klienta.

(6) Aplikacja klienta przetwarza dane i opcjonalnie wyświetla użytkownikowi portal usługowy operatora, aby umożliwić mu dokończenie aktywacji usługi.

Integracja

Ta sekcja opisuje proces integracji biblioteki service_entitlement z aplikacją ImsServiceEntitlement.

Biblioteka service_entitlement i aplikacja ImsServiceEntitlement nie są zależne od interfejsu API Androida 12, więc można je przenieść na starsze platformy Androida.

service_entitlement library

Biblioteka service_entitlement jest połączona statycznie z biblioteką ImsServiceEntitlement app, więc nie trzeba wykonywać żadnych dodatkowych czynności, aby zintegrować ją z aplikacją ImsServiceEntitlement.

Bibliotekę service_entitlement można zintegrować z własnymi aplikacjami na potrzeby takich zastosowań TS.43, jak plan danych i ODSA. Bibliotekę można też zintegrować z aplikacją w przypadku innych niż TS.43 przypadków użycia uprawnień na podstawie protokołu EAP-AKA.

Poniżej opisujemy interfejsy API, których należy używać w takich przypadkach:

  • Aplikacja TS.43 korzystająca z protokołu HTTP TS.43 zaimplementowanego w bibliotece: Używaj interfejsów API w klasie ServiceEntitlement
  • Aplikacja inna niż TS.43 korzystająca z protokołu EAP-AKA zaimplementowanego w bibliotece: użyj interfejsów API udostępnionych w klasie EapAkaHelper.

Partnerzy GMS: poniżej podano dostawców serwerów uprawnień TS.43, z którymi biblioteka service_entitlement została przetestowana w Androidzie 12.

  • Ericsson
  • HPE
  • Nokia

Aplikacja ImsServiceEntitlement

Domyślnie Android zawiera aplikację ImsServiceEntitlement zainstalowaną w partycji produktu jako aplikację uprzywilejowaną. Aby skonfigurować aplikację, użyj tych kluczy CarrierConfig:

Klucz Wartość
KEY_ENTITLEMENT_SERVER_URL_STRING Adres URL serwera uprawnień operatora. Musisz uwzględnić prefiks https://.
KEY_FCM_SENDER_ID_STRING Identyfikator nadawcy FCM operatora.

Nie ustawiaj tej wartości, jeśli przewoźnik nie wymaga funkcji FCM.
KEY_SHOW_VOWIFI_WEBVIEW_BOOL Ustaw na true, jeśli operator wymaga od użytkowników interfejsu portalu internetowego do rejestracji w usłudze VoWiFi. Może to być na przykład wyrażenie zgody na warunki korzystania z usługi lub podanie adresu w nagłych wypadkach.

Zazwyczaj jest to wymagane przez przewoźników w Ameryce Północnej.
KEY_WFC_EMERGENCY_ADDRESS_CARRIER_APP_STRING
Ustaw na com.android.imsserviceentitlement/.WfcActivationActivity, jeśli KEY_SHOW_VOWIFI_WEBVIEW_BOOL ma wartość true.
KEY_IMS_PROVISIONING_BOOL Ustaw na true, jeśli operator wymaga obsługi sieci dla usług IMS (VoLTE/VoWiFi/SMSoIP) w tle.

Wymaga tego niektórych europejskich przewoźników.
KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL Ustaw na true, jeśli KEY_IMS_PROVISIONING_BOOL jest true.

Ruch HTTP do serwera uprawnień i portalu internetowego operatora jest przesyłany przez domyślną sieć, np. domyślną mobilną transmisję danych lub Wi-Fi.

Partnerzy GMS: aplikacja uprawnień TS.43 w Androidzie 12 obsługuje tych operatorów zgodnie ze specyfikacją TS.43 w wersji 5.0:

  • USA: CSpire, US Cellular, Cellcom
  • Francja: Orange

Dodatkowy interfejs systemu do obsługi IMS

W tej sekcji opisano, jak OEM-y mogą obsługiwać dodatkowe elementy interfejsu użytkownika związane z udostępnianiem usługi IMS (np. wyświetlanie powiadomienia podczas udostępniania VoWiFi).

Aplikacja ImsServiceEntitlement ustawia stan obsługi VoWiFi na platformie za pomocą interfejsu API systemu ProvisioningManager.setProvisioningIntValue(KEY_VOICE_OVER_WIFI_ENABLED_OVERRIDE, value). Ten interfejs API jest też używany do obsługi VoLTE (z użyciem KEY_VOLTE_PROVISIONING_STATUS) i SMSoIP (z użyciem KEY_SMS_OVER_IP_ENABLED).

Interfejs użytkownika może odczytać stan obsługi za pomocą funkcji getProvisioningIntValue lub zarejestrować wywołanie zwrotne, aby monitorować zmianę stanu obsługi za pomocą funkcji registerProvisioningChangedCallback.

Zastępowanie konfiguracji na potrzeby testowania

Aby tymczasowo zmienić zachowanie aplikacji ImsServiceEntitlement na potrzeby testów, wykonaj podane niżej procedury. Szczegółowe informacje o zastępowaniu konfiguracji operatora znajdziesz w artykule Zastępowanie konfiguracji operatora.

Pomiń proces rejestracji VoWiFi

Aby pominąć proces rejestracji VoWiFi, co umożliwia bezpośrednie włączenie VoWiFi, zastąpić konfigurację operatora KEY_WFC_EMERGENCY_ADDRESS_CARRIER_APP_STRINGi ustawić jego wartość na pusty ciąg znaków.

Pomijanie obsługi administracyjnej IMS

Aby pominąć konfigurowanie IMS, udostępnić usługi IMS i zezwolić użytkownikom na włączanie tych usług bez konfigurowania sieci, zastąpić konfigurację operatora KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL i ustawić jego wartość na false.

Zmień adres URL serwera uprawnień

Aby zmienić adres URL serwera uprawnień, zastąp konfigurację operatora KEY_ENTITLEMENT_SERVER_URL_STRING i ustaw jego wartość na oczekiwany ciąg znaków adresu URL. Musisz dodać prefiks https://.

Zastępowanie konfiguracji operatora

Od Androida 11 polecenia zastępowania konfiguracji operatora są wbudowane i dostępne z uprawnieniami roota.

Poniższe polecenie pokazuje, jak zastąpić klucz konfiguracji operatora carrier_volte_provisioning_required_bool i ustawić jego wartość na false. Aby zastąpić większą liczbę konfiguracji, możesz uruchomić to polecenie kilka razy.

adb root
adb shell cmd phone cc set-value -p carrier_volte_provisioning_required_bool false

Aby anulować wszystkie zastąpienia, użyj tego polecenia:

adb shell cmd phone cc clear-values

Aby uzyskać więcej informacji, uruchom to polecenie:

adb shell cmd phone cc