Dzielenie sieci 5G

Na urządzeniach z Androidem 12 lub nowszym Android zapewnia obsługę dzielenia sieci 5G, czyli korzystania z wirtualizacji sieci w celu podziału pojedynczych połączeń sieciowych na wiele różnych połączeń wirtualnych, które zapewniają różne ilości zasobów dla różnych typów ruchu. Podział sieci 5G pozwala operatorom sieciowym przeznaczyć część jej części na udostępnianie określonych funkcji określonym segmentom klientów. Android 12 wprowadza następujące funkcje 5G enterprise slicing, które operatorzy sieci mogą udostępniać swoim klientom korporacyjnym:

Dzielenie urządzeń firmowych na potrzeby w pełni zarządzanych

W przypadku firm, które udostępniają swoim pracownikom w pełni zarządzane urządzenia, dostawcy sieci mogą udostępnić im co najmniej 1 aktywny wycinek sieci firmowej, do którego kierowany jest ruch na urządzeniach firmowych. Począwszy od Androida 12 Android umożliwia operatorom dostarczanie wycinków firmowych za pomocą reguł URSP zamiast konfigurowania ich przez punkty APN.

Dzielenie aplikacji biznesowych na urządzeniach z profilami służbowymi

W przypadku firm korzystających z rozwiązania profilu służbowego Android 12 umożliwia urządzeniom kierowanie ruchu ze wszystkich aplikacji w profilu służbowym do segmentu sieci korporacyjnej. Firmy mogą włączyć tę funkcję za pomocą kontrolera zasad dotyczących urządzeń (DPC).

Rozwiązanie dotyczące profilu służbowego zapewnia automatyczny poziom uwierzytelniania i kontroli dostępu, którego wymagają firmy, aby zapewnić, że tylko ruch z aplikacji korporacyjnych w profilu służbowym jest kierowany do segmentu sieci korporacyjnej. Nie trzeba modyfikować aplikacji w profilu służbowym, aby jawnie żądać wycinka sieci firmowej.

Jak działa dzielenie sieci 5G w AOSP

Android 12 obsługuje dzielenie sieci 5G przez dodanie bazy kodu usług telefonicznych w AOSP i moduł Tethering, który uwzględnia istniejące interfejsy API do łączenia, wymagane do podziału sieci.

Platforma telefonii na Androidzie udostępnia interfejsy HAL i telefonii, aby obsługiwać dzielenie na warstwy na podstawie żądań sieciowych przesłanych przez podstawowy kod sieciowy oraz funkcje dzielenia na warstwy 5G w modemie. Rysunek 1 przedstawia komponenty funkcji podziału sieci 5G.

Komponenty do podziału sieci 5G

Rysunek 1. Architektura sieci 5G w AOSP.

Platforma telefonii i połączeń obsługuje:

  • Konwertowanie żądań sieciowych dla kategorii wycinków na deskryptory ruchu, które są przekazywane do modemu w celu dopasowania ruchu URSP i wyboru trasy
  • przełączenie się na sieć domyślną, jeśli kawałek sieci firmowej jest niedostępny;
  • kierować ruch ze wszystkich aplikacji w profilu służbowym do odpowiedniego połączenia,
  • Obsługa dzielenia na poziomie przedsiębiorstwa

    • wykrywanie obecności profilu służbowego na urządzeniu;
    • Sprawdzanie uprawnień lub wskazówek dotyczących routingu udostępnionych przez DPC używany przez administratora IT firmy

Podstawowa usługa sieciowa obejmuje te zmiany w module tetheringu w Androidzie 12:

  • Dodaje do modułu wiązania większość publicznych lub systemowych klas interfejsu API android.net.*
  • Rozszerza granice modułu udostępniania połączenia, aby obejmowały:

    • 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
  • Przenoszenie kodu sieci VPN z modułu tetheringu

Android 12 przenosi kod z tymi funkcjami do modułu tetheringu:

  • Odbieranie żądań dotyczących połączeń sieciowych z aplikacji
  • odbieranie żądań z systemu (na przykład „umieść te aplikacje na wycinku firmy” – funkcja dostępna w Androidzie 12);
  • Wysyłanie żądań z systemu do kodu telefonicznego, który próbuje skonfigurować sieci lub segmenty, korzystając z interfejsu HAL API i modemu.
  • informowanie netd o tym, jak kierować ruch na podstawie aplikacji (wprowadzone w Androidzie 12);
  • Informowanie aplikacji o tym, co dzieje się z ich ruchem sieciowym za pomocą interfejsów API ConnectivityManager, takich jak NetworkCallback, getActiveNetworkgetNetworkCapabilities.

Implementacja

Aby obsługiwać dzielenie pasma 5G na urządzeniu, musi ono mieć modem obsługujący interfejs IRadio 1.6 HAL z interfejsem API setupDataCall_1_6. Ten interfejs API konfiguruje połączenie danych i zawiera te parametry, aby obsługiwać dzielenie 5G:

  • trafficDescriptor: określa opis ruchu wysyłany do modemu
  • sliceInfo: określa informacje dotyczące warstwy sieci, która ma być używana w przypadku przełączenia EPDG na 5G
  • matchAllRuleAllowed: określa, czy dozwolone jest używanie domyślnej reguły URSP dopasowywania do wszystkich. Usługa telefonii ustawia tę wartość na „Prawda” w przypadku domyślnych sieci, ale nie w przypadku wycinków. Reguła dopasowania do wszystkich jest stosowana do domyślnych sieci. Gdy aplikacja poprosi o konkretny wycinek, który jest niedostępny, ten wycinek zostanie zgłoszony jako niedostępny. W przypadku aplikacji dla firm framework telefonii może przejść do sieci domyślnej, jeśli sieć firmowa jest niedostępna.

Modem musi też implementować interfejs API getSlicingConfig, chyba że jest on zgłoszony jako nieobsługiwany przez interfejs API getHalDeviceCapabilities.

Wymagania dla firm

Poniżej znajdziesz wymagania dotyczące korzystania z technologii dzielenia sieci 5G na urządzeniach w ramach wdrożenia Androida w firmie.

  • Upewnij się, że urządzenia w pełni zarządzane lub urządzenia pracowników z utworzonym profilem służbowym są zgodne z 5G SA i mają modemy obsługujące interfejs API setupDataCall_1_6.
  • współpracę z partnerem operatora w zakresie konfiguracji i wydajności segmentów lub charakterystyki SLA;

Włączanie dzielenia 5G na urządzeniach z profilem służbowym

W przypadku urządzeń skonfigurowanych z profilami służbowymi podział sieci 5G jest domyślnie wyłączony w AOSP. Aby włączyć dzielenie sieci, administratorzy IT w firmie mogą włączać i wyłączać kierowanie ruchu z aplikacji na profilu służbowym do sieci firmowej na podstawie pojedynczego pracownika za pomocą EMM DPC, który korzysta z metody setPreferentialNetworkServiceEnabled w interfejsie DevicePolicyManager (DPM) API (wprowadzonym w Androidzie 12).

Dostawcy usług EMM, którzy korzystają z niestandardowych usług DPC, muszą zintegrować interfejs API DevicePolicyManager, aby obsługiwać klientów korporacyjnych.

Reguły URSP

Ta sekcja zawiera informacje dla operatorów dotyczące konfigurowania reguł URSP dla różnych kategorii wycinków, takich jak ruch Enterprise, CBS, krótki czas oczekiwania i ruch o dużej przepustowości. Podczas konfigurowania reguł URSP dla różnych kategorii segmentów operatorzy muszą używać tych wartości dotyczących Androida.

ID Wartość Opis
Identyfikator systemu operacyjnego 97a498e3-fc92-5c94-8986-0333d06e4e47 Identyfikator OSId w przypadku Androida to identyfikator UUID w wersji 5 wygenerowany z użyciem przestrzeni nazw ISO-OID i nazwy „Android”.

Operatorzy muszą skonfigurować reguły URSP dla każdego ruchu segmentu z komponentą opisu ruchu jako „Typ identyfikatora systemu operacyjnego + identyfikator aplikacji systemu operacyjnego”. Na przykład wartość sekcji „ENTERPRISE” musi być równa 0x97A498E3FC925C9489860333D06E4E470A454E5445525052495345. Ta wartość jest konkatenacją identyfikatora OSId, długości identyfikatora OSAppId (0x0A) oraz identyfikatora OSAppId. Więcej informacji o typie komponentu opisu ruchu znajdziesz w dokumentacji 3GPP TS 24.526 Tabela 5.2.1 (w języku angielskim).

W tabeli poniżej opisano wartości identyfikatorów OSAppId w przypadku różnych kategorii wycinków.

Kategoria wycinka Identyfikator aplikacji OS Opis
ROZPOCZNIJ DZIAŁANIE 0x454E5445525052495345 Parametr OSAppId to tablica bajtów zawierająca ciąg „ENTERPRISE”.
ENTERPRISE2 0x454E544552505249534532 Identyfikator OSAppId to tablicowa reprezentacja ciągu znaków „ENTERPRISE2”
ENTERPRISE3 0x454E544552505249534533 Parametr OSAppId to tablica bajtów zawierająca ciąg „ENTERPRISE3”.
ENTERPRISE4 0x454E544552505249534534 Parametr OSAppId to tablica bajtów zawierająca ciąg „ENTERPRISE4”.
ENTERPRISE5 0x454E544552505249534535 Identyfikator OSAppId to tablicowa reprezentacja ciągu znaków „ENTERPRISE5”
CBS 0x434253 Parametr OSAppId to tablica bajtów zawierająca ciąg „CBS”.
PRIORITIZE_LATENCY 0x5052494f524954495a455f4c4154454e4359 Parametr OSAppId to tablica bajtów zawierająca ciąg „PRIORITIZE_LATENCY”.
PRIORITIZE_BANDWIDTH 0x5052494f524954495a455f42414e445749445448 Identyfikator OSAppId jest tablicą bajtów reprezentującą ciąg „PRIORITIZE_BANDWIDTH”

Przykładowe reguły URSP

W tabelach poniżej podajemy przykładowe reguły URSP dla przedsiębiorstw, CBS, niskich opóźnień, dużej przepustowości i domyślnego ruchu.

Enterprise 1

Obsługa Enterprise 1 jest dostępna w Androidzie 12 i nowszych. Poniżej znajdziesz przykładową regułę URSP dla ruchu ENTERPRISE1:

Reguła URSP 1 (enterprise1)
Pierwszeństwo 1 (0x01)
Opis ruchu #1
Identyfikator systemu operacyjnego + typ identyfikatora aplikacji 0x97A498E3FC925C9489860333D06E4E470A454E5445525052495345
Deskryptor wyboru trasy 1
Pierwszeństwo 1 (0x01)
Komponent 1: S-NSSAI SST:XX SD:YYYYYY
Element 2. Sieć DNN enterprise
Opis wyboru trasy 2
Pierwszeństwo 2 (0x02)
Komponent 1: DNN enterprise

Enterprise 2

Pomoc dotycząca wersji Enterprise 2 jest dostępna w Androidzie 13 i nowszych. Poniżej znajdziesz przykładową regułę URSP dla ruchu ENTERPRISE2:

Reguła URSP 2 (enterprise2)
Pierwszeństwo 2 (0x02)
Opis ruchu #1
Identyfikator systemu operacyjnego + typ identyfikatora aplikacji 0x97A498E3FC925C9489860333D06E4E470B454E544552505249534532
Deskryptor wyboru trasy 1
Pierwszeństwo 1 (0x01)
Komponent 1: S-NSSAI SST:XX SD:YYYYYY
Komponent 2: DNN enterprise2
Opis wyboru trasy 2
Pierwszeństwo 2 (0x02)
Komponent 1: DNN enterprise2

Enterprise 3

Pomoc dotycząca Enterprise 3 jest dostępna w Androidzie 13 i nowszych. Poniżej znajdziesz przykładową regułę URSP dla ruchu ENTERPRISE3:

Reguła URSP 3 (enterprise3)
Pierwszeństwo 3 (0x03)
Opis ruchu #1
Identyfikator systemu operacyjnego + typ identyfikatora aplikacji 0x97A498E3FC925C9489860333D06E4E470B454E544552505249534533
Opis wyboru trasy 1
Pierwszeństwo 1 (0x01)
Komponent 1: S-NSSAI SST:XX SD:YYYYYY
Element 2. Sieć DNN enterprise3
Opis wyboru trasy 2
Pierwszeństwo 2 (0x02)
Komponent 1: DNN enterprise3

Enterprise 4

Obsługa Enterprise 4 jest dostępna w Androidzie 13 i nowszych. Oto przykład reguły URSP dla ruchu ENTERPRISE4:

Reguła URSP 4 (enterprise4)
Pierwszeństwo 4 (0x04)
Opis ruchu #1
Identyfikator systemu operacyjnego + typ identyfikatora aplikacji 0x97A498E3FC925C9489860333D06E4E470B454E544552505249534534
Opis wyboru trasy 1
Pierwszeństwo 1 (0x01)
Komponent 1: S-NSSAI SST:XX SD:YYYYYY
Element 2. Sieć DNN enterprise4
Deskryptor wyboru trasy 2
Pierwszeństwo 2 (0x02)
Komponent 1. DNN enterprise4

Enterprise 5

Pomoc dotycząca Enterprise 5 jest dostępna w Androidzie 13 i nowszych. Oto przykład reguły URSP dotyczącej ruchu ENTERPRISE5:

Reguła URSP 5 (enterprise5)
Pierwszeństwo 5 (0x05)
Opis ruchu #1
Identyfikator systemu operacyjnego + typ identyfikatora aplikacji 0x97A498E3FC925C9489860333D06E4E470B454E544552505249534535
Deskryptor wyboru trasy 1
Pierwszeństwo 1 (0x01)
Komponent 1: S-NSSAI SST:XX SD:YYYYYY
Element 2. Sieć DNN Enterprise5
Opis wyboru trasy 2
Pierwszeństwo 2 (0x02)
Komponent 1. DNN enterprise5

CBS

Obsługa CBS jest dostępna w Androidzie 13 i nowszych. Oto przykład reguły URSP dla ruchu z CBS:

Reguła URSP nr 6 (CBS)
Pierwszeństwo 6 (0x06)
Opis ruchu #1
Identyfikator systemu operacyjnego + typ identyfikatora aplikacji systemu operacyjnego 0x97A498E3FC925C9489860333D06E4E4703434253
Opis wyboru trasy 1
Pierwszeństwo 1 (0x01)
Komponent 1: S-NSSAI SST:XX SD:YYYYYY
Element 2. Sieć DNN cbs
Opis wyboru trasy 2
Pierwszeństwo 2 (0x02)
Komponent 1: DNN cbs

Małe opóźnienie

Obsługa niskiego opóźnienia jest dostępna w Androidzie 13 i nowszych. Oto przykład reguły URSP dotyczącej ruchu o niskim opóźnieniu:

Reguła URSP #7 (małe opóźnienie)
Pierwszeństwo 7 (0x07)
Deskryptor ruchu 1
Identyfikator systemu operacyjnego + typ identyfikatora aplikacji systemu operacyjnego 0x97A498E3FC925C9489860333D06E4E47125052494f524954495a455f4c4154454e4359
Opis wyboru trasy 1
Pierwszeństwo 1 (0x01)
Komponent 1: S-NSSAI SST:XX SD:YYYYYY
Element 2. Sieć DNN opóźnienie
Deskryptor wyboru trasy 2
Pierwszeństwo 2 (0x02)
Komponent 1. DNN opóźnienie

Wysoka przepustowość

Obsługa wysokiej przepustowości jest dostępna w Androidzie 13 i nowszych. Oto przykład reguły URSP dotyczącej ruchu o wysokiej przepustowości:

Reguła URSP 8 (duża przepustowość)
Pierwszeństwo 8 (0x08)
Opis ruchu #1
Identyfikator systemu operacyjnego + typ identyfikatora aplikacji systemu operacyjnego 97A498E3FC925C9489860333D06E4E47145052494f524954495a455f42414e445749445448
Opis wyboru trasy 1
Pierwszeństwo 1 (0x01)
Komponent 1: S-NSSAI SST:XX SD:YYYYYY
Element 2. Sieć DNN przepustowość
Opis wyboru trasy 2
Pierwszeństwo 2 (0x02)
Komponent 1: DNN przepustowość

Domyślny

Reguła URSP nr 9 (domyślna)
Pierwszeństwo 9 (0x09)
Opis ruchu #1
match-all Nie dotyczy
Opis wyboru trasy 1
Pierwszeństwo 1 (0x01)
Komponent 1: S-NSSAI SST:XX SD:YRRRRY

Testowanie

Aby przetestować dzielenie sieci 5G, wykonaj ten test ręczny.

Aby skonfigurować urządzenie do testowania:

  1. Upewnij się, że zasada URSP jest skonfigurowana z regułą niestandardową, która jest zgodna z kategorią przedsiębiorstwa, oraz że odpowiedni deskryptor wyboru trasy mapuje kategorię przedsiębiorstwa na ich segment, a także reguła domyślna kieruje ruch do domyślnego segmentu internetowego.

  2. Upewnij się, że na urządzeniu jest skonfigurowany profil służbowy.

  3. Włączanie dzielenia sieci za pomocą DPC

Aby przetestować działanie dzielenia sieci 5G:

  1. Sprawdź, czy sesja PDU została nawiązana z użyciem partycji przedsiębiorstwa (na przykład za pomocą określonego adresu IP) i czy aplikacje w profilu służbowym korzystają z tej sesji PDU.
  2. Sprawdź, czy utworzono osobną sesję PDU z domyślnym wycinkiem internetowym i czy aplikacje w profilu osobistym korzystają z sesji PDU.

Sprzedaż dodatkowa – fragment kodu 5G

Funkcja upsellingu 5G slicing, dostępna od Androida 14-QPR1, umożliwia operatorom oferowanie użytkownikom zaawansowanych funkcji sieciowych (opóźnień i przepustowości) dzięki dzieleniu sieci 5G.

Funkcja wycinków w sieci 5G wykorzystuje odpowiedź TS.43 z serwera uprawnień operatora do kierowania procesu zakupu. Operatorzy mogą użyć odpowiedzi, aby określić adres URL widoku zakupu w witrynie operatora, przesłać dodatkowe dane do widoku oraz wskazać, czy wycinek jest udostępniony i dostępny w sieci operatora.

Operatorzy mogą dostosowywać działanie funkcji upsellingu w ramach slicingu 5G za pomocą konfiguracji operatora, które określają, czy można przesyłać prośby o zakup, kiedy aplikacje mogą prosić o możliwości premium i jak długo framework telefonii czeka na odpowiedzi od użytkownika lub sieci.

Funkcja upsellingu 5G slicing zapewnia interfejs o nazwie DataBoostWebServiceFlow, który umożliwia komunikację między Androidem a interfejsem przeglądarki operatora.

Rysunek 2 przedstawia proces zakupu sprzedaży dodatkowej z wykorzystaniem sieci 5G:

Przejście do procesu zakupu z dodatkowymi produktami w ramach 5G slicing

Rysunek 2. Proces zakupu z dodatkowymi opłatami za 5G.

TS.43 Proces nadawania uprawnień

Gdy użytkownik wysyła żądanie dotyczące rozszerzonych funkcji sieciowych, framework telefonii prosi o konfigurację uprawnień do usługi w przypadku żądanej funkcji premium. Jeśli odpowiedź TS.43 jest prawidłowa, platforma telefoniczna używa pól z odpowiedzi HTTP, aby wysłać żądanie zakupu.

Polecenie Slice purchase fields

Konfiguracja uprawnień TS.43 zawiera te pola zakupu wycinka:

Stan uprawnienia

Klawisz: EntitlementStatus

Typ: int

Obsługiwane wartości: 0 (wyłączone), 1 (włączone), 2 (niezgodny), 3 (rezerwacja), 4 (uwzględniony).

Stan obsługi administracyjnej

Klawisz: ProvStatus

Typ: int

Obsługiwane wartości: 0 (niezarezerwowane), 1 (zarezerwowane), 2 (niedostępne), 3 (w trakcie).

Aby określić bieżący stan zakupu fragmentu, platforma telefonii korzysta z kombinacji stanu uprawnień i stanu obsługi. Wynik może być jeden z tych:

Jeśli stan uprawnień to 1 (włączone), a stan obsługi to 0 (nieobsługiwane), framework telefonii wyświetla użytkownikowi powiadomienie o możliwości zakupu ulepszonej wersji usługi za pomocą widoku przeglądarki operatora. Tabela poniżej opisuje działanie interfejsu Telephony w różnych kombinacjach wartości stanu udostępniania i uprawnień.

Stan wdrożenia
Nie przydzielone (0) Zarządzanie (1)) Niedostępny (2) W toku (3)
Stan uprawnienia Wyłączone (0) Niepowodzenie Niepowodzenie Niepowodzenie Niepowodzenie
Włączone (1) Pokaż WebView Już mam ten produkt Już mam ten produkt W toku
Niezgodny (2) Niepowodzenie Niepowodzenie Niepowodzenie Niepowodzenie
Zarządzanie (3) Błąd operatora Błąd operatora W toku W toku
Dołączone (4) Błąd operatora Już mam ten produkt Już mam ten produkt Błąd operatora

Pola przepływu usług

Odpowiedź TS.43 określa adres URL, dane użytkownika i typ treści, aby dostosować działanie przeglądarki webview w ramach zakupu u operatora. Jeśli typ treści nie jest określony, adres URL jest wczytywany jako żądanie GET. Jeśli dane użytkownika istnieją, są one dołączane do adresu URL jako parametr zapytania (np. https://www.android.com?encodedValue=Base64EncodedUserData). Jeśli takiego nie ma, używany jest adres URL w niezmienionej postaci (np. https://www.android.com).
Jeśli typ treści jest określony w formacie JSON lub XML, adres URL jest ładowany jako żądanie POST, a dane użytkownika (dekodowane, jeśli są zakodowane w formacie POST64) są wysyłane jako dane dla żądania POST.

URL

Klawisz: ServiceFlow_URL

Typ: String

Przykład: "https://www.android.com"

Dane użytkownika

Klawisz: ServiceFlow_UserData

Typ: String

Przykład: "encodedValue=Base64EncodedUserData"

Typ treści

Klawisz: ServiceFlow_ContentsType

Typ: String

Obsługiwane wartości: 0 (nieokreślony), 1 (JSON), 2 (XML)

Konfiguracje operatora

Poniżej znajdziesz konfiguracje operatora umożliwiające dostosowanie działania funkcji upsellingu 5G.

KEY_SUPPORTED_PREMIUM_CAPABILITIES_INT_ARRAY

Lista obsługiwanych funkcji premium. To tablica int zawierająca elementy TelephonyManager.PremiumCapability. Te funkcje premium mają tę samą wartość co odpowiednia klasa NetworkCapabilities.NetCapability. Jeśli żądana jest funkcja premium, która nie jest uwzględniona w tej konfiguracji, żądanie zakupu kończy się niepowodzeniem z wynikiem CARRIER_DISABLED.

W Androidzie 14 obsługiwana jest tylko PREMIUM_CAPABILITY_PRIORITIZE_LATENCY.

KEY_PREMIUM_CAPABILITY_MAXIMUM_DAILY_NOTIFICATION_COUNT_INT

Maksymalna dzienna liczba wyświetleń powiadomienia o możliwości dokupienia produktu użytkownikowi. Jeśli osiągnięta zostanie maksymalna dzienna liczba, powiadomienie o ulepszeniu nie będzie wyświetlane, a żądania zakupu (w tym żądania serwera dotyczące uprawnień) będą ograniczane do północy następnego dnia. Żądania zakupu przesłane po osiągnięciu maksymalnej dziennej liczby kont nie powiodą się w wyniku PURCHASE_PREMIUM_CAPABILITY_RESULT_THROTTLED.

KEY_PREMIUM_CAPABILITY_MAXIMUM_MONTHLY_NOTIFICATION_COUNT_INT

Maksymalna miesięczna liczba wyświetleń powiadomienia o sprzedaży dodatkowej użytkownikowi. Jeśli osiągnięto limit miesięczny, powiadomienie o ulepszeniu nie jest wyświetlane, a prośby o zakup (w tym prośby do serwera uprawnień) są ograniczane do pierwszego dnia następnego miesiąca. Żądania o zakup dokonane po osiągnięciu miesięcznego limitu kończą się niepowodzeniem z wynikiem PURCHASE_PREMIUM_CAPABILITY_RESULT_THROTTLED.

KEY_PREMIUM_CAPABILITY_PURCHASE_URL_STRING

Adres URL zapasowego zakupu u operatora, który wyświetla się użytkownikowi po kliknięciu powiadomienia o upsellu. Jeśli w odpowiedzi TS.43 z serwera uprawnień nie ma adresu URL zakupu, zamiast niego używana jest ta wartość. Jeśli adres URL z odpowiedzi TS.43 ani konfiguracja operatora nie są prawidłowe, żądanie zakupu nie powiedzie się z wynikiem PURCHASE_PREMIUM_CAPABILITY_RESULT_CARRIER_DISABLED.

KEY_PREMIUM_CAPABILITY_SUPPORTED_ON_LTE_BOOL

Określ, czy chcesz zezwalać na zakup funkcji premium, gdy urządzenie jest połączone z siecią Long-Term Evolution (LTE). Jeśli true, prośby o zakup można wysyłać zarówno w sieci LTE, jak i New Radio (NR). Jeśli false, prośby o zakup mogą być wysyłane tylko w sieci NR, a prośby wysłane w sieci LTE kończą się niepowodzeniem z wynikiem PURCHASE_PREMIUM_CAPABILITY_RESULT_NETWORK_NOT_AVAILABLE.

KEY_PREMIUM_CAPABILITY_NOTIFICATION_DISPLAY_TIMEOUT_MILLIS_LONG

Czas wyświetlania użytkownikowi powiadomienia o możliwości skorzystania z oferty specjalnej, zanim zostanie ono automatycznie anulowane. Po anulowaniu powiadomienia kolejne żądania są ograniczane i kończą się niepowodzeniem z wynikiem PURCHASE_PREMIUM_CAPABILITY_RESULT_THROTTLED.

KEY_PREMIUM_CAPABILITY_NOTIFICATION_BACKOFF_HYSTERESIS_TIME_MILLIS_LONG

Czas, przez jaki kolejne żądania zakupu powinny być ograniczane po niepowodzeniu spowodowanym przekroczeniem limitu czasu lub anulowaniem przez użytkownika. Jeśli użytkownik nie kliknie powiadomienia o ulepszeniu zakupu w okresie określonym przez parametr KEY_PREMIUM_CAPABILITY_NOTIFICATION_DISPLAY_TIMEOUT_MILLIS_LONG lub jeśli anuluje lub odrzuci powiadomienie, rozpocznie się odliczanie. Podczas trwania tego timera prośby o zakup kończą się niepowodzeniem z wynikiemPURCHASE_PREMIUM_CAPABILITY_RESULT_THROTTLED.

KEY_PREMIUM_CAPABILITY_PURCHASE_CONDITION_BACKOFF_HYSTERESIS_TIME_MILLIS_LONG

Czas, przez jaki kolejne żądania zakupu powinny być ograniczane po wystąpieniu błędu spowodowanego przez operatora lub sieć. Jeśli kontrola uprawnień zakończy się niepowodzeniem, adres URL jest niedostępny lub adres URL zakupu u operatora wskazuje na niepowodzenie, rozpoczyna się odliczanie. Podczas trwania tego licznika prośby o zakup kończą się niepowodzeniem z kodem błędu PURCHASE_PREMIUM_CAPABILITY_RESULT_THROTTLED.

KEY_PREMIUM_CAPABILITY_NETWORK_SETUP_TIME_MILLIS_LONG

Czas, w którym sieć musi skonfigurować konfigurację podziału na potrzeby zakupu usługi premium. W tym czasie kolejne żądania zakupu są blokowane i zwracają wynik PURCHASE_PREMIUM_CAPABILITY_RESULT_PENDING_NETWORK_SETUP. Jeśli sieci nie uda się w terminie skonfigurować konfiguracji dzielenia, aplikacje mogą ponownie poprosić o zakup funkcji premium. Usługa telefonii nie uzna zakupu za zakończony, dopóki nie zostanie wysłana odpowiednia konfiguracja dzielenia, niezależnie od tego, czy użytkownik zapłacił operatorowi czy nie.

Interfejs JavaScript

Gdy użytkownik kliknie powiadomienie o wzmocnieniu sieci, zobaczy obiekt WebView z adresem URL zakupu u operatora. Operatorzy mogą używać interfejsów API udostępnionych w interfejsie JavaScript DataBoostWebServiceFlow na stronie internetowej zakupu w celu komunikacji z aplikacją do zakupu w ramach usługi taryfowej.

Na stronie internetowej operatora można uzyskać żądaną funkcję premium za pomocą metody getRequestedCapability().

Jeśli zakup się powiedzie, witryna operatora musi powiadomić aplikację o zakupie za pomocą parametru notifyPurchaseSuccessful() lub notifyPurchaseSuccessful(duration), gdzie duration jest opcjonalnym parametrem wskazującym docelowy czas trwania okresu próbnego.

Jeśli zakup się nie powiedzie, strona internetowa przewoźnika musi powiadomić aplikację o zakupach cząstkowych za pomocą metody notifyPurchaseFailed(code, reason), gdzie code to kod błędu wskazujący przyczynę niepowodzenia, a reason to przyczyna niepowodzenia w formie zrozumiałej dla człowieka, jeśli kod błędu jest nieznany.

Jeśli nie wywołasz żadnej z tych metod odpowiedzi, zakup nie zostanie uznany za zrealizowany, a prośba o zakup zostanie w końcu odrzucona.

Poniżej znajdują się prawidłowe kody błędów, które strona internetowa przewoźnika może zwrócić w przypadku nieudanego zakupu:

Po zakończeniu zakupu przewoźnik musi zaktualizować zasady URSP, dodając do urządzenia użytkownika PRIORITIZE_LATENCY.