Uprawnienie do usługi IMS

Począwszy od wersji Android 12, Android obsługuje TS.43 Service Entitlement Configuration – specyfikację GSMA definiującą etap weryfikacji uprawnień w celu aktywacji usług, w tym Voice-over-Wi-Fi (VoWiFi), Voice-over-LTE (VoLTE). , SMS-y przez IP (SMSoIP), aktywacja usługi na urządzeniu (ODSA) urządzeń towarzyszących eSIM (powiązanych z urządzeniem wysyłającym żądanie) oraz informacje o planie transmisji danych.

Aby obsługiwać tę specyfikację, system 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 IP Multimedia Subsystem (IMS). Ta funkcja uprawnień umożliwia urządzeniu wysyłanie zapytań do serwera uprawnień operatora zgodnie ze specyfikacją GSMA TS.43 o stan uprawnień IMS przy użyciu uwierzytelniania EAP-AKA bez konieczności ręcznego wprowadzania jakichkolwiek poświadczeń przez użytkowników.

Przewoźnicy posiadający serwery uprawnień IMS mogą korzystać z funkcji uprawnień do usług IMS w celu świadczenia usług. Zastosowanie tej funkcji zapewnia następujące korzyści:

  • Zmniejsza koszty testowania i certyfikacji dla przewoźników, ponieważ z tej funkcji uprawnienia można korzystać w przypadku wielu produktów i producentów OEM.
  • Zmniejsza koszty programowania dla producentów urządzeń dzięki standardowej aplikacji na Androida.
  • Umożliwia producentom urządzeń i operatorom udostępnianie kodu tej funkcji, ponieważ jest to funkcja typu open source.
  • Zapewnia zarządzanie adresami alarmowymi dla przewoźników z Ameryki Północnej.

Architektura

Poniższy rysunek opisuje architekturę i zachowanie funkcji uprawnień do usług IMS.

Funkcja uprawnień TS.43

Rysunek 1. Architektura funkcji uprawnień TS.43

Jak pokazano na rysunku 1, architektura funkcji uprawnień do usług IMS obejmuje następujące komponenty:

  • service_entitlement Biblioteka statyczna interfejsu API usługi TS.43 : ta biblioteka implementuje specyfikację TS.43, współdziała z serwerem uprawnień operatora i udostępnia interfejsy API dostępne dla aplikacji dla każdego przypadku użycia TS.43.
  • Aplikacja kliencka ImsServiceEntitlement : ta aplikacja korzysta z interfejsu API usługi TS.43. Aplikacja zawiera elementy interfejsu użytkownika, w tym widoki internetowe, umożliwiające renderowanie portalu usług operatora, aby użytkownicy mogli aktywować usługi, a także wchodzi w interakcję z innymi komponentami systemu Android w celu kompleksowego zarządzania wygodą użytkownika.

    Aby uzyskać więcej informacji na temat konfigurowania systemu Android do współpracy z serwerem uprawnień operatora opartym na standardzie TS.43, zobacz aplikację ImsServiceEntitlement .

Numerowane linie na rysunku 1 pokazują, w jaki sposób komponenty funkcji uprawnień do usług IMS komunikują się ze sobą. Poniżej opisano każdy z etapów oznaczonych etykietą:

(1) Aplikacja kliencka wywołuje interfejs API usługi TS.43 w celu zainicjowania żądania uprawnienia do usługi.

(2) Interfejs API usługi TS.43 wysyła żądanie HTTP do serwera uprawnień operatora w celu zainicjowania wyzwania EAP-AKA.

(3) Interfejs API usługi TS.43 wywołuje interfejsy API telefonii (na przykład getIccAuthentication ) w celu zakończenia odpowiedzi na wyzwanie EAP-AKA.

(4) Usługa TS.43 otrzymuje dane dotyczące uprawnień do usług lub konfiguracji z serwera uprawnień przewoźnika po zweryfikowaniu odpowiedzi EAP-AKA.

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

(6) Aplikacja kliencka obsługuje dane i opcjonalnie udostępnia użytkownikowi portal usług przewoźnika w celu zakończenia aktywacji usługi.

Integracja

W tej sekcji opisano proces integracji biblioteki service_entitlement i aplikacji ImsServiceEntitlement .

Ponieważ nie ma zależności od interfejsu API systemu Android 12, bibliotekę service_entitlement i aplikację ImsServiceEntitlement można przenieść z powrotem na starsze platformy Android.

biblioteka service_entitlement

Ponieważ biblioteka service_entitlement jest statycznie połączona z ImsServiceEntitlement app , nie są wymagane żadne dodatkowe kroki w celu zintegrowania biblioteki z aplikacją ImsServiceEntitlement .

Bibliotekę service_entitlement można zintegrować z własnymi aplikacjami do zastosowań TS.43, takich jak plan transmisji danych i ODSA. Bibliotekę można również zintegrować z aplikacją w przypadkach użycia uprawnień innych niż TS.43 w oparciu o protokół EAP-AKA.

Poniżej opisano interfejsy API, które można wykorzystać w takich przypadkach użycia:

  • Aplikacja TS.43 korzystająca z zaimplementowanego w bibliotece protokołu HTTP TS.43: Skorzystaj z 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

Aplikacja ImsServiceEntitlement

Domyślnie system Android zawiera aplikację ImsServiceEntitlement zainstalowaną na partycji produktu jako aplikację uprzywilejowaną. Aby skonfigurować aplikację, użyj następujących kluczy CarrierConfig:

Klucz Wartość
KEY_ENTITLEMENT_SERVER_URL_STRING Adres URL serwera uprawnień operatora. Należy uwzględnić prefiks https:// .
KEY_FCM_SENDER_ID_STRING Identyfikator nadawcy FCM przewoźnika.

Nie ustawiaj tej wartości, jeśli operator nie wymaga FCM.
KEY_SHOW_VOWIFI_WEBVIEW_BOOL Ustaw na true jeśli operator wymaga interfejsu portalu internetowego, aby użytkownicy mogli zarejestrować się w usłudze VoWiFi. Na przykład wyrażenie zgody na regulamin lub wprowadzenie adresu alarmowego.

Jest to zazwyczaj 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 true .
KEY_IMS_PROVISIONING_BOOL Ustaw na true , jeśli operator wymaga udostępniania usług IMS (VoLTE/VoWiFi/SMSoIP) w tle.

Jest to wymagane przez niektórych europejskich przewoźników.
KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL Ustaw na true , jeśli KEY_IMS_PROVISIONING_BOOL ma true .

Ruch HTTP do serwera uprawnień i portalu internetowego operatora przechodzi przez sieć domyślną, na przykład domyślną komórkową transmisję danych lub Wi-Fi.

Partnerzy GMS: Następujący operatorzy są obsługiwani przez aplikację uprawniającą TS.43 w systemie Android 12, zgodnie ze specyfikacją TS.43 v5.0:

  • USA: CSpire, US Cellular, Cellcom
  • Francja: Pomarańczowy

Dodatkowy interfejs systemowy do udostępniania IMS

W tej sekcji opisano, w jaki sposób producenci OEM mogą obsługiwać dodatkowe elementy interfejsu użytkownika systemu związane ze świadczeniem usług IMS (na przykład podczas wyświetlania powiadomienia o udostępnieniu VoWiFi).

Aplikacja ImsServiceEntitlement ustawia stan udostępniania VoWiFi na platformie za pomocą systemowego API ProvisioningManager.setProvisioningIntValue(KEY_VOICE_OVER_WIFI_ENABLED_OVERRIDE, value) . To API jest również używane dla VoLTE (z KEY_VOLTE_PROVISIONING_STATUS ) i SMSoIP (z KEY_SMS_OVER_IP_ENABLED ).

Systemowy interfejs użytkownika może następnie odczytać stan udostępniania za pomocą getProvisioningIntValue lub rejestrując wywołanie zwrotne w celu monitorowania zmiany stanu udostępniania za pośrednictwem registerProvisioningChangedCallback .

Zastępowanie konfiguracji do testowania

Skorzystaj z poniższych procedur, aby tymczasowo zmienić zachowanie aplikacji ImsServiceEntitlement do celów testowych. Aby uzyskać szczegółowe informacje na temat zastępowania konfiguracji przewoźników, zobacz Zastępowanie konfiguracji przewoźników .

Pomijanie procesu rejestracji VoWiFi

Aby pominąć proces rejestracji VoWiFi i umożliwić bezpośrednie włączenie VoWiFi, zastąp konfigurację operatora KEY_WFC_EMERGENCY_ADDRESS_CARRIER_APP_STRING i ustaw jej wartość na pusty ciąg znaków.

Pomijanie udostępniania IMS

Aby pominąć udostępnianie IMS, udostępniać usługi IMS i umożliwiać użytkownikom włączanie takich usług bez udostępniania sieci, zastąp konfigurację operatora KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL i ustaw jej wartość na false .

Zmiana adresu 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 adresu URL. Musisz podać prefiks https:// .

Zastępowanie konfiguracji przewoźnika

Począwszy od Androida 11, polecenia zastąpienia konfiguracji operatora są wbudowane i dostępne z uprawnieniami roota.

Poniższe polecenie stanowi przykład zastąpienia klucza konfiguracyjnego operatora carrier_volte_provisioning_required_bool i ustawienia jego wartości na false . Możesz uruchomić to polecenie wiele razy, aby zastąpić wiele konfiguracji.

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

Aby wyczyścić wszystkie nadpisania, użyj następującego polecenia:

adb shell cmd phone cc clear-values

Aby uzyskać więcej informacji, uruchom następujące polecenie:

adb shell cmd phone cc