Android 12는 MMTEL 및 RCS 기능을 제공하기 위한 단일 등록 모델에 대한 지원을 도입합니다. 이 모델을 사용하면 장치의 ImsService에서 제공하는 단일 IMS 등록을 통해 모든 IMS 기능을 관리하고 일부 통신 사업자에서 도입한 요구 사항을 준수할 수 있습니다. 여러 IMS 등록이 하나의 장치에서 관리되는 이중 등록 모델과 비교하여 단일 등록은 통신 사업자 네트워크의 트래픽을 줄이고 안정성을 높입니다.
Android 12는 AOSP 전화 통신 스택이 ImsService에서 제공하는 ImsService
기능과 사용자가 선택한 RCS 메시징 앱에서 제공하는 RCS 기능을 모두 관리할 수 있도록 하는 API 세트가 있는 아키텍처를 통해 이 단일 등록 모델을 지원합니다. IMS 단일 등록을 지원하려면 장치 제조업체와 SoC 공급업체가 이러한 API를 구현하여 사용자가 선택한 RCS 메시징 앱에서 RCS 기능을 활성화해야 합니다.
그림 1은 IMS 단일 등록 모델을 사용할 때 장치의 IMS 스택을 보여줍니다. 모든 IMS 응용 프로그램은 단일 IMS 등록을 통해 MMTEL 및 RCS 기능에 대해 장치의 기본 ImsService를 사용합니다. 여기에는 프로비저닝, 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를 보여줍니다.
그림 3. IMS 단일 등록을 지원하는 상위 수준 API 표면
다음 표에 설명된 모든 AOSP API를 지원하려면 AOSP 전화 통신 스택의 일부로 IMS 단일 등록을 지원하는 Android 기기가 필요합니다.
API 노출 영역 | RCS 애플리케이션 API | 공급업체 IMS API | 설명 |
---|---|---|---|
RCS 프로비저닝 | 프로비저닝 관리자 | ImsConfigImplBase | 이동통신사가 독점 이동통신사 자격 메커니즘을 사용하는 경우 OEM 또는 이동통신사가 앱에서 RCS 프로비저닝 상태를 업데이트할 수 있도록 허용합니다. 또한 ImsService는 독점 메커니즘을 사용하지 않는 통신업체에 대한 프로비저닝을 위해 표준 ACS(AutoConfigurationServer)를 지원해야 합니다. |
SIP 메시지 전달 | SipDelegateManager | SipTransportImplBase | RCS 응용 프로그램이 먼저 특정 RCS 기능 태그를 장치 ImsService 와 연결한 다음 이러한 RCS 기능 태그와 연결된 SIP 메시지 및 IMS 등록 업데이트를 보내고 받을 수 있습니다. |
전용 무기명 알림 | 연결 관리자 | 데이터 호출 응답 | 앱이 특정 로컬 포트와 연결된 소켓에서 QoS 알림을 수신하도록 허용합니다. |
GBA 인증 | 부트스트랩인증요청 | Gba서비스 | RCS 앱이 파일 전송과 같은 RCS 기능에 사용되는 네트워크 및 액세스 키로 인증할 수 있도록 허용합니다. |
RCS 사용자 기능 교환 | ImsRcsManager | RcsCapabilityExchangeImplBase | AOSP에 MMTEL 및 RCS 기능을 공급업체 ImsService에 보내는 기능을 제공하여 RCS 사용자 기능 교환을 위해 네트워크에 한 엔터티에서 게시할 수 있도록 합니다. 또한 하나 이상의 연락처의 RCS 기능에 관심이 있는 다른 앱이 연락처 RCS 기능에 대해 네트워크를 쿼리할 수 있도록 합니다. |
보안 및 권한
Android 12에는 이동통신사 네트워크 및 사용자 데이터에 대한 보안 액세스를 보장하기 위해 다음 권한이 도입되었습니다.
-
android.permission.PERFORM_IMS_SINGLE_REGISTRATION
-
android.permission.ACCESS_RCS_USER_CAPABILITY_EXCHANGE
android.permission.PERFORM_IMS_SINGLE_REGISTRATION
권한은 RCS 기능이 있는 메시징 앱에서 정의해야 합니다. 이 권한이 부여되려면 다음이 충족되어야 합니다.
- 앱은 권한 있는 응용 프로그램으로 설치되어야 합니다. 즉, 장치에 사전 설치되어 있고 권한 있는 권한에 액세스할 수 있습니다.
- 앱은
RoleManager
를 사용하여 사용자의 기본 SMS 역할로 설정되어야 합니다.
이 두 조건이 모두 충족되지 않으면 앱에서 android.permission.PERFORM_IMS_SINGLE_REGISTRATION
권한에 대한 액세스가 거부됩니다. 즉, 타사 앱은 기기에서 이동통신사 인증이 필요하므로 RCS 단일 등록 API에 액세스할 수 없습니다.
READ_CONTACTS 권한도 있는 앱에 android.permission.ACCESS_RCS_USER_CAPABILITY_EXCHANGE
권한을 부여하면 앱이 RcsUceAdapter
를 사용하여 전화번호의 RCS 기능을 요청할 수 있습니다. 이 권한이 부여되려면 다음이 충족되어야 합니다.
- 앱은 권한 있는 응용 프로그램으로 설치되어야 합니다. 즉, 장치에 사전 설치되어 있고 권한 있는 권한에 액세스할 수 있습니다.
앱은 다음
RoleManager
역할 중 하나로 정의되어야 합니다.- 기본 메시징 앱: 사용자가 설정합니다.
- 기본 다이얼러 앱: 사용자가 설정합니다.
- 기본 연락처 앱: OEM이 기기의 연락처 앱에 해당해야 하는 기기 오버레이 값
config_systemContacts
를 통해 패키지 이름을 정의할 수 있도록 하는 Android 12에 도입된 역할입니다. 그런 다음 해당 앱에 연락처 역할이 부여됩니다.
ConnectivityManager
를 사용하여 IMS APN에 액세스하여 데이터 트래픽을 설정하고 관리하려면 앱에서 android.permission.CONNECTIVITY_USE_RESTRICTED_NETWORKS
권한도 요청해야 합니다.
예제 및 소스
Android는 테스트 및 개발 목적으로 기본 RCS 메시징 지원과 함께 테스트 메시징 앱을 구현하는 AOSP의 앱을 제공합니다. testapps/TestRcsApp
에서 앱을 찾을 수 있습니다. 앱이 장치에 설치되면 사용자의 기본 메시징 앱으로 설정할 수 있으며 IMS 단일 등록 API에 액세스하는 데 필요한 권한을 갖게 됩니다.
Android는 또한 RCS용 ImsService의 샘플 구현을 제공합니다. 소스 코드는 /testapps/ImsTestService
에 있습니다.
구현
구현에 대한 자세한 내용 은 Android에서 IMS 단일 등록을 다운로드하십시오.
확인
IMS 단일 등록 구현을 검증하려면 다음을 수행하십시오.
- CtsTelephonyTestCases CTS 테스트 제품군이 통과하는지 확인합니다.
- 통합하는 동안 기본 단일 등록 테스트 사례를 실행하려면 TestRcsApp 을 설치하고 실행합니다.
- IMS 단일 등록 테스트 케이스에 대한 운송업체 인증을 통과하십시오.