IMS-Serviceanspruch

Ab Android 12 unterstützt Android TS.43 Service Entitlement Configuration , eine GSMA-Spezifikation, die den Berechtigungsüberprüfungsschritt für die Aktivierung von Diensten wie Voice-over-Wi-Fi (VoWiFi) und Voice-over-LTE (VoLTE) definiert. , SMS over IP (SMSoIP), On-Device Service Activation (ODSA) von eSIM-Begleitgeräten (die dem anfordernden Gerät zugeordnet sind) und Datentarifinformationen.

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

Netzbetreiber mit IMS-Berechtigungsservern können die IMS-Dienstberechtigungsfunktion für die Dienstbereitstellung nutzen. Die Übernahme dieser Funktion bietet folgende Vorteile:

  • Reduziert die Test- und Zertifizierungskosten für Netzbetreiber, 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 Notfalladressenverwaltung 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 dargestellt, umfasst die Architektur der IMS-Dienstberechtigungsfunktion die folgenden Komponenten:

  • service_entitlement Statische TS.43-Service-API-Bibliothek : Diese Bibliothek implementiert die TS.43-Spezifikation, interagiert mit dem Berechtigungsserver eines Netzbetreibers und stellt App-APIs für jeden TS.43-Anwendungsfall bereit.
  • ImsServiceEntitlement Client-App: Diese App verwendet die TS.43-Service-API. Die App implementiert UI-Elemente, einschließlich Webansichten, um das Serviceportal des Netzbetreibers darzustellen, damit Benutzer Dienste aktivieren können, und interagiert mit anderen Android-Komponenten, um die Benutzererfahrung durchgängig zu verwalten.

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

Die nummerierten Linien in Abbildung 1 zeigen, wie die Komponenten der IMS-Dienstberechtigungsfunktion miteinander kommunizieren. Im Folgenden werden die einzelnen Schritte mit der Bezeichnung 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-Anfrage an den Berechtigungsserver des Netzbetreibers, um eine EAP-AKA-Herausforderung 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 überprüft wurde.

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

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

Integration

In diesem Abschnitt wird der Prozess zur Integration 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 ImsServiceEntitlement App auf ältere Android-Plattformen zurückportiert werden.

service_entlement-Bibliothek

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

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 schließt Android die in der Produktpartition installierte ImsServiceEntitlement App als privilegierte App ein. Um die App zu konfigurieren, verwenden Sie die folgenden CarrierConfig-Schlüssel:

Schlüssel 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 Netzbetreibers.

Legen Sie diesen Wert nicht fest, wenn FCM vom Netzbetreiber nicht gefordert 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 normalerweise von Spediteuren in Nordamerika verlangt.
KEY_WFC_EMERGENCY_ADDRESS_CARRIER_APP_STRING
Auf com.android.imsserviceentitlement/.WfcActivationActivity setzen, wenn KEY_SHOW_VOWIFI_WEBVIEW_BOOL true ist.
KEY_IMS_PROVISIONING_BOOL Wird auf true gesetzt, wenn der Netzbetreiber die Netzwerkbereitstellung von IMS-Diensten (VoLTE/VoWiFi/SMSoIP) im Hintergrund erfordert.

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

Der HTTP-Verkehr zum Berechtigungsserver und zum Webportal eines Netzbetreibers erfolgt über das Standardnetzwerk, beispielsweise standardmäßige mobile Daten oder WLAN.

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

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

Zusätzliche Systembenutzeroberfläche 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. beim Anzeigen einer Benachrichtigung, 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 Systembenutzeroberfläche 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 Netzbetreiberkonfigurationen finden Sie unter Netzbetreiberkonfigurationen überschreiben .

Überspringen des VoWiFi-Anmeldevorgangs

Um den VoWiFi-Anmeldevorgang zu überspringen und VoWiFi direkt zu aktivieren, überschreiben Sie die Netzbetreiberkonfiguration KEY_WFC_EMERGENCY_ADDRESS_CARRIER_APP_STRING und legen Sie ihren Wert auf eine leere Zeichenfolge fest.

Überspringen der IMS-Bereitstellung

Um die IMS-Bereitstellung zu überspringen, IMS-Dienste verfügbar zu machen und Benutzern das Aktivieren dieser Dienste ohne Netzwerkbereitstellung zu ermöglichen, überschreiben Sie die Netzbetreiberkonfiguration KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL und legen Sie ihren Wert auf false fest.

Ändern der Berechtigungsserver-URL

Um die URL des Berechtigungsservers zu ändern, überschreiben Sie die Netzbetreiberkonfiguration KEY_ENTITLEMENT_SERVER_URL_STRING und legen Sie ihren Wert auf die erwartete URL-Zeichenfolge fest. Sie müssen das Präfix https:// angeben.

Überschreiben von Netzbetreiberkonfigurationen

Ab Android 11 sind Befehle zum Überschreiben der Carrier-Konfiguration 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 “ überschrieben 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

Um alle Überschreibungen zu löschen, verwenden Sie den folgenden Befehl:

adb shell cmd phone cc clear-values

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

adb shell cmd phone cc