5G 네트워크 슬라이싱

Android 12 이상을 실행하는 기기에서 Android는 5G 네트워크 슬라이싱을 지원합니다. 즉, 네트워크 가상화를 사용하여 단일 네트워크 연결을 여러 개의 고유한 가상 연결로 나눠 서로 다른 양의 리소스를 다양한 유형의 트래픽에 제공하도록 합니다. 5G 네트워크 슬라이싱을 사용하면 네트워크 운영자가 특정 고객 세그먼트를 위해 특정 기능을 제공하도록 네트워크 일부를 전담 배치할 수 있습니다. Android 12에서는 네트워크 운영자가 엔터프라이즈 클라이언트에 제공할 수 있는 다음과 같은 5G 엔터프라이즈 네트워크 슬라이싱 기능을 도입했습니다.

완전 관리형 기기를 위한 엔터프라이즈 기기 슬라이싱

직원에게 완전 관리형 회사 기기를 제공하는 기업의 경우 네트워크 제공업체는 회사 기기의 트래픽이 라우팅되는 하나 이상의 활성 엔터프라이즈 네트워크 슬라이스를 제공할 수 있습니다. Android 12부터는 이동통신사가 APN을 통해 슬라이스를 설정하는 대신 URSP 규칙을 통해 엔터프라이즈 슬라이스를 제공할 수 있습니다.

직장 프로필이 지원되는 기기를 위한 엔터프라이즈 비즈니스 앱 슬라이싱

직장 프로필 솔루션을 사용하는 기업의 경우 Android 12 기기가 직장 프로필의 모든 앱에서 엔터프라이즈 네트워크 슬라이스로 트래픽을 라우팅할 수 있습니다. 기업은 기기 정책 컨트롤러(DPC)를 통해 이 기능을 사용 설정할 수 있습니다.

직장 프로필 솔루션은 기업이 직장 프로필의 엔터프라이즈 앱에서 발생한 트래픽만 엔터프라이즈 네트워크 슬라이스로 라우팅되도록 하는 데 필요한 자동 수준의 인증 및 액세스 제어를 제공합니다. 직장 프로필의 앱은 엔터프라이즈 네트워크 슬라이스를 명시적으로 요청하도록 수정할 필요가 없습니다.

AOSP에서 5G 네트워크 슬라이싱이 작동하는 방식

Android 12에서는 AOSP 및 테더링 모듈의 전화 통신 코드베이스에 5G 네트워크 슬라이싱 지원을 추가했으며, 이를 통해 네트워크 슬라이싱에 필요한 기존 연결 API를 통합했습니다.

Android 전화 통신 플랫폼은 HAL 및 전화 통신 API를 제공하여, 해당 모뎀에서 핵심 네트워킹 코드 및 5G 슬라이싱 기능이 제출하는 네트워크 요청을 기반으로 슬라이싱을 지원합니다. 그림 1은 5G 네트워크 슬라이싱 기능의 구성요소를 보여줍니다.

5G 네트워크 슬라이싱 구성요소

그림 1. AOSP의 5G 네트워크 슬라이싱 아키텍처

전화 통신 및 연결 플랫폼은 다음을 지원합니다.

  • 네트워크의 슬라이스 카테고리 요청을 트래픽 설명자로 변환한 다음 URSP 트래픽 매칭 및 경로 선택을 위해 모뎀에 전달
  • 엔터프라이즈 네트워크 슬라이스를 사용할 수 없는 경우 기본 네트워크로 대체
  • 직장 프로필의 모든 앱에서 발생한 트래픽을 상응하는 연결로 라우팅
  • 엔터프라이즈 슬라이싱 지원

    • 기기에서 직장 프로필 존재 감지
    • 기업의 IT 관리자가 사용하는 DPC에서 제공하는 권한 또는 라우팅 경로 확인

Android 12의 핵심 네트워킹 서비스는 테더링 모듈이 다음과 같이 변경되었습니다.

  • android.net.* 공개 API 또는 시스템 API 클래스의 대부분을 테더링 모듈에 추가
  • 테더링 모듈 경계를 확장하여 다음을 포함합니다.

    • f/b/core/java/android/net/…
    • f/b/services/net/…
    • f/b/services/core/java/com/android/server/connectivity/…
    • f/b/services/core/java/com/android/server/ConnectivityService.java
    • f/b/services/core/java/com/android/server/TestNetworkService.java
  • 테더링 모듈 외부로 VPN 코드 이동

Android 12에서는 다음 기능이 있는 코드를 테더링 모듈로 이동했습니다.

  • 앱의 네트워크 연결 요청 수신
  • 시스템에서 요청 수신(예: Android 12에 도입된 '엔터프라이즈 슬라이스에 이러한 앱 배치')
  • HAL API 및 모뎀을 거쳐 네트워크 또는 슬라이스를 설정하는 요청을 시스템에서 전화 통신 코드로 전송
  • 앱별로 트래픽을 라우팅하는 방법을 netd에 알림(Android 12에서 도입됨)
  • NetworkCallback, getActiveNetwork, getNetworkCapabilities 등의 ConnectivityManager API를 통해 네트워크 트래픽에 발생하는 상황을 앱에 알림

구현

기기에서 5G 슬라이싱을 지원하려면 setupDataCall_1_6 API가 있는 IRadio 1.6 HAL을 지원하는 모뎀이 기기에 있어야 합니다. 이 API는 데이터 연결을 설정하며 5G 슬라이싱을 지원하기 위해 다음 매개변수를 포함합니다.

  • trafficDescriptor: 모뎀에 전송된 트래픽 설명자를 지정합니다.
  • sliceInfo: EPDG에서 5G로 핸드오버하는 경우 사용할 네트워크 슬라이스의 정보를 지정합니다.
  • matchAllRuleAllowed: 기본 모두 일치 URSP 규칙을 사용할 수 있는지 여부를 지정합니다. 전화 통신은 기본 네트워크의 경우 이를 true로 설정하지만 슬라이스의 경우에는 true로 설정하지 않습니다. 모두 일치 규칙은 기본 네트워크에 적용됩니다. 애플리케이션이 사용할 수 없는 특정 슬라이스를 요청하면 해당 슬라이스는 사용할 수 없는 것으로 보고됩니다. 엔터프라이즈 앱의 경우 엔터프라이즈 네트워크를 사용할 수 없으면 텔레포니 프레임워크가 기본 네트워크를 대체할 수 있습니다.

모뎀은 getHalDeviceCapabilities API에서 지원하지 않는 것으로 보고되지 않은 한 getSlicingConfig API도 구현해야 합니다.

엔터프라이즈 요구사항

다음은 Android Enterprise 배포의 기기에서 5G 네트워크 슬라이싱을 사용하기 위한 기업의 요구사항을 설명합니다.

  • 직장 프로필로 설정된 완전 관리형 기기나 직원 기기가 setupDataCall_1_6 API를 지원하는 모뎀과 함께 5G SA를 사용할 수 있게 합니다.
  • 슬라이스 설정 및 성능 또는 SLA 특성에 관해서는 이동통신사 파트너와 협력합니다.

직장 프로필로 설정된 기기에서 5G 슬라이싱 사용 설정

직장 프로필로 설정된 기기의 경우 AOSP에서 5G 네트워크 슬라이싱이 기본적으로 사용 중지됩니다. 네트워크 슬라이싱을 사용 설정하려면 기업의 IT 관리자가 DevicePolicyManager(DPM) API(Android 12에 도입)의 setPreferentialNetworkServiceEnabled 메서드를 사용하는 EMM DPC를 통해 직원별로 직장 프로필 앱 트래픽을 엔터프라이즈 네트워크 슬라이스로 라우팅하는 작업을 사용 설정하거나 사용 중지하면 됩니다.

맞춤 DPC가 있는 EMM 공급업체는 엔터프라이즈 클라이언트를 지원하도록 DevicePolicyManager API를 통합해야 합니다.

URSP 규칙

이 섹션에는 엔터프라이즈, CBS, 짧은 지연 시간, 높은 대역폭 트래픽을 비롯한 다양한 슬라이스 카테고리에 관한 URSP 규칙의 구성 방법과 관련한 이동통신사용 정보가 포함되어 있습니다. 서로 다른 슬라이스 카테고리에 URSP 규칙을 구성할 때 이동통신사는 다음과 같은 Android 관련 값을 사용해야 합니다.

ID 설명
OSId 97a498e3-fc92-5c94-8986-0333d06e4e47 Android의 OSId는 네임스페이스 ISO OID와 이름 'Android'를 사용하여 생성된 버전 5 UUID입니다.

이동통신사는 트래픽 설명자 구성요소를 'OS ID + OS 앱 ID 유형'으로 하여 각 슬라이스 트래픽의 URSP 규칙을 구성해야 합니다. 예를 들어 'ENTERPRISE' 슬라이스의 값은 0x97A498E3FC925C9489860333D06E4E470A454E5445525052495345여야 합니다. 이는 OSId, OSAppId의 길이(0x0A), OSAppId를 연결한 값입니다. 트래픽 설명자 구성요소 유형에 관한 자세한 내용은 3GPP TS 24.526 표 5.2.1을 참고하세요.

다음 표에서는 서로 다른 슬라이스 카테고리의 OSAppId 값을 설명합니다.

슬라이스 카테고리 OSAppId 설명
ENTERPRISE 0x454E5445525052495345 OSAppId는 문자열 'ENTERPRISE'의 바이트 배열 표현입니다.
ENTERPRISE2 0x454E544552505249534532 OSAppId는 문자열 'ENTERPRISE2'의 바이트 배열 표현입니다.
ENTERPRISE3 0x454E544552505249534533 OSAppId는 문자열 'ENTERPRISE3'의 바이트 배열 표현입니다.
ENTERPRISE4 0x454E544552505249534534 OSAppId는 문자열 'ENTERPRISE4'의 바이트 배열 표현입니다.
ENTERPRISE5 0x454E544552505249534535 OSAppId는 문자열 'ENTERPRISE5'의 바이트 배열 표현입니다.
CBS 0x434253 OSAppId는 문자열 'CBS'의 바이트 배열 표현입니다.
PRIORITIZE_LATENCY 0x5052494f524954495a455f4c4154454e4359 OSAppId는 문자열 'PRIORITIZE_LATENCY'의 바이트 배열 표현입니다.
PRIORITIZE_BANDWIDTH 0x5052494f524954495a455f42414e445749445448 OSAppId는 문자열 'PRIORITIZE_BANDWIDTH'의 바이트 배열 표현입니다.

URSP 규칙 예

다음 표에서는 엔터프라이즈, CBS, 짧은 지연 시간, 높은 대역폭, 기본 트래픽에 관한 URSP 규칙의 예를 보여줍니다.

엔터프라이즈 1

엔터프라이즈 1 지원은 Android 12 이상에서 제공됩니다. 다음은 ENTERPRISE1 트래픽에 관한 URSP 규칙의 예입니다.

URSP 규칙 #1(enterprise1)
우선 적용 1 (0x01)
트래픽 설명자 #1
OS ID + OS 앱 ID 유형 0x97A498E3FC925C9489860333D06E4E470A454E5445525052495345
경로 선택 설명자 #1
우선 적용 1 (0x01)
구성요소 #1: S-NSSAI SST:XX SD:YYYYYY
구성요소 #2: DNN 엔터프라이즈
경로 선택 설명자 #2
우선 적용 2 (0x02)
구성요소 #1: DNN 엔터프라이즈

엔터프라이즈 2

엔터프라이즈 2 지원은 Android 13 이상에서 제공됩니다. 다음은 ENTERPRISE2 트래픽에 관한 URSP 규칙의 예입니다.

URSP 규칙 #2(enterprise2)
우선 적용 2 (0x02)
트래픽 설명자 #1
OS ID + OS 앱 ID 유형 0x97A498E3FC925C9489860333D06E4E470B454E544552505249534532
경로 선택 설명자 #1
우선 적용 1 (0x01)
구성요소 #1: S-NSSAI SST:XX SD:YYYYYY
구성요소 #2: DNN enterprise2
경로 선택 설명자 #2
우선 적용 2 (0x02)
구성요소 #1: DNN enterprise2

엔터프라이즈 3

엔터프라이즈 3 지원은 Android 13 이상에서 제공됩니다. 다음은 ENTERPRISE3 트래픽에 관한 URSP 규칙의 예입니다.

URSP 규칙 #3(enterprise3)
우선 적용 3 (0x03)
트래픽 설명자 #1
OS ID + OS 앱 ID 유형 0x97A498E3FC925C9489860333D06E4E470B454E544552505249534533
경로 선택 설명자 #1
우선 적용 1 (0x01)
구성요소 #1: S-NSSAI SST:XX SD:YYYYYY
구성요소 #2: DNN enterprise3
경로 선택 설명자 #2
우선 적용 2 (0x02)
구성요소 #1: DNN enterprise3

엔터프라이즈 4

엔터프라이즈 4 지원은 Android 13 이상에서 제공됩니다. 다음은 ENTERPRISE4 트래픽에 관한 URSP 규칙의 예입니다.

URSP 규칙 #4(enterprise4)
우선 적용 4 (0x04)
트래픽 설명자 #1
OS ID + OS 앱 ID 유형 0x97A498E3FC925C9489860333D06E4E470B454E544552505249534534
경로 선택 설명자 #1
우선 적용 1 (0x01)
구성요소 #1: S-NSSAI SST:XX SD:YYYYYY
구성요소 #2: DNN enterprise4
경로 선택 설명자 #2
우선 적용 2 (0x02)
구성요소 #1: DNN enterprise4

엔터프라이즈 5

엔터프라이즈 5 지원은 Android 13 이상에서 제공됩니다. 다음은 ENTERPRISE5 트래픽에 관한 URSP 규칙의 예입니다.

URSP 규칙 #5(enterprise5)
우선 적용 5 (0x05)
트래픽 설명자 #1
OS ID + OS 앱 ID 유형 0x97A498E3FC925C9489860333D06E4E470B454E544552505249534535
경로 선택 설명자 #1
우선 적용 1 (0x01)
구성요소 #1: S-NSSAI SST:XX SD:YYYYYY
구성요소 #2: DNN enterprise5
경로 선택 설명자 #2
우선 적용 2 (0x02)
구성요소 #1: DNN enterprise5

CBS

CBS 지원은 Android 13 이상에서 제공됩니다. 다음은 CBS 트래픽에 관한 URSP 규칙의 예입니다.

URSP 규칙 #6(CBS)
우선 적용 6 (0x06)
트래픽 설명자 #1
OS ID + OS 앱 ID 유형 0x97A498E3FC925C9489860333D06E4E4703434253
경로 선택 설명자 #1
우선 적용 1 (0x01)
구성요소 #1: S-NSSAI SST:XX SD:YYYYYY
구성요소 #2: DNN cbs
경로 선택 설명자 #2
우선 적용 2 (0x02)
구성요소 #1: DNN cbs

짧은 지연 시간

짧은 지연 시간 지원은 Android 13 이상에서 제공됩니다. 다음은 LOW_LATENCY 트래픽에 관한 URSP 규칙의 예입니다.

URSP 규칙 #7(짧은 지연 시간)
우선 적용 7 (0x07)
트래픽 설명자 #1
OS ID + OS 앱 ID 유형 0x97A498E3FC925C9489860333D06E4E47125052494f524954495a455f4c4154454e4359
경로 선택 설명자 #1
우선 적용 1 (0x01)
구성요소 #1: S-NSSAI SST:XX SD:YYYYYY
구성요소 #2: DNN 지연 시간
경로 선택 설명자 #2
우선 적용 2 (0x02)
구성요소 #1: DNN 지연 시간

고대역폭

고대역폭 지원은 Android 13 이상에서 제공됩니다. 다음은 HIGH_BANDWIDTH 트래픽에 관한 URSP 규칙의 예입니다.

URSP 규칙 #8(고대역폭)
우선 적용 8 (0x08)
트래픽 설명자 #1
OS ID + OS 앱 ID 유형 97A498E3FC925C9489860333D06E4E47145052494f524954495a455f42414e445749445448
경로 선택 설명자 #1
우선 적용 1 (0x01)
구성요소 #1: S-NSSAI SST:XX SD:YYYYYY
구성요소 #2: DNN 대역폭
경로 선택 설명자 #2
우선 적용 2 (0x02)
구성요소 #1: DNN 대역폭

기본

URSP 규칙 #9(기본)
우선 적용 9 (0x09)
트래픽 설명자 #1
match-all N/A
경로 선택 설명자 #1
우선 적용 1 (0x01)
구성요소 #1: S-NSSAI SST:XX SD:YYYYYY

테스트

5G 네트워크 슬라이싱을 테스트하려면 다음과 같은 수동 테스트를 사용합니다.

테스트용으로 기기를 설정하려면 다음을 따르세요.

  1. 엔터프라이즈 카테고리와 일치하는 기본이 아닌 규칙으로 URSP 정책을 구성해야 하고 상응하는 경로 선택 설명자가 엔터프라이즈 카테고리를 엔터프라이즈 슬라이스에 매핑해야 하며 트래픽을 기본 인터넷 슬라이스에 전달하는 기본 규칙을 사용합니다.

  2. 기기에 직장 프로필이 구성되어야 합니다.

  3. DPC를 통해 네트워크 슬라이싱을 사용하도록 선택합니다.

5G 네트워크 슬라이싱 동작을 테스트하려면 다음을 따르세요.

  1. PDU 세션이 엔터프라이즈 슬라이스로 설정되고(예: 특정 IP 주소 사용) 직장 프로필의 앱이 이 PDU 세션을 사용하는지 확인합니다.
  2. 별도의 PDU 세션이 기본 인터넷 슬라이스로 설정되어 있고 개인 프로필의 앱이 PDU 세션을 사용하는지 확인합니다.

5G 슬라이싱 업셀

5G 슬라이싱 업셀 기능은 Android 14-QPR1부터 제공되며 이 기능을 사용하면 이동통신사가 5G 네트워크 슬라이싱을 통해 사용자에게 향상된 네트워크 기능(지연 시간 및 대역폭)을 제공할 수 있습니다.

5G 슬라이싱 업셀 기능은 이동통신사 사용 권한 서버의 TS.43 응답을 사용하여 구매 흐름을 유도합니다. 이동통신사는 이 응답을 사용하여 이동통신사의 구매 WebView의 URL을 지정하고, WebView에 추가 데이터를 전송하고, 슬라이스가 이동통신사 네트워크에서 프로비저닝되고 사용 가능한지 나타냅니다.

이동통신사는 구매 요청의 가능 여부와 앱이 프리미엄 기능을 요청할 수 있는 시기, 전화 통신 프레임워크가 사용자나 네트워크에서 응답을 기다리는 시간을 제어하는 이동통신사 구성을 사용하여 5G 슬라이싱 업셀 기능의 동작을 맞춤설정할 수 있습니다.

5G 슬라이싱 업셀 기능은 Android와 이동통신사 WebView 간의 통신을 허용하기 위해 DataBoostWebServiceFlow 인터페이스를 제공합니다.

그림 2는 5G 슬라이싱 업셀 구매 흐름을 보여줍니다.

5G 슬라이싱 업셀 구매 흐름

그림 2. 5G 슬라이싱 업셀 구매 흐름

TS.43 사용 권한 프로세스

사용자가 향상된 네트워크 기능을 요청하면 전화 통신 프레임워크는 요청된 프리미엄 기능의 서비스 사용 권한 구성을 요청합니다. TS.43 응답이 유효하면 전화 통신 프레임워크는 HTTP 응답의 필드를 사용하여 구매 요청을 유도합니다.

슬라이스 구매 필드

TS.43 사용 권한 구성에는 다음 슬라이스 구매 필드가 포함되어 있습니다.

사용 권한 상태

키: EntitlementStatus

유형: int

지원 값: 0(사용 중지됨), 1(사용 설정됨), 2(호환되지 않음), 3(프로비저닝), 4(포함됨)

프로비저닝 상태

키: ProvStatus

유형: int

지원 값: 0(프로비저닝되지 않음), 1(프로비저닝됨), 2(사용할 수 없음), 3(진행 중)

전화 통신 프레임워크는 사용 권한 상태와 프로비저닝 상태를 조합하여 사용해 현재 슬라이스 구매 상태를 결정합니다. 결과는 다음 중 하나일 수 있습니다.

사용 권한 상태가 1(사용 설정됨)이고 프로비저닝 상태가 0(프로비저닝되지 않음)이면 전화 통신 프레임워크는 사용자에게 이동통신사 WebView를 통해 부스트를 구매하라는 업셀 알림을 표시합니다. 다음 표는 프로비저닝 상태 값과 사용 권한 상태 값이 다양하게 조합될 때 전화 통신 프레임워크의 동작을 설명합니다.

프로비저닝 상태
프로비저닝되지 않음(0) 프로비저닝됨(1) 사용할 수 없음(2) 진행 중(3)
사용 권한 상태 사용 중지됨(0) 실패 실패 실패 실패
사용 설정됨(1) WebView 표시 이미 구매함 이미 구매함 진행 중
호환되지 않음(2) 실패 실패 실패 실패
프로비저닝(3) 이동통신사 오류 이동통신사 오류 진행 중 진행 중
포함됨(4) 이동통신사 오류 이미 구매함 이미 구매함 이동통신사 오류

서비스 흐름 필드

TS.43 응답은 URL과 사용자 데이터, 콘텐츠 유형을 지정하여 이동통신사 구매 WebView 동작을 맞춤설정합니다. 콘텐츠 유형이 지정되지 않으면 URL이 GET 요청으로 로드됩니다. 사용자 데이터가 있으면 URL에 쿼리 매개변수로 추가되며(예: https://www.android.com?encodedValue=Base64EncodedUserData) 사용자 데이터가 없으면 URL이 그대로 사용됩니다(예: https://www.android.com).
콘텐츠 유형이 JSON이나 XML 형식으로 지정되면 URL은 POST 요청으로 로드되고 사용자 데이터(Base 64로 인코딩된 경우 디코딩됨)는 POST 요청의 데이터로 전송됩니다.

URL

키: ServiceFlow_URL

유형: String

예: "https://www.android.com"

사용자 데이터

키: ServiceFlow_UserData

유형: String

예: "encodedValue=Base64EncodedUserData"

콘텐츠 유형

키: ServiceFlow_ContentsType

유형: String

지원 값: 0(지정되지 않음), 1(JSON), 2(XML)

이동통신사 구성

다음은 5G 슬라이싱 업셀 기능 동작을 맞춤설정하는 데 사용할 수 있는 이동통신사 구성입니다.

KEY_SUPPORTED_PREMIUM_CAPABILITIES_INT_ARRAY

지원되는 프리미엄 기능 목록입니다. TelephonyManager.PremiumCapability의 int 배열입니다. 이러한 프리미엄 기능은 상응하는 NetworkCapabilities.NetCapability 클래스와 동일한 값을 공유합니다. 프리미엄 기능이 요청되지만 이 구성에 포함되어 있지 않으면 CARRIER_DISABLED 결과와 함께 구매 요청이 실패합니다.

Android 14에서는 PREMIUM_CAPABILITY_PRIORITIZE_LATENCY만 지원됩니다.

KEY_PREMIUM_CAPABILITY_MAXIMUM_DAILY_NOTIFICATION_COUNT_INT

구매 업셀 알림이 사용자에게 표시되는 일일 최대 횟수입니다. 일일 최대한도에 도달하면 업셀 알림이 표시되지 않고 구매 요청(사용 권한 서버 요청 포함)이 다음날 자정까지 제한됩니다. 일일 최대한도에 도달한 후의 구매 요청은 PURCHASE_PREMIUM_CAPABILITY_RESULT_THROTTLED 결과와 함께 실패합니다.

KEY_PREMIUM_CAPABILITY_MAXIMUM_MONTHLY_NOTIFICATION_COUNT_INT

구매 업셀 알림이 사용자에게 표시되는 월간 최대 횟수입니다. 월간 최대한도에 도달하면 업셀 알림이 표시되지 않고 구매 요청(사용 권한 서버 요청 포함)이 다음 달 1일까지 제한됩니다. 월간 최대한도에 도달한 후의 구매 요청은 PURCHASE_PREMIUM_CAPABILITY_RESULT_THROTTLED 결과와 함께 실패합니다.

KEY_PREMIUM_CAPABILITY_PURCHASE_URL_STRING

사용자가 업셀 알림을 클릭할 때 표시되는 백업 이동통신사 구매 URL입니다. 구매 URL을 사용 권한 서버의 TS.43 응답에서 찾을 수 없는 경우 이 값이 대신 사용됩니다. TS.43 응답의 URL과 이동통신사 구성이 모두 유효하지 않으면 구매 요청이 PURCHASE_PREMIUM_CAPABILITY_RESULT_CARRIER_DISABLED 결과와 함께 실패합니다.

KEY_PREMIUM_CAPABILITY_SUPPORTED_ON_LTE_BOOL

기기가 LTE(Long-Term Evolution)에 연결될 때 프리미엄 기능의 구매를 허용할지 여부입니다. true이면 LTE와 NR(New Radio)에서 모두 구매 요청을 할 수 있습니다. false면 NR에서만 구매 요청을 할 수 있고 LTE에서 이루어진 요청은 PURCHASE_PREMIUM_CAPABILITY_RESULT_NETWORK_NOT_AVAILABLE 결과와 함께 실패합니다.

KEY_PREMIUM_CAPABILITY_NOTIFICATION_DISPLAY_TIMEOUT_MILLIS_LONG

구매 업셀 알림이 자동으로 취소되기 전에 사용자에게 표시되는 시간입니다. 알림이 취소되면 후속 요청이 제한되고 PURCHASE_PREMIUM_CAPABILITY_RESULT_THROTTLED 결과와 함께 실패합니다.

KEY_PREMIUM_CAPABILITY_NOTIFICATION_BACKOFF_HYSTERESIS_TIME_MILLIS_LONG

제한 시간이나 사용자 취소로 인한 실패 후 후속 구매 요청이 제한되어야 하는 시간입니다. 사용자가 KEY_PREMIUM_CAPABILITY_NOTIFICATION_DISPLAY_TIMEOUT_MILLIS_LONG으로 지정된 제한 시간 내에 구매 업셀 알림을 클릭하지 않는 경우 또는 사용자가 알림을 취소하거나 닫으면 이 백오프 타이머가 시작됩니다. 이 타이머가 활성화되어 있으면 구매 요청이 PURCHASE_PREMIUM_CAPABILITY_RESULT_THROTTLED 결과와 함께 실패합니다.

KEY_PREMIUM_CAPABILITY_PURCHASE_CONDITION_BACKOFF_HYSTERESIS_TIME_MILLIS_LONG

이동통신사나 네트워크로 인한 실패 후 후속 구매 요청이 제한되어야 하는 시간입니다. 사용 권한 확인이 실패하거나 URL을 사용할 수 없거나 이동통신사 구매 URL이 실패를 나타내면 이 백오프 타이머가 시작됩니다. 이 타이머가 활성화되어 있으면 구매 요청이 PURCHASE_PREMIUM_CAPABILITY_RESULT_THROTTLED 결과와 함께 실패합니다.

KEY_PREMIUM_CAPABILITY_NETWORK_SETUP_TIME_MILLIS_LONG

네트워크가 프리미엄 기능 구매의 슬라이싱 구성을 설정해야 하는 제한 시간입니다. 이 시간 동안 후속 구매 요청은 차단되며 PURCHASE_PREMIUM_CAPABILITY_RESULT_PENDING_NETWORK_SETUP 결과가 반환됩니다. 네트워크가 제 시간에 슬라이싱 구성을 설정하지 못하면 앱이 프리미엄 기능을 다시 구매하도록 요청할 수 있습니다. 전화 통신은 사용자가 이동통신사에 비용을 지불했는지와 관계없이 해당 슬라이싱 구성이 전송될 때까지 구매가 완료된 것으로 간주하지 않습니다.

JavaScript 인터페이스

사용자가 네트워크 부스트 알림을 클릭하면 이동통신사 구매 URL이 있는 WebView 객체가 사용자에게 표시됩니다. 이동통신사는 구매 웹사이트의 DataBoostWebServiceFlow JavaScript 인터페이스에 제공된 API를 사용하여 슬라이스 구매 앱과 통신할 수 있습니다.

이동통신사 웹사이트에서는 요청된 프리미엄 기능을 getRequestedCapability() 메서드를 통해 가져올 수 있습니다.

구매에 성공하면 이동통신사 웹사이트는 notifyPurchaseSuccessful() 또는 notifyPurchaseSuccessful(duration)을 통해 슬라이스 구매 앱에 알려야 하며 여기서 duration은 슬라이스의 의도된 시간을 나타내는 선택적 매개변수입니다.

구매에 실패하면 이동통신사 웹사이트는 notifyPurchaseFailed(code, reason) 메서드를 통해 슬라이스 구매 앱에 알려야 합니다. 여기서 code는 실패 이유를 나타내는 실패 코드이고 reason은 실패 코드를 알 수 없는 경우 인간이 읽을 수 있는 실패 이유입니다.

이러한 응답 메서드가 호출되지 않으면 구매가 완료된 것으로 간주되지 않으며 구매 요청은 최종적으로 타임아웃됩니다.

다음은 이동통신사 웹사이트에서 구매 실패에 관해 반환할 수 있는 유효한 실패 코드입니다.

구매가 완료되면 이동통신사는 PRIORITIZE_LATENCY 슬라이스를 사용하여 사용자 기기의 URSP 규칙을 업데이트해야 합니다.