IMS單一註冊

Android 12 引入了對單一註冊模型的支持,以提供 MMTEL 和 RCS 功能。此模型允許設備通過設備的 ImsService 提供的單個 IMS 註冊管理所有 IMS 功能,並符合某些電信運營商引入的要求。與在一台設備上管理多個 IMS 註冊的雙重註冊模型相比,單一註冊減少了運營商網絡上的流量並提高了可靠性。

機器人12支持通過與一組API,允許AOSP電話協議棧來管理MMTEL的架構此單個註冊模型由提供的特徵ImsService和RCS由用戶選擇的RCS消息傳遞應用程序提供的功能。為了支持 IMS 單一註冊,設備製造商和 SoC 供應商必須實施這些 API 以在用戶選擇的 RCS 消息傳遞應用程序中啟用 RCS 功能。

圖 1 說明了使用 IMS 單一註冊模型時設備的 IMS 堆棧。所有 IMS 應用程序都通過單個 IMS 註冊使用設備的默認 ImsService 來實現 MMTEL 和 RCS 功能。這包括供應、SIP 消息轉發和 RCS 用戶能力交換。

單一註冊模式架構

圖1.單登記模型架構

Android 11 及更低版本僅支持提供 MMTEL 和 RCS 功能的雙重註冊模型,其中 MMTEL 由設備的 ImsService 提供,RCS 功能在頂部實現,並獨立管理自己的 IMS 堆棧和與運營商網絡的連接。

圖 2 說明了雙重註冊模型的架構。在此模型中,每個應用程序負責連接到運營商的網絡並為 MMTEL 和 RCS 功能建立 IMS 註冊。設備的 ImsService 實現 MMTEL,使用設備的 IMS 數據連接到運營商網絡,並且獨立於其他 RCS 應用程序運行。

雙註冊模式架構

圖2.雙登記模型架構

IMS 單一註冊 API

其範圍在需要IMS單一註冊必須支持IMS一次登記API和定義的Android功能載體設備PackageManager#FEATURE_TELEPHONY_IMS_SINGLE_REGISTRATION 。圖 3 顯示了支持 IMS 單一註冊的 API。

支持 IMS 單一註冊的 API 表面

圖3.高級別API面的支持IMS註冊單

支持 IMS 單一註冊作為 AOSP 電話堆棧一部分的 Android 設備需要支持下表中描述的所有 AOSP API。

API 表面積RCS 應用程序 API供應商 IMS API描述
RCS 配置供應管理器ImsConfigImplBase如果運營商使用專有運營商權利機制,則允許 OEM 或運營商提供應用程序來更新 RCS 配置狀態。 ImsService 還必須支持標準的 AutoConfigurationServer (ACS),以便為不使用專有機制的運營商進行配置。
SIP 消息轉發代理管理器SipTransportImplBase允許RCS應用到第一副特定RCS設有與該裝置的標籤ImsService ,然後發送和接收與這些RCS特徵標籤相關聯的SIP消息和IMS註冊的更新。
專用承載通知連接管理器數據調用響應允許應用偵聽與特定本地端口關聯的套接字上的 QoS 通知。
GBA認證引導驗證請求服務允許 RCS 應用程序通過網絡和用於 RCS 功能(例如文件傳輸)的訪問密鑰進行身份驗證。
RCS用戶能力交換管理器RcsCapabilityExchangeImplBase使 AOSP 能夠將其 MMTEL 和 RCS 功能發送給供應商 ImsService,以便它們可以在一個實體下發佈到網絡以進行 RCS 用戶功能交換。還允許對一個或多個聯繫人的 RCS 功能感興趣的其他應用程序查詢網絡以獲取聯繫人 RCS 功能。

安全和權限

Android 12 引入了以下權限,以確保對運營商網絡和用戶數據的安全訪問:

android.permission.PERFORM_IMS_SINGLE_REGISTRATION許可的,必須通過與RCS功能短信應用來定義。要授予此權限,必須滿足以下條件:

  • 該應用程序必須作為特權應用程序安裝,這意味著它已預裝在設備上並被允許訪問特權權限
  • 該應用程序必須設置為使用用戶的默認短信角色RoleManager

如果這兩個條件都不滿足,應用程序被拒絕訪問android.permission.PERFORM_IMS_SINGLE_REGISTRATION許可。這意味著不允許第三方應用訪問 RCS 單一註冊 API,因為它們需要設備上的運營商認證。

android.permission.ACCESS_RCS_USER_CAPABILITY_EXCHANGE當授予一個應用程序,也有READ_CONTACTS許可權限允許該應用請求使用電話號碼的RCS能力RcsUceAdapter 。要授予此權限,必須滿足以下條件:

  • 該應用程序必須作為特權應用程序安裝,這意味著它已預安裝在設備上並被允許訪問特權權限。
  • 應用程序必須被定義為以下之一RoleManager角色:

    • 默認消息應用程序:由用戶設置。
    • 默認撥號應用程序:由用戶設置。
    • 默認聯繫人應用程序:在12的Android引入的作用,其允許OEM通過定義一個包的名稱設備覆蓋值config_systemContacts ,必須對應於設備的聯繫人應用程序。然後該應用程序被賦予聯繫人角色。

要使用訪問IMS APN ConnectivityManager建立和管理數據流量,應用程序也必須要求android.permission.CONNECTIVITY_USE_RESTRICTED_NETWORKS許可。

示例和來源

Android 在 AOSP 中提供了一個應用程序,該應用程序實現了具有基本 RCS 消息傳遞支持的測試消息傳遞應用程序,用於測試和開發目的。您可以在應用程序testapps/TestRcsApp 。當應用程序安裝在設備上時,它可以被設置為用戶的默認消息應用程序,並擁有訪問 IMS 單一註冊 API 所需的權限。

Android 還為 RCS 提供了 ImsService 的示例實現。源代碼是在/testapps/ImsTestService

執行

欲了解更多實施細節,下載IMS單登記的Android

驗證

要驗證 IMS 單一註冊的實施,請執行以下操作:

  • 確保CtsTelephonyTestCases CTS測試套件通行證。
  • 安裝並運行TestRcsApp整合過程中運行基本單一註冊測試用例。
  • 通過IMS單註冊測試用例的運營商認證。