IMS 서비스 사용 권한

Android 12부터는 Wi-Fi 음성 통화(VoWiFi), LTE 음성 통화(VoLTE), SMS over IP(SMSoIP), (요청 기기와 관련된) eSIM 호환 기기의 기기 내 서비스 활성화(ODSA), 데이터 요금제 정보를 포함하여 서비스 활성화를 위한 사용 권한 확인 단계를 정의하는 GSMA 사양인 TS.43 서비스 사용 권한 구성이 지원됩니다.

이 사양을 지원하기 위해 Android는 서비스 제공업체에서 IP 멀티미디어 하위 시스템(IMS) 네트워크 서비스의 상태를 휴대기기에 알릴 수 있는 IMS 서비스 사용 권한 기능을 제공합니다. 이 사용 권한 기능을 사용하면 기기에서 사용자에게 사용자 인증 정보를 직접 입력하도록 요구하지 않고 EAP-AKA 인증을 사용하여 IMS 사용 권한 상태에 관해 GSMA TS.43 사양에 정의된 대로 이동통신사 사용 권한 서버를 쿼리할 수 있습니다.

IMS 사용 권한 서버가 있는 이동통신사는 서비스 프로비저닝을 위해 IMS 서비스 사용 권한 기능을 사용할 수 있습니다. 이 기능을 채택하면 다음과 같은 이점이 있습니다.

  • 이 사용 권한 기능을 여러 제품 및 OEM에서 사용할 수 있으므로 이동통신사의 테스트 및 인증 비용을 절감합니다.
  • 표준 Android 앱을 통해 기기 제조업체의 개발 오버헤드를 줄입니다.
  • 이 기능은 오픈소스이므로 기기 제조업체와 이동통신사가 기능 코드에 기여할 수 있습니다.
  • 북미 이동통신사에게 긴급 주소 관리를 제공합니다.

아키텍처

다음 그림은 IMS 서비스 사용 권한 기능의 아키텍처와 동작을 보여줍니다.

TS.43 사용 권한 기능

그림 1. TS.43 사용 권한 기능 아키텍처

그림 1과 같이 IMS 서비스 사용 권한 기능의 아키텍처에는 다음 구성요소가 포함됩니다.

  • service_entitlement TS.43 Service API 정적 라이브러리: 이 라이브러리는 TS.43 사양을 구현하고, 이동통신사의 사용 권한 서버와 상호작용하고, 각 TS.43 사용 사례를 위한 앱 지향 API를 노출합니다.
  • ImsServiceEntitlement 클라이언트 앱: 이 앱은 TS.43 Service API를 사용합니다. 이 앱은 사용자가 서비스를 활성화할 수 있는 이동통신사 서비스 포털을 렌더링하기 위한 WebView를 비롯한 UI 요소를 구현하고 다른 Android 구성요소와 상호작용하여 사용자 환경을 포괄적으로 관리합니다.

    이동통신사의 TS.43 기반 사용 권한 서버와 호환되도록 Android를 구성하는 방법을 자세히 알아보려면 ImsServiceEntitlement 앱을 참고하세요.

그림 1에서 번호가 매겨진 선은 IMS 서비스 사용 권한 기능의 구성요소가 서로 통신하는 방식을 보여줍니다. 라벨이 지정된 각 단계는 다음과 같습니다.

(1) 클라이언트 앱이 TS.43 Service API를 호출하여 서비스 사용 권한 요청을 시작합니다.

(2) TS.43 Service API가 이동통신사의 사용 권한 서버에 HTTP 요청을 전송하여 EAP-AKA 자격 확인을 시작합니다.

(3) TS.43 Service API가 전화 통신 API(예: getIccAuthentication)를 호출하여 EAP-AKA 자격 확인-응답을 완료합니다.

(4) EAP-AKA 응답이 확인된 후에 TS.43 서비스가 이동통신사의 사용 권한 서버에서 서비스 사용 권한 또는 구성 데이터를 수신합니다.

(5) TS.43 서비스가 서비스 사용 권한 또는 구성 데이터를 클라이언트 앱에 반환합니다.

(6) 클라이언트 앱이 데이터를 처리하고 선택적으로 사용자가 서비스 활성화를 완료할 수 있도록 이동통신사 서비스 포털을 렌더링합니다.

통합

이 섹션에서는 service_entitlement 라이브러리와 ImsServiceEntitlement 앱을 통합하는 프로세스를 설명합니다.

Android 12 API 종속 항목이 없으므로 service_entitlement 라이브러리와 ImsServiceEntitlement 앱을 이전 Android 플랫폼에 백포팅할 수 있습니다.

service_entitlement 라이브러리

service_entitlement 라이브러리는 ImsServiceEntitlement app에 정적으로 연결되므로 이 라이브러리를 ImsServiceEntitlement 앱에 통합하기 위한 추가 단계가 필요하지 않습니다.

데이터 요금제 및 ODSA와 같은 TS.43 사용 사례를 위해 service_entitlement 라이브러리를 자체 앱과 통합할 수 있습니다. 또한 EAP-AKA 프로토콜에 따라 TS.43 사용 권한 이외의 사용 사례에 맞게 라이브러리를 앱에 통합할 수 있습니다.

다음은 이러한 사용 사례에 사용할 API를 설명합니다.

  • 라이브러리에 구현된 TS.43 HTTP 프로토콜을 사용하는 TS.43 앱: ServiceEntitlement 클래스의 API 사용
  • 라이브러리에 구현된 EAP-AKA 프로토콜을 사용하는 TS.43 이외의 앱: EapAkaHelper 클래스에 노출된 API 사용

ImsServiceEntitlement 앱

기본적으로 Android에는 권한 있는 앱으로서 제품 파티션에 설치된 ImsServiceEntitlement 앱이 포함됩니다. 앱을 구성하려면 다음 CarrierConfig 키를 사용합니다.

KEY_ENTITLEMENT_SERVER_URL_STRING 이동통신사의 사용 권한 서버 URL입니다. https:// 프리픽스를 포함해야 합니다.
KEY_FCM_SENDER_ID_STRING 이동통신사의 FCM 발신자 ID입니다.

이동통신사에서 FCM을 요구하지 않는 경우에는 이 값을 설정하지 않습니다.
KEY_SHOW_VOWIFI_WEBVIEW_BOOL 사용자가 VoWiFi 서비스에 가입할 수 있도록 이동통신사에서 웹 포털 UI를 요구하는 경우 true로 설정합니다. 예를 들어 이용약관에 동의하거나 긴급 주소를 입력하는 경우입니다.

일반적으로 북미 지역의 이동통신사에서 요구합니다.
KEY_WFC_EMERGENCY_ADDRESS_CARRIER_APP_STRING
KEY_SHOW_VOWIFI_WEBVIEW_BOOLtrue이면 com.android.imsserviceentitlement/.WfcActivationActivity로 설정합니다.
KEY_IMS_PROVISIONING_BOOL 이동통신사가 IMS(VoLTE/VoWiFi/SMSoIP) 서비스에 관해 백그라운드 네트워크 프로비저닝을 요구하는 경우 true로 설정합니다.

일부 유럽 이동통신사에서 요구합니다.
KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL KEY_IMS_PROVISIONING_BOOLtrue이면 true로 설정합니다.

이동통신사의 사용 권한 서버 및 웹 포털로 가는 HTTP 트래픽은 기본 네트워크(예: 기본 모바일 데이터 또는 Wi-Fi)를 통해 이동합니다.

GMS 파트너: Android 12의 TS.43 사용 권한 앱에서는 TS.43 v5.0 사양에 따라 다음 이동통신사가 지원됩니다.

  • 미국: CSpire, US Cellular, Cellcom
  • 프랑스: Orange

IMS 프로비저닝을 위한 추가 시스템 UI

이 섹션에서는 OEM이 IMS 서비스 프로비저닝과 관련하여 추가 시스템 UI 요소를 지원하는 방법을 설명합니다(예: VoWiFi 프로비저닝 시 알림 표시).

ImsServiceEntitlement 앱은 ProvisioningManager.setProvisioningIntValue(KEY_VOICE_OVER_WIFI_ENABLED_OVERRIDE, value) 시스템 API를 사용하여 VoWiFi 프로비저닝 상태를 플랫폼으로 설정합니다. 이 API는 VoLTE(KEY_VOLTE_PROVISIONING_STATUS 사용) 및 SMSoIP(KEY_SMS_OVER_IP_ENABLED 사용)에도 사용됩니다.

그러면 시스템 UI가 getProvisioningIntValue를 사용하거나 registerProvisioningChangedCallback을 통해 프로비저닝 상태 변경을 모니터링하는 콜백을 등록하여 프로비저닝 상태를 읽을 수 있습니다.

테스트를 위해 구성 재정의

테스트 목적으로 ImsServiceEntitlement 앱 동작을 일시적으로 변경하려면 다음 절차를 따르세요. 이동통신사 구성을 재정의하는 방법에 관해 자세히 알아보려면 이동통신사 구성 재정의를 참고하세요.

VoWiFi 등록 프로세스 건너뛰기

VoWiFi 등록 프로세스를 건너뛰어 VoWiFi가 곧바로 사용 설정되게 하려면 이동통신사의 구성 KEY_WFC_EMERGENCY_ADDRESS_CARRIER_APP_STRING을 재정의하고 값을 빈 문자열로 설정합니다.

IMS 프로비저닝 건너뛰기

IMS 프로비저닝을 건너뛰어 IMS 서비스를 사용 가능하게 하고 사용자가 네트워크 프로비저닝 없이 이러한 서비스를 사용 설정할 수 있게 하려면 이동통신사 구성 KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL을 재정의하고 값을 false로 설정합니다.

사용 권한 서버 URL 변경

사용 권한 서버 URL을 변경하려면 이동통신사 구성 KEY_ENTITLEMENT_SERVER_URL_STRING을 재정의하고 값을 예상 URL 문자열로 설정합니다. https:// 프리픽스를 포함해야 합니다.

이동통신사 구성 재정의

Android 11부터 이동통신사 구성 재정의 명령어가 내장되어 있으며 루트 권한으로 사용할 수 있습니다.

다음 명령어는 이동통신사 구성 키 carrier_volte_provisioning_required_bool을 재정의하고 값을 false로 설정하는 방법의 예입니다. 명령어를 여러 번 실행하여 여러 구성을 재정의할 수 있습니다.

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

재정의를 모두 삭제하려면 다음 명령어를 사용합니다.

adb shell cmd phone cc clear-values

자세한 정보를 얻으려면 다음 명령어를 실행합니다.

adb shell cmd phone cc