IMS-Dienstberechtigung

Ab Android 12 unterstützt Android TS.43-Dienstberechtigung Konfiguration, eine GSMA-Spezifikation, die den Schritt zur Berechtigungsprüfung für die Aktivierung von Diensten, einschließlich Voice-over-WLAN (VoWi-Fi), Voice-over-LTE (VoLTE), SMS über IP (SMSoIP), Dienstaktivierung auf dem Gerät (ODSA) der eSIM Begleitgeräten (mit dem anfragenden Gerät verknüpft) und Datentarif Informationen.

Android bietet eine IMS-Dienstberechtigung, um diese Spezifikation zu unterstützen mit der ein Dienstanbieter Mobilgeräte über den Status IP Multimedia Subsystem (IMS)-Netzwerkdienste. Mit dieser Berechtigungsfunktion das Gerät, um den Server für Mobilfunkanbieter-Berechtigungen gemäß GSMA TS.43 abzufragen Spezifikation für den IMS-Berechtigungsstatus mithilfe von EAP-Authentifizierung (auch bekannt als EAP-Authentifizierung) ohne dass Nutzer ihre Anmeldedaten manuell eingeben müssen.

Mobilfunkanbieter mit IMS-Berechtigungsservern können die IMS-Dienstberechtigung verwenden für die Dienstbereitstellung. Die Einführung der Funktion bietet Folgendes: Vorteile:

  • Geringere Test- und Zertifizierungskosten für Mobilfunkanbieter, da Die Berechtigungsfunktion kann für mehrere Produkte und OEMs verwendet werden.
  • Reduziert den Entwicklungsaufwand für Gerätehersteller durch einen Standard Android-App
  • Ermöglicht Geräteherstellern und Mobilfunkanbietern, Code für die Funktion beizusteuern da die Funktion Open Source ist.
  • Bietet die Verwaltung von Notfalladressen für nordamerikanische Mobilfunkanbieter.

Architektur

In der folgenden Abbildung werden die Architektur und das Verhalten des IMS beschrieben. Dienstberechtigung.

TS.43-Berechtigungsfunktion

Abbildung 1: Architektur der TS.43-Berechtigungsfunktionen

Wie in Abbildung 1 dargestellt, ist die Architektur der Funktion für die IMS-Dienstberechtigung umfasst die folgenden Komponenten:

  • service_entitlement TS.43 Service API – statisch Mediathek: Diese Bibliothek implementiert die TS.43-Spezifikation, interagiert mit dem Berechtigungsserver und stellt appseitige APIs für jeden TS.43-Anwendungsfall bereit.
  • ImsServiceEntitlement Clientanwendung: Diese App verwendet die TS.43 Service API. Die App implementiert die UI. Elemente wie WebViews zum Rendern des Serviceportals des Netzbetreibers Dienste zu aktivieren und mit anderen Android-Komponenten zu interagieren, die User Experience von Anfang bis Ende.

    Weitere Informationen zur Konfiguration von Android für die Verwendung mit einem TS.43-basierten Berechtigungsserver des Mobilfunkanbieters, siehe ImsServiceEntitlement App.

Die nummerierten Linien in Abbildung 1 zeigen, wie die Komponenten des IMS-Dienstes Berechtigungsfunktion miteinander kommunizieren. Im Folgenden werden die einzelnen der Schritte entsprechend der Bezeichnung:

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

(2) Die TS.43-Dienst-API sendet eine HTTP-Anfrage an die Berechtigung des Mobilfunkanbieters. zur Initiierung einer EAP-Abfrage (auch bekannt als EAP-Abfrage).

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

(4) Der TS.43-Dienst empfängt Dienstberechtigungs- oder Konfigurationsdaten vom Berechtigungsserver des Mobilfunkanbieters gesendet, nachdem die EAP-Antwort bestätigt.

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

(6) Die Client-App verarbeitet die Daten und rendert optional die Serviceportal, über das der Nutzer die Dienstaktivierung abschließen kann.

Integration

In diesem Abschnitt wird die Integration von service_entitlement beschrieben. Bibliothek und der ImsServiceEntitlement App.

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

Bibliothek „service_entitlement“

Da die service_entitlement-Bibliothek statisch mit der ImsServiceEntitlement app, für die Integration sind keine zusätzlichen Schritte erforderlich Bibliothek in die ImsServiceEntitlement App.

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

Im Folgenden werden die APIs beschrieben, die in solchen Anwendungsfällen verwendet werden können:

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

ImsServiceEntitlement-App

Standardmäßig enthält Android die ImsServiceEntitlement-App, die im Produktaufteilung als privilegierte App. Verwenden Sie zum Konfigurieren der App Folgendes: CarrierConfig-Schlüssel:

Schlüssel Wert
KEY_ENTITLEMENT_SERVER_URL_STRING URL des Berechtigungsservers des Anbieters. Das Präfix https:// muss enthalten.
KEY_FCM_SENDER_ID_STRING FCM-Sender-ID des Mobilfunkanbieters

Legen Sie diesen Wert nicht fest, wenn FCM nicht vom Mobilfunkanbieter erforderlich ist.
KEY_SHOW_VOWIFI_WEBVIEW_BOOL Legen Sie true fest, wenn der Mobilfunkanbieter eine Webportal-Benutzeroberfläche für Nutzer benötigt. um sich für einen VoWLAN-Dienst zu registrieren. Die Zustimmung zu Nutzungsbedingungen und oder eine Notfalladresse eingeben.

Dies ist in der Regel von Mobilfunkanbietern in Nordamerika erforderlich.
KEY_WFC_EMERGENCY_ADDRESS_CARRIER_APP_STRING
Festlegen auf com.android.imsserviceentitlement/.WfcActivationActivity, wenn KEY_SHOW_VOWIFI_WEBVIEW_BOOL hat den Wert true.
KEY_IMS_PROVISIONING_BOOL Legen Sie true fest, wenn der Mobilfunkanbieter eine Netzwerkbereitstellung von IMS erfordert. (VoLTE/VoWiFi/SMSoIP) im Hintergrund laufen.

Bestimmte europäische Mobilfunkanbieter verlangen dies.
KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL Legen Sie true fest, wenn KEY_IMS_PROVISIONING_BOOL ist true.

Der HTTP-Traffic zum Berechtigungsserver und zum Webportal eines Mobilfunkanbieters geht über den zum Beispiel ein Standardnetzwerk für mobile Daten oder WLAN.

GMD-Partner:Die folgenden Mobilfunkanbieter werden von der TS.43-Berechtigung unterstützt. für Android 12 gemäß TS.43 v5.0 Spezifikation:

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

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

In diesem Abschnitt wird beschrieben, wie OEMs zusätzliche System-UI-Elemente unterstützen können. im Zusammenhang mit der IMS-Dienstbereitstellung, z. B. beim Anzeigen einer Benachrichtigung wenn VoWLAN bereitgestellt wird.

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

Die System-UI kann den Bereitstellungsstatus dann mithilfe von getProvisioningIntValue oder indem Sie einen Callback registrieren, um die Änderung des Bereitstellungsstatus über registerProvisioningChangedCallback.

Konfigurationen für Tests überschreiben

Mit den folgenden Schritten können Sie das ImsServiceEntitlement vorübergehend ändern App-Verhalten zu Testzwecken. Weitere Informationen zum Überschreiben des Mobilfunkanbieters finden Sie unter Mobilfunkanbieter überschreiben Konfigurationen

VoWLAN-Registrierung überspringen

Um die VoWLAN-Registrierung zu überspringen und VoWLAN direkt zu aktivieren, Konfiguration des Mobilfunkanbieters überschreiben KEY_WFC_EMERGENCY_ADDRESS_CARRIER_APP_STRING und legt seinen Wert auf einen leeren String fest.

IMS-Bereitstellung überspringen

Sie können die IMS-Bereitstellung überspringen, indem Sie IMS-Dienste verfügbar machen und Nutzern Folgendes ermöglichen: solche Dienste ohne Netzwerkbereitstellung aktivieren, Konfiguration des Mobilfunkanbieters überschreiben KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL und legen Sie als Wert false fest.

Berechtigungsserver-URL ändern

Wenn du die Berechtigungsserver-URL ändern möchtest, überschreibe die Konfiguration des Mobilfunkanbieters KEY_ENTITLEMENT_SERVER_URL_STRING und legen Sie als Wert den erwarteten URL-String fest. Sie müssen den Parameter https://.

Mobilfunkanbieterkonfigurationen überschreiben

Ab Android 11 sind Befehle zum Überschreiben der Konfiguration für Mobilfunkanbieter integriert und verfügbar mit Root-Berechtigungen.

Der folgende Befehl ist ein Beispiel für das Überschreiben des Konfigurationsschlüssels für den Mobilfunkanbieter carrier_volte_provisioning_required_bool und legen Sie dessen Wert auf false fest. Ich kann 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 Überschreibungen zu löschen:

adb shell cmd phone cc clear-values

Führen Sie den folgenden Befehl aus, um weitere Informationen abzurufen:

adb shell cmd phone cc