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.
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