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

Android 12 ra mắt tính năng hỗ trợ một 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 tất cả các tính năng IMS được quản lý thông qua một lượ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 lượt đăng ký IMS được quản lý trên một thiết bị, việc đăng ký một lần sẽ làm giảm lưu lượng truy cập trên mạng của nhà mạng và tăng độ tin cậy.

Android 12 hỗ trợ mô hình đăng ký một lần này thông qua một cấu trúc có một nhóm API cho phép ngăn xếp điện thoại AOSP quản lý cả các tính năng MMTEL do ImsService cung cấp và các 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 để bậ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 hoạ ngăn xếp IMS của thiết bị khi sử dụng mô hình đăng ký IMS đơn. Tất 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 thông qua một lượt đăng ký IMS duy nhất. Bao gồm cả việc cấp phép, chuyển tiếp tin nhắn SIP và trao đổi chức năng của người dùng RCS.

Cấu trúc chế độ đăng ký đơn

Hình 1. Cấu 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 do ImsService của thiết bị cung cấp và các tính năng RCS được triển khai trên cùng, đồng thời quản lý ngăn xếp IMS và kết nối với mạng của nhà mạng một cách độc lập.

Hình 2 minh hoạ cấu 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à mạng 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à mạng và hoạt động độc lập với các ứng dụng RCS khác.

cấu trúc chế độ đăng ký kép

Hình 2. Cấu trúc mô hình đăng ký kép

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

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

Các nền tảng API hỗ trợ đăng ký IMS một lần

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

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

Mặt bằng API API ứng dụng RCS API IMS của nhà cung cấp Mô tả
Cấp phép RCS Cấp quyền quản lý ImsConfigImplBase Cho phép nhà sản xuất thiết bị gốc (OEM) hoặc nhà mạng cung cấp một ứng dụng để cập nhật trạng thái cấp phép RCS nếu nhà mạng sử dụng cơ chế cấp quyền độc quyền của nhà mạng. ImsService cũng phải hỗ trợ AutoConfigurationServer (ACS) tiêu chuẩn để cấp phép cho các nhà mạng không sử dụng cơ chế độc quyền.
Chuyển tiếp thông báo SIP SipDelegateManager SipTransportImplBase Trước tiên, cho phép ứng dụng RCS 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ư thông tin cập nhật về việc đăng ký IMS liên kết với các thẻ tính năng RCS đó.
Thông báo chuyên dụng liên quan đến gấu trúc ConnectivityManager DataCallResponse Cho phép ứng dụng nghe thông báo QoS trên một ổ cắm được liên kết với một cổng cục bộ cụ thể.
Xác thực GBA khởi động xác thực thông tin xác thực của yêu cầu GbaService Cho phép ứng dụng RCS xác thực bằng mạng và khoá truy cập dùng cho các tính năng RCS như chuyển tệp.
Trao đổi chức năng của người dùng RCS ImsRcsManager RcsCapabilityExchangeImplBase Cung cấp cho AOSP (Dự án nguồn mở Android) khả năng gửi các chức năng MMTEL và RCS cho nhà cung cấp ImsService để các chức năng này có thể được xuất bản theo một thực thể lên mạng nhằm trao đổi chức năng của người dùng RCS. Ngoài ra, cho phép các ứng dụng khác quan tâm đến tính năng RCS của một hoặc nhiều người liên hệ truy vấn mạng về tính năng RCS của người liên hệ.

Tính bảo mật và quyền truy cập

Android 12 đưa ra các quyền sau đây để đảm bảo truy cập an toàn vào mạng của nhà mạng và dữ liệu của người dùng:

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

  • Ứ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 được cài đặt sẵn trên thiết bị và được phép truy cập vào các quyền đặc quyền
  • Bạn phải đặt ứng dụng làm vai trò mặc định của người dùng qua SMS bằng cách sử dụng RoleManager

Nếu không đáp ứng cả hai điều kiện này, ứ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 bên thứ ba không được phép truy cập vào API đăng ký một lần RCS vì các ứng dụng này yêu cầu chứng nhận của nhà mạng 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 cho phép ứng dụng yêu cầu các tính năng RCS của số điện thoại bằng cách sử dụng RcsUceAdapter. Để được cấp quyền này, bạn phải đáp ứng những yêu cầu sau:

  • Ứ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 được cài đặt sẵn trên thiết bị và được phép truy cập vào 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ò ra mắt 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, phải tương ứng với ứng dụng danh bạ của thiết bị. Sau đó, ứng dụng đó sẽ được cấp vai trò danh bạ.

Để truy cập vào APN IMS bằng ConnectivityManager nhằm thiết lập và quản lý lưu lượng dữ liệu, ứ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 ứ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 này tại testapps/TestRcsApp. Khi được cài đặt trên thiết bị, ứng dụng 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 vào API đăng ký một lần của IMS.

Android cũng cung cấp một cách triển khai mẫu của ImsService cho RCS. Mã nguồn nằm ở /testapps/ImsTestService.

Triển khai

Để biết thêm thông tin về việc triển khai, hãy tải xuống Đăng ký một lần IMS trong Android.

Xác nhận kết quả

Để xác thực quá trình triển khai hoạt động đăng ký một lần của IMS, hãy làm như sau:

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