Đăng ký một lần IMS

Android 12 ra mắt hỗ trợ cho mô hình đăng ký duy nhất để cung cấp các tính năng MMTEL và RCS. Mô hình này cho phép các thiết bị có tất cả các tính năng IMS được quản lý thông qua một đăng ký IMS duy nhất do ImsService của thiết bị cung cấp và tuân thủ các yêu cầu do một số nhà cung cấp dịch vụ viễn thông đưa ra. So với mô hình đăng ký kép, trong đó nhiều đăng ký IMS được quản lý trên một thiết bị, đăng ký một lần sẽ giảm lưu lượng truy cập trên mạng của nhà cung cấp dịch vụ và tăng độ tin cậy.

Android 12 hỗ trợ mô hình đăng ký một lần này thông qua kiến ​​trúc với một bộ API cho phép hệ thống điện thoại AOSP quản lý cả tính năng MMTEL do ImsService cung cấp và tính năng RCS do ứng dụng nhắn tin RCS do người dùng chọn cung cấp. Để hỗ trợ đăng ký một lần IMS, nhà sản xuất thiết bị và nhà cung cấp SoC phải triển khai các API này để kích hoạt các tính năng RCS trong ứng dụng nhắn tin RCS do người dùng chọn.

Hình 1 minh họa ngăn xếp IMS của thiết bị khi sử dụng mô hình đăng ký đơn IMS. Tất cả các ứng dụng IMS đều sử dụng ImsService mặc định của thiết bị cho các tính năng MMTEL và RCS qua một lần đăng ký IMS. Điều này bao gồm việc cung cấp, chuyển tiếp tin nhắn SIP và trao đổi khả năng của người dùng RCS.

Kiến trúc chế độ đăng ký đơn

Hình 1. Kiến trúc mô hình đăng ký đơn

Android 11 trở xuống chỉ hỗ trợ mô hình đăng ký kép để cung cấp các tính năng MMTEL và RCS, trong đó MMTEL được cung cấp bởi ImsService của thiết bị và các tính năng RCS được triển khai ở trên cùng và quản lý ngăn xếp IMS của riêng chúng cũng như kết nối với mạng của nhà cung cấp dịch vụ một cách độc lập.

Hình 2 minh họa kiến ​​trúc của mô hình đăng ký kép. Trong mô hình này, mỗi ứng dụng chịu trách nhiệm kết nối với mạng của nhà cung cấp dịch vụ và thiết lập đăng ký IMS cho các tính năng MMTEL và RCS. ImsService của thiết bị triển khai MMTEL, sử dụng kết nối dữ liệu IMS của thiết bị với mạng của nhà cung cấp dịch vụ và hoạt động độc lập với các ứng dụng RCS khác.

kiến trúc chế độ đăng ký kép

Hình 2. Kiến trúc mô hình đăng ký kép

API đăng ký một lần IMS

Các thiết bị trong phạm vi nhà cung cấp dịch vụ yêu cầu đăng ký một lần IMS phải hỗ trợ API đăng ký một lần IMS và xác định tính năng Android PackageManager#FEATURE_TELEPHONY_IMS_SINGLE_REGISTRATION . Hình 3 hiển thị các API hỗ trợ đăng ký một lần IMS.

Bề mặt API hỗ trợ đăng ký một lần IMS

Hình 3. Các bề mặt API cấp cao hỗ trợ đăng ký một lần IMS

Các thiết bị Android hỗ trợ đăng ký một lần IMS như một phần của ngăn xếp điện thoại AOSP được yêu cầu hỗ trợ tất cả các API AOSP được mô tả trong bảng sau.

Diện tích bề mặt API API ứng dụng RCS API IMS của nhà cung cấp Sự miêu tả
Cung cấp RCS Trình quản lý cấp phép ImsConfigImplBase Cho phép OEM hoặc nhà cung cấp dịch vụ cung cấp ứng dụng để cập nhật trạng thái cung cấp RCS nếu nhà cung cấp dịch vụ đó sử dụng cơ chế quyền được hưởng độc quyền của nhà cung cấp dịch vụ. ImsService cũng phải hỗ trợ AutoConfigurationServer (ACS) tiêu chuẩn để cung cấp cho các nhà cung cấp dịch vụ không sử dụng cơ chế độc quyền.
Chuyển tiếp tin nhắn SIP SipDelegateManager SipTransportImplBase Cho phép ứng dụng RCS trước tiên liên kết các thẻ tính năng RCS cụ thể với ImsService của thiết bị, sau đó gửi và nhận tin nhắn SIP cũng như các bản cập nhật đăng ký IMS được liên kết với các thẻ tính năng RCS đó.
Thông báo mang chuyên dụng Trình quản lý kết nối Dữ liệuCuộc gọiPhản hồi Cho phép ứng dụng nghe thông báo QoS trên ổ cắm được liên kết với một cổng cục bộ cụ thể.
Xác thực GBA bootstrapYêu cầu xác thực Dịch vụ Gba Cho phép ứng dụng RCS xác thực bằng mạng và các khóa truy cập được sử dụng cho các tính năng RCS như truyền tệp.
Trao đổi khả năng người dùng RCS ImsRcsTrình quản lý RcsCapabilityExchangeImplBase Cung cấp cho AOSP khả năng gửi các khả năng MMTEL và RCS của mình tới ImsService của nhà cung cấp để chúng có thể được xuất bản dưới một thực thể lên mạng để trao đổi khả năng của người dùng RCS. Đồng thời cho phép các ứng dụng khác quan tâm đến khả năng RCS của một hoặc nhiều liên hệ truy vấn mạng về các khả năng RCS của liên hệ.

Bảo mật và quyền

Android 12 giới thiệu các quyền sau để đảm bảo quyền truy cập an toàn vào mạng của nhà cung cấp dịch vụ và dữ liệu của người dùng:

Quyền android.permission.PERFORM_IMS_SINGLE_REGISTRATION phải được xác định bởi ứng dụng nhắn tin có tính năng RCS. Để được cấp quyền này, những điều sau đây phải đúng:

  • Ứng dụng phải được cài đặt dưới dạng ứng dụng đặc quyền, nghĩa là ứng dụng này được cài đặt sẵn trên thiết bị và được phép truy cập các quyền đặc quyền
  • Ứng dụng phải được đặt làm vai trò SMS mặc định của người dùng bằng RoleManager

Nếu cả hai điều kiện này không được đáp ứng thì ứng dụng sẽ bị từ chối quyền truy cập vào quyền android.permission.PERFORM_IMS_SINGLE_REGISTRATION . Điều này có nghĩa là các ứng dụng của bên thứ ba không được phép truy cập API đăng ký một lần RCS vì chúng yêu cầu chứng nhận của nhà cung cấp dịch vụ trên thiết bị.

Quyền android.permission.ACCESS_RCS_USER_CAPABILITY_EXCHANGE khi được cấp cho một ứng dụng cũng có quyền READ_CONTACTS sẽ cho phép ứng dụng đó yêu cầu khả năng RCS của số điện thoại bằng RcsUceAdapter . Để được cấp quyền này, những điều sau đây phải đúng:

  • Ứng dụng phải được cài đặt dưới dạng ứng dụng đặc quyền, nghĩa là ứng dụng này được cài đặt sẵn trên thiết bị và được phép truy cập các quyền đặc quyền.
  • Ứng dụng phải được xác định là một trong các vai trò RoleManager sau:

    • Ứng dụng nhắn tin mặc định: Do người dùng đặt.
    • Ứng dụng quay số mặc định: Do người dùng đặt.
    • Ứng dụng danh bạ mặc định: Một vai trò được giới thiệu trong Android 12 cho phép OEM xác định tên gói thông qua giá trị lớp phủ thiết bị config_systemContacts . Giá trị này phải tương ứng với ứng dụng danh bạ của thiết bị. Ứng dụng đó sau đó được trao vai trò liên hệ.

Để truy cập IMS APN bằng ConnectivityManager nhằm thiết lập và quản lý lưu lượng dữ liệu, các ứng dụng cũng phải yêu cầu quyền android.permission.CONNECTIVITY_USE_RESTRICTED_NETWORKS .

Ví dụ và nguồn

Android cung cấp một ứng dụng trong AOSP để triển khai một ứng dụng nhắn tin thử nghiệm có hỗ trợ nhắn tin RCS cơ bản cho mục đích thử nghiệm và phát triển. Bạn có thể tìm thấy ứng dụng tại testapps/TestRcsApp . Khi ứng dụng được cài đặt trên thiết bị, nó có thể được đặt làm ứng dụng nhắn tin mặc định của người dùng và sẽ có các quyền cần thiết để truy cập API đăng ký một lần IMS.

Android cũng cung cấp cách triển khai mẫu ImsService cho RCS. Mã nguồn có tại /testapps/ImsTestService .

Thực hiện

Để biết thêm chi tiết triển khai, hãy tải xuống Đăng ký một lần IMS trong Android .

Thẩm định

Để xác thực việc triển khai đăng ký IMS của bạn, hãy làm như sau:

  • Đảm bảo bộ thử nghiệm CtsTelephonyTestCases CTS vượt qua.
  • Cài đặt và chạy TestRcsApp để chạy các trường hợp kiểm thử đăng ký đơn cơ bản trong quá trình tích hợp.
  • Đạt chứng nhận của nhà cung cấp dịch vụ cho các trường hợp thử nghiệm đăng ký đơn IMS.