IMS 服務授權

從Android電子12,機器人包括用於支持TS.43服務權限配置,一個GSMA規範,定義為服務,包括,畫外音的Wi-Fi(的VoWiFi),畫外音-LTE(VoLTE的)的活化的權利驗證步驟、IP 上的 SMS (SMSoIP)、eSIM 配套設備(與請求設備相關聯)的設備上服務激活 (ODSA) 和數據計劃信息。

為支持此規範,Android 提供了 IMS 服務授權功能,允許服務提供商將 IP 多媒體子系統 (IMS) 網絡服務的狀態通知移動設備。此授權功能允許該裝置查詢載體授權服務器由GSMA TS.43規範使用IMS授權狀態定義EAP-AKA認證而無需手動任何憑證需要用戶輸入。

擁有 IMS 授權服務器的運營商可以使用 IMS 服務授權功能提供服務。採用該功能可提供以下好處:

  • 降低運營商的測試和認證成本,因為此授權功能可用於多個產品和 OEM。
  • 通過標準的 Android 應用程序減少設備製造商的開發開銷。
  • 允許設備製造商和運營商為該功能貢獻代碼,因為該功能是開源的。
  • 為北美運營商提供緊急地址管理。

建築學

下圖描述了 IMS 服務授權功能的架構和行為。

TS.43 授權功能

圖1. TS.43授權功能架構

如圖 1 所示,IMS 服務授權功能的架構包括以下組件:

  • service_entitlement TS.43服務API靜態庫該庫實現了TS.43規範,與運營商的授權服務器進行交互,並公開應用面向每個TS.43用例的API。
  • ImsServiceEntitlement客戶端應用程序:這個程序使用TS.43服務API。該應用程序實現了包括 webviews 在內的 UI 元素,用於呈現運營商的服務門戶,供用戶激活服務並與其他 Android 組件交互以管理端到端的用戶體驗。

    有關如何與Android的運營商的基於TS.43-權利服務器配置工作的詳細信息,請參閱ImsServiceEntitlement應用

圖 1 中的編號線顯示了 IMS 服務授權功能的組件如何相互通信。下面描述了每個標記的步驟:

(1)客戶端應用程序調用TS.43服務API來啟動服務授權請求。

(2)TS.43服務API將HTTP請求發送到所述載體的授權服務器發起EAP-AKA挑戰。

(3)TS.43服務API所調用電話API(例如, getIccAuthentication )來完成EAP-AKA質詢-響應。

(4)TS.43服務接收來自運營商的授權服務器服務授權或配置數據的EAP-AKA響應被驗證之後。

(5)TS.43服務的服務授權或配置數據返回到客戶端應用程序。

(6)客戶端應用程序處理的數據,並任選地呈現以供用戶終服務激活載體的服務門戶。

一體化

本節介紹的整合過程service_entitlement庫和ImsServiceEntitlement應用。

因為沒有Android的API 12的依賴,在service_entitlement庫和ImsServiceEntitlement應用程序可以回遷到較舊的Android平台。

service_entitlement 庫

因為service_entitlement庫靜態鏈接到ImsServiceEntitlement app ,所需要的庫集成到任何其他步驟ImsServiceEntitlement應用。

service_entitlement庫可以用自己的應用程式,TS.43使用情況,如數據計劃和ODSA集成。該庫還可以集成到基於 EAP-AKA 協議的非 TS.43 權利用例的應用程序中。

下面描述了用於此類用例的 API:

  • 使用在這些API:使用該庫實現的TS.43 HTTP協議TS.43應用ServiceEntitlement
  • 使用中暴露的API:使用該庫實現的EAP-AKA協議非TS.43應用EapAkaHelper

ImsServiceEntitlement 應用程序

默認情況下,機器人包括ImsServiceEntitlement安裝在產品分區作為特權的應用程序的應用程序。要配置應用程序,請使用以下 CarrierConfig 鍵:

鑰匙價值
KEY_ENTITLEMENT_SERVER_URL_STRING運營商的授權服務器 URL。在https://的前綴必須包括在內。
KEY_FCM_SENDER_ID_STRING運營商的 FCM 發件人 ID。

如果運營商不需要 FCM,則不要設置此值。
KEY_SHOW_VOWIFI_WEBVIEW_BOOL設置為true ,如果運營商需要一個門戶網站的用戶界面,為用戶報名參加的VoWiFi服務。例如,同意條款和條件或輸入緊急地址。

這通常是北美的運營商所要求的。
KEY_WFC_EMERGENCY_ADDRESS_CARRIER_APP_STRING
設置為com.android.imsserviceentitlement/.WfcActivationActivity ,如果KEY_SHOW_VOWIFI_WEBVIEW_BOOLtrue
KEY_IMS_PROVISIONING_BOOL設置為true ,如果運營商要求網絡IMS(VoLTE的/的VoWiFi / SMSoIP)在後台服務的供應。

這是某些歐洲運營商所要求的。
KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL設置為true ,如果KEY_IMS_PROVISIONING_BOOLtrue

到運營商授權服務器和 Web 門戶的 HTTP 流量通過默認網絡,例如默認移動數據或 Wi-Fi。

GMS夥伴:以下載流子被TS.43權利應用中的Android 12支撐時,TS.43 V5.0規範以下內容:

  • 美國:CSpire,美國蜂窩
  • 法國:橙色

用於 IMS 供應的附加系統 UI

本節介紹 OEM 如何支持與 IMS 服務供應相關的其他系統 UI 元素(例如,在供應 VoWiFi 時顯示通知)。

所述ImsServiceEntitlement應用集的VoWiFi供應狀態到使用該平台ProvisioningManager.setProvisioningIntValue(KEY_VOICE_OVER_WIFI_ENABLED_OVERRIDE, value)系統API。此API還用於VoLTE的(與KEY_VOLTE_PROVISIONING_STATUS )和SMSoIP(與KEY_SMS_OVER_IP_ENABLED )。

然後,該系統的用戶界面可以通過使用讀出的供應狀態getProvisioningIntValue或通過註冊的回調監測通過供應狀態變化registerProvisioningChangedCallback

覆蓋測試配置

使用以下步驟來暫時改變ImsServiceEntitlement用於測試目的的應用程序的行為。有關如何覆蓋載波配置詳情,請參閱重寫載波配置

跳過 VoWiFi 註冊過程

要跳過的VoWiFi註冊過程,允許的VoWiFi到上直接轉動,覆蓋所述載體配置KEY_WFC_EMERGENCY_ADDRESS_CARRIER_APP_STRING並將其值為空字符串。

跳過 IMS 供應

要跳過IMS供應,使得可用的IMS服務,並允許用戶對這些服務沒有開啟網絡提供,覆蓋載波配置KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL和其值設置為false

更改授權服務器 URL

要更改授權服務器URL,覆蓋載波配置KEY_ENTITLEMENT_SERVER_URL_STRING並將其值設置為預期的URL字符串。您必須包括https://的前綴。

覆蓋運營商配置

從 Android 11 開始,運營商配置覆蓋命令是內置的,並且具有 root 權限。

下面的命令是如何重寫所述載體配置鍵的示例carrier_volte_provisioning_required_bool和其值設置為false 。您可以多次運行該命令以覆蓋多個配置。

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

要清除所有覆蓋,請使用以下命令:

adb shell cmd phone cc clear-values

要獲取更多信息,請運行以下命令:

adb shell cmd phone cc