Quyền lợi dịch vụ IMS

Từ Android 12, Android bao gồm hỗ trợ cho Cấu hình quyền dịch vụ TS.43 , một thông số kỹ thuật GSMA xác định bước xác minh quyền để kích hoạt các dịch vụ bao gồm Thoại qua Wi-Fi (VoWiFi), Thoại qua LTE (VoLTE) , SMS qua IP (SMSoIP), Kích hoạt dịch vụ trên thiết bị (ODSA) của các thiết bị đồng hành eSIM (được liên kết với thiết bị yêu cầu) và thông tin gói dữ liệu.

Để hỗ trợ thông số kỹ thuật này, Android cung cấp tính năng quyền được hưởng dịch vụ IMS cho phép nhà cung cấp dịch vụ thông báo cho thiết bị di động về trạng thái của các dịch vụ mạng Hệ thống con đa phương tiện IP (IMS). Tính năng quyền được hưởng này cho phép thiết bị truy vấn máy chủ quyền của nhà cung cấp dịch vụ như được xác định bởi thông số kỹ thuật GSMA TS.43 để biết trạng thái quyền của IMS bằng cách sử dụng xác thực EAP-AKA mà không yêu cầu người dùng nhập bất kỳ thông tin xác thực nào theo cách thủ công.

Các nhà cung cấp dịch vụ có máy chủ được hưởng IMS có thể sử dụng tính năng được hưởng dịch vụ IMS để cung cấp dịch vụ. Việc áp dụng tính năng này mang lại những lợi ích sau:

  • Giảm chi phí thử nghiệm và chứng nhận cho nhà cung cấp dịch vụ vì tính năng được hưởng này có thể được sử dụng trên nhiều sản phẩm và OEM.
  • Giảm chi phí phát triển cho nhà sản xuất thiết bị thông qua ứng dụng Android tiêu chuẩn.
  • Cho phép nhà sản xuất thiết bị và nhà cung cấp dịch vụ đóng góp mã cho tính năng này vì tính năng này là nguồn mở.
  • Cung cấp quản lý địa chỉ khẩn cấp cho các nhà mạng Bắc Mỹ.

Ngành kiến ​​​​trúc

Hình dưới đây mô tả kiến ​​trúc và hoạt động của tính năng quyền được hưởng dịch vụ IMS.

Tính năng quyền lợi TS.43

Hình 1. Kiến trúc tính năng quyền của TS.43

Như được hiển thị trong Hình 1, kiến ​​trúc của tính năng quyền được hưởng dịch vụ IMS bao gồm các thành phần sau:

  • service_entitlement TS.43 Thư viện tĩnh API dịch vụ : Thư viện này triển khai đặc tả TS.43, tương tác với máy chủ quyền của nhà cung cấp dịch vụ và hiển thị các API hướng tới ứng dụng cho từng trường hợp sử dụng TS.43.
  • Ứng dụng khách ImsServiceEntitlement : Ứng dụng này sử dụng API dịch vụ TS.43. Ứng dụng triển khai các thành phần giao diện người dùng bao gồm chế độ xem web để hiển thị cổng dịch vụ của nhà cung cấp dịch vụ để người dùng kích hoạt dịch vụ và tương tác với các thành phần Android khác để quản lý trải nghiệm người dùng từ đầu đến cuối.

    Để biết thêm thông tin về cách định cấu hình Android để hoạt động với máy chủ quyền được hưởng dựa trên TS.43 của nhà cung cấp dịch vụ, hãy xem ứng dụng ImsServiceEntitlement .

Các dòng được đánh số trong Hình 1 cho thấy các thành phần của tính năng quyền được hưởng dịch vụ IMS giao tiếp với nhau như thế nào. Phần sau đây mô tả từng bước như được gắn nhãn:

(1) Ứng dụng khách gọi API dịch vụ TS.43 để bắt đầu yêu cầu quyền sử dụng dịch vụ.

(2) API dịch vụ TS.43 gửi yêu cầu HTTP đến máy chủ được hưởng của nhà cung cấp dịch vụ để bắt đầu thử thách EAP-AKA.

(3) API dịch vụ TS.43 gọi API điện thoại (ví dụ: getIccAuthentication ) để hoàn thành phản hồi thử thách EAP-AKA.

(4) Dịch vụ TS.43 nhận dữ liệu cấu hình hoặc quyền được hưởng dịch vụ từ máy chủ được hưởng của nhà cung cấp dịch vụ sau khi phản hồi EAP-AKA được xác minh.

(5) Dịch vụ TS.43 trả về quyền sử dụng dịch vụ hoặc dữ liệu cấu hình cho ứng dụng khách.

(6) Ứng dụng khách xử lý dữ liệu và tùy chọn hiển thị cổng dịch vụ của nhà cung cấp dịch vụ để người dùng hoàn tất kích hoạt dịch vụ.

Hội nhập

Phần này mô tả quy trình tích hợp thư viện service_entitlement và ứng dụng ImsServiceEntitlement .

Vì không có phần phụ thuộc API Android 12 nên thư viện service_entitlement và ứng dụng ImsServiceEntitlement có thể được chuyển ngược sang các nền tảng Android cũ hơn.

thư viện service_entitlement

Vì thư viện service_entitlement được liên kết tĩnh vào ImsServiceEntitlement app nên không cần thực hiện thêm bước nào để tích hợp thư viện vào ứng dụng ImsServiceEntitlement .

Thư viện service_entitlement có thể được tích hợp với các ứng dụng của riêng bạn cho các trường hợp sử dụng TS.43 như gói dữ liệu và ODSA. Thư viện cũng có thể được tích hợp vào một ứng dụng dành cho các trường hợp sử dụng quyền không phải TS.43 dựa trên giao thức EAP-AKA.

Phần sau đây mô tả các API sẽ sử dụng cho các trường hợp sử dụng đó:

  • Ứng dụng TS.43 sử dụng giao thức HTTP TS.43 được triển khai trong thư viện: Sử dụng các API trong lớp ServiceEntitlement
  • Ứng dụng không phải TS.43 sử dụng giao thức EAP-AKA được triển khai trong thư viện: Sử dụng các API được hiển thị trong lớp EapAkaHelper

Ứng dụng ImsServiceEntitlement

Theo mặc định, Android bao gồm ứng dụng ImsServiceEntitlement được cài đặt trong phân vùng sản phẩm dưới dạng ứng dụng đặc quyền. Để định cấu hình ứng dụng, hãy sử dụng các khóa CarrierConfig sau:

Chìa khóa Giá trị
KEY_ENTITLEMENT_SERVER_URL_STRING URL máy chủ được hưởng của nhà cung cấp dịch vụ. Phải bao gồm tiền tố https:// .
KEY_FCM_SENDER_ID_STRING ID người gửi FCM của nhà mạng.

Không đặt giá trị này nếu nhà cung cấp dịch vụ không yêu cầu FCM.
KEY_SHOW_VOWIFI_WEBVIEW_BOOL Đặt thành true nếu nhà cung cấp dịch vụ yêu cầu giao diện người dùng cổng web để người dùng đăng ký dịch vụ VoWiFi. Ví dụ: đồng ý với các điều khoản và điều kiện hoặc nhập địa chỉ khẩn cấp.

Điều này thường được các nhà mạng ở Bắc Mỹ yêu cầu.
KEY_WFC_EMERGENCY_ADDRESS_CARRIER_APP_STRING
Đặt thành com.android.imsserviceentitlement/.WfcActivationActivity , nếu KEY_SHOW_VOWIFI_WEBVIEW_BOOLtrue .
KEY_IMS_PROVISIONING_BOOL Đặt thành true nếu nhà cung cấp dịch vụ yêu cầu cung cấp mạng cho các dịch vụ IMS (VoLTE/VoWiFi/SMSoIP) ở chế độ nền.

Điều này được yêu cầu bởi một số hãng vận chuyển châu Âu.
KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL Đặt thành true nếu KEY_IMS_PROVISIONING_BOOLtrue .

Lưu lượng HTTP đến máy chủ được hưởng và cổng web của nhà cung cấp dịch vụ đi qua mạng mặc định, chẳng hạn như dữ liệu di động mặc định hoặc Wi-Fi.

Đối tác GMS: Các nhà mạng sau được ứng dụng quyền TS.43 hỗ trợ trong Android 12, tuân theo thông số kỹ thuật TS.43 v5.0:

  • Hoa Kỳ: CSspire, US Cellular, Cellcom
  • Pháp: Cam

Giao diện người dùng hệ thống bổ sung để cung cấp IMS

Phần này mô tả cách OEM có thể hỗ trợ các thành phần giao diện người dùng hệ thống bổ sung liên quan đến việc cung cấp dịch vụ IMS (ví dụ: khi hiển thị thông báo khi VoWiFi được cung cấp).

Ứng dụng ImsServiceEntitlement đặt trạng thái cung cấp VoWiFi vào nền tảng bằng cách sử dụng API hệ thống ProvisioningManager.setProvisioningIntValue(KEY_VOICE_OVER_WIFI_ENABLED_OVERRIDE, value) . API này cũng được sử dụng cho VoLTE (với KEY_VOLTE_PROVISIONING_STATUS ) và SMSoIP (với KEY_SMS_OVER_IP_ENABLED ).

Sau đó, giao diện người dùng hệ thống có thể đọc trạng thái cung cấp bằng cách sử dụng getProvisioningIntValue hoặc bằng cách đăng ký lệnh gọi lại để theo dõi sự thay đổi trạng thái cung cấp thông qua registerProvisioningChangedCallback .

Ghi đè cấu hình để thử nghiệm

Sử dụng các quy trình sau để tạm thời thay đổi hành vi của ứng dụng ImsServiceEntitlement nhằm mục đích thử nghiệm. Để biết chi tiết về cách ghi đè cấu hình nhà cung cấp dịch vụ, hãy xem Ghi đè cấu hình nhà cung cấp dịch vụ .

Bỏ qua quá trình đăng ký VoWiFi

Để bỏ qua quá trình đăng ký VoWiFi, cho phép bật VoWiFi trực tiếp, hãy ghi đè cấu hình nhà cung cấp dịch vụ KEY_WFC_EMERGENCY_ADDRESS_CARRIER_APP_STRING và đặt giá trị của nó thành một chuỗi trống.

Bỏ qua việc cung cấp IMS

Để bỏ qua việc cung cấp IMS, cung cấp các dịch vụ IMS và cho phép người dùng bật các dịch vụ đó mà không cần cung cấp mạng, hãy ghi đè cấu hình nhà cung cấp dịch vụ KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL và đặt giá trị của nó thành false .

Thay đổi URL máy chủ quyền

Để thay đổi URL máy chủ có quyền, hãy ghi đè cấu hình nhà cung cấp dịch vụ KEY_ENTITLEMENT_SERVER_URL_STRING và đặt giá trị của nó thành chuỗi URL dự kiến. Bạn phải bao gồm tiền tố https:// .

Ghi đè cấu hình nhà cung cấp dịch vụ

Từ Android 11, các lệnh ghi đè cấu hình nhà mạng đã được tích hợp sẵn và có sẵn với quyền root.

Lệnh sau đây là ví dụ về cách ghi đè khóa cấu hình nhà cung cấp dịch carrier_volte_provisioning_required_bool và đặt giá trị của nó thành false . Bạn có thể chạy lệnh nhiều lần để ghi đè nhiều cấu hình.

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

Để xóa tất cả các phần ghi đè, hãy sử dụng lệnh sau:

adb shell cmd phone cc clear-values

Để biết thêm thông tin, hãy chạy lệnh sau:

adb shell cmd phone cc