Krojenie sieci 5G

W przypadku urządzeń z systemem Android 12 lub nowszym system Android zapewnia obsługę dzielenia sieci 5G, czyli wykorzystania wirtualizacji sieci do dzielenia pojedynczych połączeń sieciowych na wiele odrębnych połączeń wirtualnych, które zapewniają różną ilość zasobów dla różnych typów ruchu. Dzielenie sieci 5G pozwala operatorom sieci przeznaczyć część sieci na zapewnianie określonych funkcji dla określonego segmentu klientów. W systemie Android 12 wprowadzono następujące możliwości podziału sieci korporacyjnej 5G, które operatorzy sieci mogą zapewnić swoim klientom korporacyjnym:

Dzielenie urządzeń korporacyjnych na w pełni zarządzane urządzenia

W przypadku przedsiębiorstw udostępniających swoim pracownikom w pełni zarządzane urządzenia firmowe dostawcy sieci mogą zapewnić im jeden lub więcej aktywnych segmentów sieci korporacyjnej, do których kierowany jest ruch na urządzeniach firmowych. Począwszy od Androida 12, Android umożliwia operatorom udostępnianie segmentów dla przedsiębiorstw za pośrednictwem reguł URSP zamiast konfigurowania segmentów za pośrednictwem APN.

Dzielenie aplikacji biznesowych dla przedsiębiorstw na urządzenia z profilami do pracy

W przypadku przedsiębiorstw korzystających z rozwiązania profilu do pracy system Android 12 umożliwia urządzeniom kierowanie ruchu ze wszystkich aplikacji w profilu do pracy do fragmentu sieci korporacyjnej. Przedsiębiorstwa mogą włączyć tę funkcję za pomocą kontrolera Device Policy Controller (DPC) .

Rozwiązanie profilu służbowego zapewnia automatyczny poziom uwierzytelniania i kontroli dostępu wymagany w przedsiębiorstwach, aby mieć pewność, że do fragmentu sieci korporacyjnej kierowany jest tylko ruch z aplikacji korporacyjnych w profilu służbowym. Nie trzeba modyfikować aplikacji w profilu służbowym, aby jawnie żądały fragmentu sieci korporacyjnej.

Jak działa dzielenie sieci 5G w AOSP

W systemie Android 12 wprowadzono obsługę dzielenia sieci 5G poprzez dodatki do bazy kodu telefonii w AOSP i module Tethering w celu uwzględnienia istniejących interfejsów API łączności wymaganych do dzielenia sieci.

Platforma telefonii Android udostępnia interfejsy API HAL i telefonii umożliwiające dzielenie na kawałki na podstawie żądań sieciowych przesyłanych przez główny kod sieciowy oraz możliwości dzielenia sieci 5G w modemie. Rysunek 1 opisuje elementy funkcji dzielenia sieci 5G.

Komponenty do krojenia sieci 5G

Rysunek 1. Architektura podziału sieci 5G w AOSP.

Platforma telefonii i łączności obsługuje:

  • Konwertowanie żądań sieciowych dotyczących kategorii wycinków na deskryptory ruchu , które są następnie przekazywane do modemu w celu dopasowania ruchu URSP i wyboru trasy
  • Powrót do sieci domyślnej, jeśli fragment sieci korporacyjnej nie jest dostępny
  • Kierowanie ruchu ze wszystkich aplikacji w profilu służbowym do odpowiedniego połączenia
  • Wspieranie krojenia w przedsiębiorstwie

    • Wykrywanie obecności profilu do pracy na urządzeniu
    • Sprawdzanie uprawnień lub wskazówek dotyczących routingu dostarczonych z DPC używanego przez administratora IT przedsiębiorstwa

Podstawowa usługa sieciowa obejmuje następujące zmiany w module Tethering w systemie Android 12:

  • Dodaje większość publicznych lub systemowych klas API android.net.* do modułu Tethering
  • Rozszerza granice modułu Tethering o:

    • 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
  • Przenosi kod VPN z modułu Tethering

Android 12 przenosi kod z następującymi możliwościami do modułu Tethering:

  • Odbieranie żądań z aplikacji dotyczących połączeń sieciowych
  • Odbieranie żądań z systemu (na przykład „umieść te aplikacje w segmencie korporacyjnym”; wprowadzone w Androidzie 12)
  • Wysyłanie żądań z systemu do kodu telefonicznego, który próbuje skonfigurować sieci lub plasterki, przechodząc przez API HAL i modem
  • Informowanie sieci o sposobie kierowania ruchu dla poszczególnych aplikacji (wprowadzone w systemie Android 12)
  • Informowanie aplikacji o tym, co dzieje się z ich ruchem sieciowym, za pośrednictwem interfejsów API ConnectivityManager , takich jak NetworkCallback , getActiveNetwork , getNetworkCapabilities .

Realizacja

Aby obsługiwać cięcie 5G na urządzeniu, urządzenie musi mieć modem obsługujący IRadio 1.6 HAL z interfejsem API setupDataCall_1_6 . Ten interfejs API konfiguruje połączenie danych i zawiera następujące parametry umożliwiające obsługę krojenia 5G:

  • trafficDescriptor : Określa deskryptor ruchu wysyłany do modemu
  • sliceInfo : Określa informacje dotyczące segmentu sieci, które mają być użyte w przypadku przekazania EPDG do 5G
  • matchAllRuleAllowed : Określa, czy dozwolone jest używanie domyślnej reguły URSP typu „dopasuj wszystko”. Telefonia ustawia tę opcję na true dla sieci domyślnych, ale nie dla plasterków. Reguła dopasowania wszystkich jest stosowana do sieci domyślnych. Gdy aplikacja żąda określonego wycinka, który nie jest dostępny, określony wycinek jest zgłaszany jako niedostępny. W przypadku aplikacji dla przedsiębiorstw struktura telefonii może zostać przywrócona do sieci domyślnej, jeśli sieć firmowa nie jest dostępna.

Modemy muszą także implementować interfejs API getSlicingConfig , chyba że zostanie on zgłoszony jako nieobsługiwany przez interfejs API getHalDeviceCapabilities .

Wymagania przedsiębiorstwa

Poniżej opisano wymagania stawiane przedsiębiorstwom w zakresie korzystania z podziału sieci 5G na urządzeniach w ramach korporacyjnego wdrożenia systemu Android.

  • Upewnij się, że w pełni zarządzane urządzenia lub urządzenia pracowników skonfigurowane z profilem do pracy obsługują sieć 5G SA z modemami obsługującymi interfejs API setupDataCall_1_6 .
  • Współpracuj z partnerem w zakresie konfiguracji plasterków i wydajności lub charakterystyki umowy SLA.

Włączanie dzielenia sieci 5G na urządzeniach skonfigurowanych z profilem do pracy

W przypadku urządzeń skonfigurowanych z profilami służbowymi dzielenie sieci 5G w AOSP jest domyślnie wyłączone. Aby włączyć podział sieci, administratorzy IT w przedsiębiorstwie mogą włączać lub wyłączać kierowanie ruchu aplikacji profilu służbowego do fragmentu sieci firmowej dla poszczególnych pracowników za pośrednictwem usługi EMM DPC, która korzysta z metody setPreferentialNetworkServiceEnabled w interfejsie API DevicePolicyManager (DPM) (wprowadzonym w systemie Android 12).

Dostawcy usług EMM z niestandardowymi kodami DPC muszą zintegrować interfejs API DevicePolicyManager , aby obsługiwać klientów korporacyjnych.

Regulamin URSP

Ta sekcja zawiera informacje dla operatorów dotyczące konfigurowania reguł URSP dla różnych kategorii wycinków, w tym ruchu korporacyjnego, CBS, małych opóźnień i ruchu o dużej przepustowości. Konfigurując reguły URSP dla różnych kategorii wycinków, przewoźnicy muszą używać następujących wartości specyficznych dla Androida.

ID Wartość Opis
OSId 97a498e3-fc92-5c94-8986-0333d06e4e47 OSID dla Androida to identyfikator UUID wersji 5 wygenerowany z przestrzenią nazw ISO OID i nazwą „Android”.

Przewoźnicy muszą skonfigurować reguły URSP dla każdego ruchu segmentowego ze składnikiem deskryptora ruchu jako „Identyfikator systemu operacyjnego + typ identyfikatora aplikacji systemu operacyjnego”. Na przykład wycinek „ENTERPRISE” musi mieć wartość 0x97A498E3FC925C9489860333D06E4E470A454E5445525052495345 . Ta wartość jest połączeniem identyfikatora OSId, długości OSAppId ( 0x0A ) i OSAppId. Aby uzyskać więcej informacji na temat typu komponentu deskryptora ruchu, zobacz 3GPP TS 24.526 Tabela 5.2.1 .

W poniższej tabeli opisano wartości OSAppId dla różnych kategorii wycinków.

Kategoria plasterka OSAppId Opis
PRZEDSIĘBIORSTWO 0x454E5445525052495345 OSAppId to tablica bajtowa reprezentująca ciąg „ENTERPRISE”
PRZEDSIĘBIORCZOŚĆ2 0x454E544552505249534532 OSAppId to tablica bajtowa reprezentująca ciąg „ENTERPRISE2”
PRZEDSIĘBIORCZOŚĆ3 0x454E544552505249534533 OSAppId to tablica bajtowa reprezentująca ciąg „ENTERPRISE3”
PRZEDSIĘBIORCZOŚĆ 4 0x454E544552505249534534 OSAppId to tablica bajtowa reprezentująca ciąg „ENTERPRISE4”
PRZEDSIĘBIORCZOŚĆ5 0x454E544552505249534535 OSAppId to tablica bajtowa reprezentująca ciąg „ENTERPRISE5”
CBS 0x434253 OSAppId to tablica bajtów reprezentująca ciąg „CBS”
PRIORITIZE_LATENCY 0x5052494f524954495a455f4c4154454e4359 OSAppId to tablica bajtów reprezentująca ciąg „PRIORITIZE_LATENCY”
PRIORITIZE_BANDWIDTH 0x5052494f524954495a455f42414e445749445448 OSAppId to tablica bajtowa reprezentująca ciąg „PRIORITIZE_BANDWIDTH”

Przykładowe zasady URSP

Poniższe tabele przedstawiają przykładowe reguły URSP dla ruchu korporacyjnego, CBS, małych opóźnień, dużej przepustowości i ruchu domyślnego.

Przedsiębiorstwo 1

Obsługa wersji Enterprise 1 jest dostępna w systemie Android 12 i nowszych wersjach. Poniżej znajduje się przykładowa reguła URSP dla ruchu ENTERPRISE1:

Zasada URSP nr 1 (przedsiębiorstwo 1)
Precedens 1 (0x01)
Deskryptor ruchu nr 1
Identyfikator systemu operacyjnego + typ identyfikatora aplikacji systemu operacyjnego 0x97A498E3FC925C9489860333D06E4E470A454E5445525052495345
Deskryptor wyboru trasy nr 1
Precedens 1 (0x01)
Składnik nr 1: S-NSSAI SST:XX SD:RRRRRR
Komponent nr 2: DNN przedsiębiorstwo
Deskryptor wyboru trasy nr 2
Precedens 2 (0x02)
Komponent nr 1: DNN przedsiębiorstwo

Przedsiębiorstwo 2

Wsparcie dla Enterprise 2 jest dostępne w systemie Android 13 i nowszych wersjach. Poniżej znajduje się przykładowa reguła URSP dla ruchu ENTERPRISE2:

Zasada URSP nr 2 (przedsiębiorstwo 2)
Precedens 2 (0x02)
Deskryptor ruchu nr 1
Identyfikator systemu operacyjnego + typ identyfikatora aplikacji systemu operacyjnego 0x97A498E3FC925C9489860333D06E4E470B454E544552505249534532
Deskryptor wyboru trasy nr 1
Precedens 1 (0x01)
Składnik nr 1: S-NSSAI SST:XX SD:RRRRRR
Komponent nr 2: DNN przedsiębiorstwo2
Deskryptor wyboru trasy nr 2
Precedens 2 (0x02)
Komponent nr 1: DNN przedsiębiorstwo2

Przedsiębiorstwo 3

Wsparcie dla Enterprise 3 jest dostępne w systemie Android 13 i nowszych wersjach. Poniżej znajduje się przykładowa reguła URSP dla ruchu ENTERPRISE3:

Zasada URSP nr 3 (przedsiębiorstwo 3)
Precedens 3 (0x03)
Deskryptor ruchu nr 1
Identyfikator systemu operacyjnego + typ identyfikatora aplikacji systemu operacyjnego 0x97A498E3FC925C9489860333D06E4E470B454E544552505249534533
Deskryptor wyboru trasy nr 1
Precedens 1 (0x01)
Składnik nr 1: S-NSSAI SST:XX SD:RRRRRR
Komponent nr 2: DNN przedsiębiorstwo3
Deskryptor wyboru trasy nr 2
Precedens 2 (0x02)
Komponent nr 1: DNN przedsiębiorstwo3

Przedsiębiorstwo 4

Wsparcie dla Enterprise 4 jest dostępne w systemie Android 13 i nowszych wersjach. Poniżej znajduje się przykładowa reguła URSP dla ruchu ENTERPRISE4:

Zasada URSP nr 4 (przedsiębiorstwo 4)
Precedens 4 (0x04)
Deskryptor ruchu nr 1
Identyfikator systemu operacyjnego + typ identyfikatora aplikacji systemu operacyjnego 0x97A498E3FC925C9489860333D06E4E470B454E544552505249534534
Deskryptor wyboru trasy nr 1
Precedens 1 (0x01)
Składnik nr 1: S-NSSAI SST:XX SD:RRRRRR
Komponent nr 2: DNN przedsiębiorstwo4
Deskryptor wyboru trasy nr 2
Precedens 2 (0x02)
Komponent nr 1: DNN przedsiębiorstwo4

Przedsiębiorstwo 5

Wsparcie dla Enterprise 5 jest dostępne w systemie Android 13 i nowszych wersjach. Poniżej znajduje się przykładowa reguła URSP dla ruchu ENTERPRISE5:

Zasada URSP nr 5 (przedsiębiorstwo 5)
Precedens 5 (0x05)
Deskryptor ruchu nr 1
Identyfikator systemu operacyjnego + typ identyfikatora aplikacji systemu operacyjnego 0x97A498E3FC925C9489860333D06E4E470B454E544552505249534535
Deskryptor wyboru trasy nr 1
Precedens 1 (0x01)
Składnik nr 1: S-NSSAI SST:XX SD:RRRRRR
Komponent nr 2: DNN przedsiębiorstwo5
Deskryptor wyboru trasy nr 2
Precedens 2 (0x02)
Komponent nr 1: DNN przedsiębiorstwo5

CBS

Obsługa CBS jest dostępna w systemie Android 13 i nowszych. Poniżej znajduje się przykładowa reguła URSP dla ruchu CBS:

Zasada URSP nr 6 (CBS)
Precedens 6 (0x06)
Deskryptor ruchu nr 1
Identyfikator systemu operacyjnego + typ identyfikatora aplikacji systemu operacyjnego 0x97A498E3FC925C9489860333D06E4E4703434253
Deskryptor wyboru trasy nr 1
Precedens 1 (0x01)
Składnik nr 1: S-NSSAI SST:XX SD:RRRRRR
Komponent nr 2: DNN cbs
Deskryptor wyboru trasy nr 2
Precedens 2 (0x02)
Komponent nr 1: DNN cbs

Małe opóźnienia

Obsługa małych opóźnień jest dostępna w systemie Android 13 i nowszych wersjach. Poniżej znajduje się przykładowa reguła URSP dla ruchu LOW_LATENCY:

Zasada URSP nr 7 (niskie opóźnienie)
Precedens 7 (0x07)
Deskryptor ruchu nr 1
Identyfikator systemu operacyjnego + typ identyfikatora aplikacji systemu operacyjnego 0x97A498E3FC925C9489860333D06E4E47125052494f524954495a455f4c4154454e4359
Deskryptor wyboru trasy nr 1
Precedens 1 (0x01)
Składnik nr 1: S-NSSAI SST:XX SD:RRRRRR
Komponent nr 2: DNN czas oczekiwania
Deskryptor wyboru trasy nr 2
Precedens 2 (0x02)
Komponent nr 1: DNN czas oczekiwania

Wysoka przepustowość

Obsługa dużej przepustowości jest dostępna w systemie Android 13 i nowszych wersjach. Poniżej znajduje się przykładowa reguła URSP dla ruchu HIGH_BANDWIDTH:

Zasada URSP nr 8 (duża przepustowość)
Precedens 8 (0x08)
Deskryptor ruchu nr 1
Identyfikator systemu operacyjnego + typ identyfikatora aplikacji systemu operacyjnego 97A498E3FC925C9489860333D06E4E47145052494f524954495a455f42414e445749445448
Deskryptor wyboru trasy nr 1
Precedens 1 (0x01)
Składnik nr 1: S-NSSAI SST:XX SD:RRRRRR
Komponent nr 2: DNN przepustowość łącza
Deskryptor wyboru trasy nr 2
Precedens 2 (0x02)
Komponent nr 1: DNN przepustowość łącza

Domyślny

Zasada URSP nr 9 (domyślna)
Precedens 9 (0x09)
Deskryptor ruchu nr 1
pasuje do wszystkiego Nie dotyczy
Deskryptor wyboru trasy nr 1
Precedens 1 (0x01)
Składnik nr 1: S-NSSAI SST:XX SD:RRRRRR

Testowanie

Aby przetestować podział sieci 5G, wykonaj następujący test ręczny.

Aby skonfigurować urządzenie do testowania, wykonaj następujące czynności:

  1. Upewnij się, że zasada URSP jest skonfigurowana z regułą inną niż domyślna, która odpowiada kategorii przedsiębiorstwa i że odpowiedni deskryptor wyboru trasy odwzorowuje kategorię przedsiębiorstwa na wycinek przedsiębiorstwa; oraz domyślną regułę kierującą ruch do domyślnego segmentu Internetu.

  2. Upewnij się, że na urządzeniu skonfigurowano profil do pracy.

  3. Wyraź zgodę na korzystanie z podziału sieci przez DPC

Aby przetestować zachowanie podziału sieci 5G, wykonaj następujące czynności:

  1. Sprawdź, czy sesja PDU została ustanowiona z segmentem korporacyjnym (na przykład przy użyciu określonego adresu IP) i czy aplikacje w profilu służbowym korzystają z tej sesji PDU.
  2. Sprawdź, czy z domyślnym segmentem internetowym została ustanowiona osobna sesja PDU i czy aplikacje w profilu osobistym korzystają z sesji PDU.

Sprzedaż dodatkowa krojenia 5G

Funkcja dodatkowej sprzedaży dzielenia sieci 5G, dostępna w systemie Android 14-QPR1, umożliwia operatorom oferowanie użytkownikom ulepszonych możliwości sieci (opóźnienie i przepustowość) poprzez dzielenie sieci 5G.

Funkcja dodatkowej sprzedaży 5G wykorzystuje odpowiedź TS.43 z serwera uprawnień operatora do kierowania przepływem zakupów. Przewoźnicy mogą wykorzystać odpowiedź do określenia adresu URL widoku internetowego zakupu operatora, wysłać dodatkowe dane do widoku internetowego i wskazać, czy wycinek jest udostępniany i dostępny w sieci operatora.

Operatorzy mogą dostosować zachowanie funkcji dodatkowej sprzedaży sieci 5G za pomocą konfiguracji operatorów, które kontrolują, czy można składać żądania zakupu, kiedy aplikacje mogą żądać funkcji premium i jak długo platforma telefonii czeka na odpowiedzi od użytkownika lub sieci.

Funkcja sprzedaży dodatkowej 5G udostępnia interfejs o nazwie DataBoostWebServiceFlow , który umożliwia komunikację między systemem Android a przeglądarką internetową operatora.

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

Przepływ zakupów związanych ze sprzedażą dodatkową w sieci 5G

Rysunek 2. Przepływ zakupów związanych z sprzedażą dodatkową w sieci 5G.

Proces nadawania uprawnień zgodnie z TS.43

Kiedy użytkownik żąda rozszerzonych możliwości sieci, struktura telefonii żąda konfiguracji uprawnień do usług dla żądanych funkcji premium. Jeśli odpowiedź TS.43 jest prawidłowa, struktura telefonii używa pól z odpowiedzi HTTP do kierowania żądaniem zakupu.

Pola zakupu plasterków

Konfiguracja uprawnień TS.43 obejmuje następujące pola zakupu plasterków:

Stan uprawnień

Klucz: EntitlementStatus

Typ: int

Obsługiwane wartości: 0 (wyłączone), 1 (włączone), 2 (niekompatybilne), 3 (wyposażenie), 4 (w zestawie)

Stan udostępnienia

Klucz: ProvStatus

Typ: int

Obsługiwane wartości: 0 (brak obsługi), 1 (dostępność), 2 (niedostępność), 3 (w toku)

Struktura telefonii wykorzystuje kombinację statusu uprawnień i statusu udostępniania do określenia bieżącego stanu zakupu wycinka. Wynik może być jednym z następujących:

Jeśli stan uprawnienia to 1 (włączone), a stan udostępnienia to 0 (brak obsługi administracyjnej), struktura telefonii wyświetla użytkownikowi powiadomienie o sprzedaży dodatkowej, aby mógł zakupić dodatek za pośrednictwem przeglądarki internetowej operatora. W poniższej tabeli opisano zachowanie środowiska telefonii dla różnych kombinacji wartości statusu udostępniania i uprawnień.

Stan udostępnienia
Brak obsługi administracyjnej ( 0 ) Zapewnione ( 1 ) 1 ) Niedostępne ( 2 ) W toku ( 3 )
Stan uprawnień Niepełnosprawny ( 0 ) Przegrany Przegrany Przegrany Przegrany
Włączone ( 1 ) Pokaż widok sieciowy Już zakupiona Już zakupiona W trakcie
Niekompatybilny ( 2 ) Przegrany Przegrany Przegrany Przegrany
Udostępnianie ( 3 ) Błąd przewoźnika Błąd przewoźnika W trakcie W trakcie
Zawiera ( 4 ) Błąd przewoźnika Już zakupiona Już zakupiona Błąd przewoźnika

Pola przepływu usług

Odpowiedź TS.43 określa adres URL, dane użytkownika i typ zawartości, aby dostosować zachowanie podczas przeglądania stron internetowych zakupów u operatora. Jeśli typ zawartości nie jest określony, adres URL jest ładowany jako żądanie GET. Jeśli dane użytkownika istnieją, są dołączane do adresu URL jako parametr zapytania (na przykład https://www.android.com?encodedValue=Base64EncodedUserData ); a jeśli nie istnieje, adres URL zostanie użyty w niezmienionej postaci (na przykład https://www.android.com ).
Jeśli typ zawartości jest określony w formacie JSON lub XML, adres URL jest ładowany jako żądanie POST, a dane użytkownika (zdekodowane, jeśli są zakodowane w Base 64) są wysyłane jako dane dla żądania POST.

Adres URL

Klucz: ServiceFlow_URL

Typ: String

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

Dane użytkownika

Klucz: ServiceFlow_UserData

Typ: String

Przykład: "encodedValue=Base64EncodedUserData"

Typ zawartości

Klucz: ServiceFlow_ContentsType

Typ: String

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

Konfiguracje przewoźników

Poniżej przedstawiono dostępne konfiguracje operatorów umożliwiające dostosowanie zachowania funkcji sprzedaży dodatkowej 5G.

KEY_SUPPORTED_PREMIUM_CAPABILITIES_INT_ARRAY

Lista obsługiwanych funkcji premium. To jest tablica typu int TelephonyManager.PremiumCapability . Te możliwości premium mają tę samą wartość, co odpowiednia klasa NetworkCapabilities.NetCapability . Jeśli zażądano funkcji premium, która nie jest uwzględniona w tej konfiguracji, żądanie zakupu kończy się niepowodzeniem i wynikiem CARRIER_DISABLED .

W systemie Android 14 obsługiwana jest tylko PREMIUM_CAPABILITY_PRIORITIZE_LATENCY .

KEY_PREMIUM_CAPABILITY_MAXIMUM_DAILY_NOTIFICATION_COUNT_INT

Maksymalna dzienna liczba pokazań użytkownikowi powiadomienia o dodatkowej sprzedaży. Jeśli dzienne maksimum zostanie osiągnięte, powiadomienie o sprzedaży dodatkowej nie będzie wyświetlane, a żądania zakupu (w tym żądania serwera uprawnień) będą ograniczane do północy następnego dnia. Żądania zakupu złożone po osiągnięciu dziennego maksimum kończą się niepowodzeniem i wynikiem PURCHASE_PREMIUM_CAPABILITY_RESULT_THROTTLED .

KEY_PREMIUM_CAPABILITY_MAXIMUM_MONTHLY_NOTIFICATION_COUNT_INT

Maksymalna miesięczna liczba pokazań użytkownikowi powiadomienia o dodatkowej sprzedaży. Jeśli zostanie osiągnięte miesięczne maksimum, powiadomienie o sprzedaży dodatkowej nie będzie wyświetlane, a żądania zakupu (w tym żądania serwera uprawnień) będą ograniczane do pierwszego dnia kolejnego miesiąca. Żądania zakupu złożone po osiągnięciu miesięcznego maksimum kończą się niepowodzeniem i wynikiem PURCHASE_PREMIUM_CAPABILITY_RESULT_THROTTLED .

KEY_PREMIUM_CAPABILITY_PURCHASE_URL_STRING

Adres URL zakupu u przewoźnika zapasowego, który będzie wyświetlany użytkownikowi po kliknięciu powiadomienia o sprzedaży dodatkowej. Jeśli adres URL zakupu nie zostanie znaleziony w odpowiedzi TS.43 z serwera uprawnień, zamiast tego zostanie użyta ta wartość. Jeśli ani adres URL z odpowiedzi TS.43, ani konfiguracja operatora nie są prawidłowe, żądanie zakupu kończy się niepowodzeniem i wynikiem jest PURCHASE_PREMIUM_CAPABILITY_RESULT_CARRIER_DISABLED .

KEY_PREMIUM_CAPABILITY_SUPPORTED_ON_LTE_BOOL

Czy zezwolić na zakup funkcji premium, gdy urządzenie jest podłączone do Long-Term Evolution (LTE). Jeśli true , zamówienia można składać zarówno w LTE, jak i w Nowym Radiu (NR). Jeśli false , żądania zakupu można składać tylko na NR, a żądania składane na LTE kończą się niepowodzeniem i wynikiem jest PURCHASE_PREMIUM_CAPABILITY_RESULT_NETWORK_NOT_AVAILABLE .

KEY_PREMIUM_CAPABILITY_NOTIFICATION_DISPLAY_TIMEOUT_MILLIS_LONG

Czas wyświetlania użytkownikowi powiadomienia o dodatkowej sprzedaży zakupu, 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 który kolejne żądania zakupu powinny być ograniczane po awarii spowodowanej przekroczeniem limitu czasu lub anulowaniem przez użytkownika. Jeśli użytkownik nie kliknie powiadomienia o dodatkowej sprzedaży zakupu w terminie określonym przez KEY_PREMIUM_CAPABILITY_NOTIFICATION_DISPLAY_TIMEOUT_MILLIS_LONG lub jeśli anuluje lub odrzuci powiadomienie, rozpoczyna się odliczanie czasu wycofywania. Gdy ten licznik czasu jest aktywny, żądania zakupu kończą się niepowodzeniem i wynikiem PURCHASE_PREMIUM_CAPABILITY_RESULT_THROTTLED .

KEY_PREMIUM_CAPABILITY_PURCHASE_CONDITION_BACKOFF_HYSTERESIS_TIME_MILLIS_LONG

Czas, przez który kolejne żądania zakupu powinny być ograniczane po awarii spowodowanej przez operatora lub sieć. Jeśli sprawdzenie uprawnień nie powiedzie się, adres URL będzie niedostępny lub adres URL zakupu u operatora wskazuje na błąd, rozpoczyna się odliczanie czasu wycofywania. Gdy ten licznik czasu jest aktywny, żądania zakupu kończą się niepowodzeniem i wynikiem PURCHASE_PREMIUM_CAPABILITY_RESULT_THROTTLED .

KEY_PREMIUM_CAPABILITY_NETWORK_SETUP_TIME_MILLIS_LONG

Czas, w którym sieć musi skonfigurować konfigurację podziału dla możliwości zakupu premium. W tym okresie kolejne żądania zakupu są blokowane i zwracają wynik PURCHASE_PREMIUM_CAPABILITY_RESULT_PENDING_NETWORK_SETUP . Jeśli sieć nie skonfiguruje na czas konfiguracji podziału, aplikacje mogą ponownie poprosić o zakup funkcji premium. Telefonia nie uznaje zakupu za zakończony do czasu wysłania odpowiedniej konfiguracji podziału, niezależnie od tego, czy użytkownik zapłacił przewoźnikowi, czy nie.

Interfejs JavaScript

Gdy użytkownik kliknie powiadomienie o wzmocnieniu sieci, zostanie mu wyświetlony obiekt WebView z adresem URL zakupu u operatora. Przewoźnicy mogą korzystać z interfejsów API dostępnych w interfejsie Javascript DataBoostWebServiceFlow w swojej witrynie zakupów, aby komunikować się z aplikacją do zakupu plasterków.

Witryna internetowa operatora może uzyskać żądaną funkcję premium za pomocą metody getRequestedCapability() .

Jeśli zakup się powiedzie, witryna operatora musi powiadomić aplikację do zakupu plasterków za pomocą notifyPurchaseSuccessful() lub notifyPurchaseSuccessful(duration) gdzie duration jest opcjonalnym parametrem wskazującym zamierzony czas trwania plasterka.

Jeśli zakup się nie powiedzie, witryna operatora musi powiadomić aplikację do zakupu plasterków za pomocą metody notifyPurchaseFailed(code, reason) , gdzie code to kod błędu wskazujący przyczynę niepowodzenia, a reason to czytelny dla człowieka powód niepowodzenia, jeśli kod błędu jest nieznany.

Jeśli którakolwiek z tych metod odpowiedzi nie zostanie wywołana, zakup nie zostanie uznany za ukończony, a żądanie zakupu ostatecznie przekroczy limit czasu.

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

Po sfinalizowaniu zakupu przewoźnik musi zaktualizować reguły URSP o plasterek PRIORITIZE_LATENCY na urządzeniu użytkownika.