IMS-Serviceberechtigung

Mit Sammlungen den Überblick behalten Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.

Ab Android 12 enthält Android Unterstützung für TS.43 Service Entitlement Configuration , eine GSMA-Spezifikation, die den Berechtigungsüberprüfungsschritt für die Aktivierung von Diensten definiert, einschließlich Voice-over-Wi-Fi (VoWiFi), Voice-over-LTE (VoLTE) , SMS over IP (SMSoIP), On-Device Service Activation (ODSA) von eSIM-Begleitgeräten (die dem anfragenden Gerät zugeordnet sind) und Datenplaninformationen.

Um diese Spezifikation zu unterstützen, stellt Android eine IMS-Dienstberechtigungsfunktion bereit, die es einem Dienstanbieter ermöglicht, Mobilgeräte über den Status von IP Multimedia Subsystem (IMS)-Netzwerkdiensten zu informieren. Diese Berechtigungsfunktion ermöglicht es dem Gerät, den Berechtigungsserver des Netzbetreibers gemäß Definition in der Spezifikation GSMA TS.43 nach dem IMS-Berechtigungsstatus unter Verwendung der EAP-AKA-Authentifizierung abzufragen, ohne dass Benutzer manuell irgendwelche Anmeldeinformationen eingeben müssen.

Netzbetreiber mit IMS-Berechtigungsservern können die IMS-Dienstberechtigungsfunktion für die Dienstbereitstellung verwenden. Die Übernahme der Funktion bietet die folgenden Vorteile:

  • Reduziert die Test- und Zertifizierungskosten für Spediteure, da diese Berechtigungsfunktion für mehrere Produkte und OEMs verwendet werden kann.
  • Reduziert den Entwicklungsaufwand für Gerätehersteller durch eine Standard-Android-App.
  • Ermöglicht Geräteherstellern und Netzbetreibern, Code für die Funktion beizusteuern, da die Funktion Open Source ist.
  • Bietet Notfall-Adressverwaltung für nordamerikanische Spediteure.

Die Architektur

Die folgende Abbildung beschreibt die Architektur und das Verhalten der IMS-Dienstberechtigungsfunktion.

TS.43-Berechtigungsfunktion

Abbildung 1. Architektur der TS.43-Berechtigungsfunktion

Wie in Abbildung 1 gezeigt, umfasst die Architektur der IMS-Dienstberechtigungsfunktion die folgenden Komponenten:

  • service_entitlement Statische Bibliothek der TS.43-Service-API : Diese Bibliothek implementiert die TS.43-Spezifikation, interagiert mit dem Berechtigungsserver eines Netzbetreibers und stellt App-orientierte APIs für jeden TS.43-Anwendungsfall bereit.
  • ImsServiceEntitlement Client-App: Diese App verwendet die TS.43-Dienst-API. Die App implementiert UI-Elemente einschließlich Webansichten zum Rendern des Serviceportals des Netzbetreibers, damit Benutzer Dienste aktivieren können, und interagiert mit anderen Android-Komponenten, um die Benutzererfahrung von Anfang bis Ende zu verwalten.

    Weitere Informationen zum Konfigurieren von Android für die Zusammenarbeit mit dem TS.43-basierten Berechtigungsserver eines Netzbetreibers finden Sie unter ImsServiceEntitlement-App .

Die nummerierten Zeilen in Abbildung 1 zeigen, wie die Komponenten der IMS-Dienstberechtigungsfunktion miteinander kommunizieren. Im Folgenden wird jeder der Schritte wie gekennzeichnet beschrieben:

(1) Die Client-App ruft die TS.43-Dienst-API auf, um eine Dienstberechtigungsanforderung zu initiieren.

(2) Die TS.43-Dienst-API sendet eine HTTP-Anforderung an den Berechtigungsserver des Netzbetreibers, um eine EAP-AKA-Abfrage zu initiieren.

(3) Die TS.43-Dienst-API ruft Telefonie-APIs (z. B. getIccAuthentication ) auf, um die EAP-AKA-Challenge-Response abzuschließen.

(4) Der TS.43-Dienst empfängt Dienstberechtigungs- oder Konfigurationsdaten vom Berechtigungsserver des Netzbetreibers, nachdem die EAP-AKA-Antwort verifiziert wurde.

(5) Der TS.43-Dienst gibt die Dienstberechtigungs- oder Konfigurationsdaten an die Client-App zurück.

(6) Die Client-App handhabt die Daten und stellt optional das Dienstportal des Netzbetreibers bereit, damit der Benutzer die Dienstaktivierung abschließen kann.

Integration

In diesem Abschnitt wird der Prozess zum Integrieren der service_entitlement Bibliothek und der ImsServiceEntitlement App beschrieben.

Da es keine Android 12-API-Abhängigkeit gibt, können die service_entitlement Bibliothek und die ImsServiceEntitlement App auf ältere Android-Plattformen zurückportiert werden.

service_entitlement-Bibliothek

Da die service_entitlement Bibliothek statisch mit der ImsServiceEntitlement app verknüpft ist, sind keine zusätzlichen Schritte zum Integrieren der Bibliothek in die ImsServiceEntitlement App erforderlich.

Die service_entitlement Bibliothek kann in Ihre eigenen Apps für TS.43-Anwendungsfälle wie Datenplan und ODSA integriert werden. Die Bibliothek kann auch in eine App für Nicht-TS.43-Berechtigungsanwendungsfälle basierend auf dem EAP-AKA-Protokoll integriert werden.

Im Folgenden werden die für solche Anwendungsfälle zu verwendenden APIs beschrieben:

  • TS.43-App, die das in der Bibliothek implementierte TS.43-HTTP-Protokoll verwendet: Verwenden Sie die APIs in der ServiceEntitlement -Klasse
  • Nicht-TS.43-App, die das in der Bibliothek implementierte EAP-AKA-Protokoll verwendet: Verwenden Sie die in der EapAkaHelper -Klasse bereitgestellten APIs

ImsServiceEntitlement-App

Standardmäßig enthält Android die App ImsServiceEntitlement , die in der Produktpartition als privilegierte App installiert ist. Um die App zu konfigurieren, verwenden Sie die folgenden CarrierConfig-Schlüssel:

Taste Wert
KEY_ENTITLEMENT_SERVER_URL_STRING URL des Berechtigungsservers des Netzbetreibers. Das Präfix https:// muss enthalten sein.
KEY_FCM_SENDER_ID_STRING FCM-Absender-ID des Spediteurs.

Legen Sie diesen Wert nicht fest, wenn FCM vom Netzbetreiber nicht verlangt wird.
KEY_SHOW_VOWIFI_WEBVIEW_BOOL Auf „ true “ setzen, wenn der Netzbetreiber eine Webportal-Benutzeroberfläche benötigt, damit Benutzer sich für den VoWiFi-Dienst anmelden können. Zum Beispiel die Zustimmung zu den Allgemeinen Geschäftsbedingungen oder die Eingabe einer Notfalladresse.

Dies wird in der Regel von Spediteuren in Nordamerika verlangt.
KEY_WFC_EMERGENCY_ADDRESS_CARRIER_APP_STRING
Auf com.android.imsserviceentitlement/.WfcActivationActivity , wenn KEY_SHOW_VOWIFI_WEBVIEW_BOOL true ist.
KEY_IMS_PROVISIONING_BOOL Auf „ true “ setzen, wenn der Netzbetreiber die Netzwerkbereitstellung von IMS-Diensten (VoLTE/VoWiFi/SMSoIP) im Hintergrund erfordert.

Dies wird von bestimmten europäischen Transportunternehmen verlangt.
KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL Auf true gesetzt, wenn KEY_IMS_PROVISIONING_BOOL true ist.

Der HTTP-Datenverkehr zum Berechtigungsserver und Webportal eines Netzbetreibers erfolgt über das Standardnetzwerk, z. B. standardmäßige mobile Daten oder Wi-Fi.

GMS-Partner: Die folgenden Netzbetreiber werden von der TS.43-Berechtigungs-App in Android 12 gemäß der TS.43 v5.0-Spezifikation unterstützt:

  • USA: CSpire, US-Mobilfunk, Cellcom
  • Frankreich: Orange

Zusätzliche System-UI für die IMS-Bereitstellung

In diesem Abschnitt wird beschrieben, wie OEMs zusätzliche System-UI-Elemente im Zusammenhang mit der Bereitstellung von IMS-Diensten unterstützen können (z. B. wenn eine Benachrichtigung angezeigt wird, wenn VoWiFi bereitgestellt wird).

Die ImsServiceEntitlement App legt den VoWiFi-Bereitstellungsstatus mithilfe der System-API ProvisioningManager.setProvisioningIntValue(KEY_VOICE_OVER_WIFI_ENABLED_OVERRIDE, value) in der Plattform fest. Diese API wird auch für VoLTE (mit KEY_VOLTE_PROVISIONING_STATUS ) und SMSoIP (mit KEY_SMS_OVER_IP_ENABLED ) verwendet.

Die Benutzeroberfläche des Systems kann dann den Bereitstellungsstatus lesen, indem sie getProvisioningIntValue verwendet oder einen Rückruf registriert, um die Änderung des Bereitstellungsstatus über registerProvisioningChangedCallback zu überwachen.

Überschreiben von Konfigurationen zum Testen

Verwenden Sie die folgenden Verfahren, um das Verhalten der ImsServiceEntitlement App zu Testzwecken vorübergehend zu ändern. Einzelheiten zum Überschreiben von Trägerkonfigurationen finden Sie unter Überschreiben von Trägerkonfigurationen .

Überspringen des VoWiFi-Anmeldevorgangs

Um den VoWiFi-Anmeldeprozess zu überspringen und VoWiFi direkt einzuschalten, überschreiben Sie die KEY_WFC_EMERGENCY_ADDRESS_CARRIER_APP_STRING und setzen ihren Wert auf eine leere Zeichenfolge.

Überspringen der IMS-Bereitstellung

Um die IMS-Bereitstellung zu überspringen, IMS-Dienste verfügbar zu machen und es Benutzern zu ermöglichen, solche Dienste ohne Netzwerkbereitstellung zu aktivieren, überschreiben Sie die Betreiberkonfiguration KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL und setzen Sie ihren Wert auf false .

Ändern der URL des Berechtigungsservers

Um die URL des Berechtigungsservers zu ändern, überschreiben Sie die Betreiberkonfiguration KEY_ENTITLEMENT_SERVER_URL_STRING und setzen Sie ihren Wert auf die erwartete URL-Zeichenfolge. Sie müssen das Präfix https:// einfügen.

Überschreiben von Trägerkonfigurationen

Ab Android 11 sind Befehle zum Überschreiben der Netzbetreiberkonfiguration integriert und mit Root-Rechten verfügbar.

Der folgende Befehl ist ein Beispiel dafür, wie der Carrier-Konfigurationsschlüssel carrier_volte_provisioning_required_bool und sein Wert auf false gesetzt wird. Sie können den Befehl mehrmals ausführen, um mehrere Konfigurationen zu überschreiben.

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

Verwenden Sie den folgenden Befehl, um alle Außerkraftsetzungen zu löschen:

adb shell cmd phone cc clear-values

Um weitere Informationen zu erhalten, führen Sie den folgenden Befehl aus:

adb shell cmd phone cc