На устройствах с Android 12 и более поздних версий поддерживается сегментирование сети 5G. Это технология виртуализации сети, которая позволяет разделить одно сетевое подключение на несколько отдельных виртуальных подключений, предоставляющих разным типам трафика разное количество ресурсов. Сегментирование сети 5G позволяет операторам выделять часть сети для предоставления определенных функций определенному сегменту клиентов. В Android 12 появились следующие возможности сегментирования корпоративных сетей 5G, которые операторы могут предоставлять своим корпоративным клиентам:
Корпоративное разделение на полностью управляемых устройствах
Если компания предоставляет сотрудникам полностью управляемые устройства, поставщики сетевых услуг могут предоставить ей один или несколько активных слайсов корпоративной сети, на которые будет направляться трафик с устройств компании. Начиная с Android 12 операторы могут предоставлять корпоративные фрагменты с помощью правил URSP, а не настраивать их через APN.
Разделение трафика корпоративных приложений на устройствах с рабочими профилями
На устройствах с рабочим профилем и Android 12 трафик из всех приложений в рабочем профиле можно направлять в корпоративный сегмент сети. Организации могут включить эту функцию с помощью контроллера политик устройств (DPC).
Решение для рабочего профиля обеспечивает автоматический уровень аутентификации и контроля доступа, необходимый предприятиям, чтобы трафик только из корпоративных приложений в рабочем профиле направлялся в сегмент корпоративной сети. Приложения в рабочем профиле не нужно изменять, чтобы явно запросить сегмент корпоративной сети.
Как работает сегментирование сети 5G в AOSP
В Android 12 добавлена поддержка сегментирования сетей 5G. Для этого в кодовую базу телефонии в AOSP и модуль точки доступа были добавлены существующие API подключения, необходимые для сегментирования сетей.
Платформа Android Telephony предоставляет HAL и API телефонии для поддержки сегментирования на основе сетевых запросов, отправленных основным сетевым кодом, и возможностей сегментирования сетей 5G в модеме. На рисунке 1 показаны компоненты функции сегментирования сети 5G.
Рисунок 1. Архитектура сегментирования сетей 5G в AOSP.
Платформа телефонии и связи поддерживает:
- Преобразование сетевых запросов для категорий слайсов в дескрипторы трафика, которые затем передаются в модем для сопоставления трафика URSP и выбора маршрута.
- Переход на сеть по умолчанию, если сегмент корпоративной сети недоступен.
- Направление трафика из всех приложений в рабочем профиле на соответствующее подключение.
Поддержка сегментирования для организаций
- обнаруживать наличие рабочего профиля на устройстве;
- Проверка разрешений или инструкций по маршрутизации, предоставленных контроллером политики устройств, который используется системным администратором компании.
В основной сетевой сервис в Android 12 были внесены следующие изменения в модуль Tethering:
- Добавляет большинство общедоступных или системных классов API
android.net.*в модуль Tethering. Расширяет границы модуля "Режим модема", чтобы включить:
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.javaf/b/services/core/java/com/android/server/TestNetworkService.java
Код VPN перенесен из модуля Tethering.
В Android 12 в модуль тетеринга перенесен код со следующими возможностями:
- Получение запросов от приложений на подключение к сети
- Получение запросов от системы (например, "поместить эти приложения в корпоративный фрагмент"; появилось в Android 12).
- Отправка запросов из системы в код телефонии, который пытается настроить сети или сегменты через HAL API и модем.
- Передача демону netd информации о том, как маршрутизировать трафик для каждого приложения (появилась в Android 12).
- Информирование приложений о том, что происходит с их сетевым трафиком, с помощью API
ConnectivityManager, таких какNetworkCallback,getActiveNetworkиgetNetworkCapabilities.
Реализация
Чтобы устройство поддерживало сегментирование 5G, оно должно быть оснащено модемом, который поддерживает HAL IRadio 1.6 с API setupDataCall_1_6. Этот API настраивает подключение для передачи данных и включает следующие параметры для поддержки сегментирования сетей 5G:
trafficDescriptor: дескриптор трафика, отправленный модемуsliceInfo: указывает информацию о фрагменте сети, который будет использоваться при переключении с EPDG на 5G.matchAllRuleAllowed– указывает, разрешено ли использовать правило URSP по умолчанию, которое соответствует всем запросам. Телефония устанавливает для этого параметра значение true для сетей по умолчанию, но не для фрагментов. Правило "Соответствовать всем" применяется к сетям по умолчанию. Если приложение запрашивает определенный фрагмент, который недоступен, то этот фрагмент будет отмечен как недоступный. Для корпоративных приложений фреймворк Telephony может переключиться на сеть по умолчанию, если корпоративная сеть недоступна.
Модемы также должны реализовывать API getSlicingConfig, если только API getHalDeviceCapabilities не сообщает, что он не поддерживается.
Требования для предприятий
Ниже описаны требования к использованию сегментирования сетей 5G на устройствах, развернутых в корпоративной среде Android.
- Убедитесь, что полностью управляемые устройства или устройства сотрудников, настроенные с рабочим профилем, поддерживают 5G SA и оснащены модемами, которые поддерживают API
setupDataCall_1_6. - Настройте сегменты и отслеживайте их производительность или характеристики SLA вместе с партнером по оператору связи.
Включить сегментирование сетей 5G на устройствах с рабочим профилем
На устройствах с рабочими профилями в AOSP по умолчанию отключено разделение сети 5G. Чтобы включить сегментирование сети, администраторы могут разрешить или запретить маршрутизацию трафика приложений рабочего профиля в сегмент корпоративной сети для каждого сотрудника с помощью контроллера политик на устройствах (DPC) EMM, который использует метод setPreferentialNetworkServiceEnabled в API DevicePolicyManager (DPM) (представлен в Android 12).
Поставщики EMM-решений с собственными контроллерами политик должны интегрировать API DevicePolicyManager, чтобы поддерживать корпоративных клиентов.
Правила URSP
В этом разделе приведена информация для операторов о том, как настраивать правила URSP для разных категорий сегментов, включая корпоративные, CBS, с низкой задержкой, с высокой пропускной способностью и трафик унифицированных коммуникаций.
При настройке правил URSP операторы могут использовать дескрипторы трафика на основе следующих факторов:
- Идентификатор ОС и идентификатор приложения ОС, тип компонента
0x08, поддерживается в Android 12 и более поздних версиях - Тип возможности подключения, тип компонента
0x90, поддерживается в Android 17 и более поздних версиях
Идентификатор ОС и идентификатор приложения ОС
При настройке правил URSP с использованием компонента дескриптора трафика типа "Идентификатор ОС" и "Идентификатор приложения ОС" операторы могут использовать следующие значения идентификатора ОС и идентификатора приложения ОС, относящиеся к Android.
| ID | Значение | Описание |
|---|---|---|
| Идентификатор ОС | 97a498e3-fc92-5c94-8986-0333d06e4e47 |
Идентификатор ОС для Android – это UUID версии 5, созданный с использованием пространства имен ISO OID и названия Android. |
Операторы, настраивающие правила URSP с использованием типа идентификатора ОС и идентификатора приложения ОС, должны настроить трафик каждого сегмента с компонентом дескриптора трафика как конкатенацию идентификатора ОС, длины идентификатора приложения ОС (0x0A) и идентификатора приложения ОС. Например, в сегменте ENTERPRISE должно быть указано значение 0x97A498E3FC925C9489860333D06E4E470A454E5445525052495345.
Подробнее о типе компонента дескриптора трафика…
В таблице ниже описаны значения 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. |
PRIORITIZE_UNIFIED_COMMUNICATIONS |
0x5052494f524954495a455f554e49464945445f434f4d4d554e49434154494f4e53 |
OSAppId – это массив байтов, представляющий строку PRIORITIZE_UNIFIED_COMMUNICATIONS. |
Мы не планируем добавлять новые значения OSAppId. Мы улучшим дескриптор трафика для возможностей подключения.
Возможности подключения
В Android 17 и более поздних версиях (Radio HAL AIDL 2.5 и более поздних версий) Android поддерживает компонент дескриптора трафика возможностей подключения (тип 0x90), определенный в таблице 5.2.1 спецификации 3GPP TS 24.526.
Когда приложение или системный сервис запрашивает сеть с определенной возможностью,
стек данных телефонии Android сопоставляет запрошенную
NetworkCapabilities со стандартным значением возможности
подключения, которое указывается в TrafficDescriptor
, отправляемом модему при настройке вызова данных (setupDataCall).
Спецификация 3GPP позволяет использовать несколько возможностей подключения в
одном дескрипторе, но фреймворк телефонии Android 17 сопоставляет несколько
запрошенных возможностей подключения с одной возможностью подключения.
В таблице ниже описано сопоставление возможностей сети Android с возможностями подключения 3GPP по умолчанию.
| Возможности сети | Возможность подключения | Значение (шестнадцатеричное или десятичное) | Описание |
|---|---|---|---|
NET_CAPABILITY_IMS |
CONNECTION_CAPABILITY_IMS |
0x01 (1) |
Голосовые и видеозвонки IMS |
NET_CAPABILITY_MMS |
CONNECTION_CAPABILITY_MMS |
0x02 (2) |
Трафик MMS |
NET_CAPABILITY_SUPL |
CONNECTION_CAPABILITY_SUPL |
0x04 (4) |
Secure User Plane Location (SUPL) |
NET_CAPABILITY_INTERNET |
CONNECTION_CAPABILITY_INTERNET |
0x08 (8) |
Трафик мобильного интернета по умолчанию |
NET_CAPABILITY_PRIORITIZE_LATENCY |
CONNECTION_CAPABILITY_REAL_TIME_INTERACTIVE |
0xA6 (166) |
Интерактивный трафик в реальном времени (например, игры, дополненная и виртуальная реальность). |
NET_CAPABILITY_PRIORITIZE_BANDWIDTH |
CONNECTION_CAPABILITY_DOWNLINK_STREAMING |
0xA3 (163) |
Трафик потоковой передачи с высокой пропускной способностью в нисходящем канале |
NET_CAPABILITY_PRIORITIZE_UNIFIED_COMMUNICATIONS |
CONNECTION_CAPABILITY_UNIFIED_COMMUNICATIONS |
0xA7 (167) |
Унифицированные коммуникации (например, голосовые или видеозвонки через интернет). |
Конфигурация URSP оператора и обратная совместимость
Чтобы обеспечить бесперебойную работу на устройствах с разными версиями HAL и ОС, операторам следует учитывать следующее поведение при инициализации правил URSP:
- Устройства с Android 16 или более ранней версией (Radio HAL AIDL 2.4 и более ранние версии). Модем получает как минимум
OSAppIdв дескрипторе трафика. - Устройства с Android 17 или более поздней версии (AIDL 2.5 и более поздней версии). Для премиум-функций слайса (таких как низкая задержка, высокая пропускная способность и унифицированные коммуникации) платформа заполняет в дескрипторе трафика
OSAppId,ConnectionCapabilityили оба поля.
Операторы могут настраивать правила URSP одним из следующих способов:
- Правила на основе приоритета (рекомендуется)
- Правило А (более высокий приоритет, меньшее числовое значение приоритета, например 10): соответствие возможностям подключения (например,
0xA6для низкой задержки,0xA3для высокой пропускной способности или0xA7для унифицированных коммуникаций). Устройства с Android 17 и более поздних версий сначала применяют это правило. - Правило Б (более низкий приоритет, более высокое число приоритета, например 20): сопоставление по идентификатору ОС и типу идентификатора приложения ОС (например,
PRIORITIZE_LATENCY). Более старые устройства, которые не поддерживают возможность подключения в HAL, соответствуют этому резервному правилу.
- Правило А (более высокий приоритет, меньшее числовое значение приоритета, например 10): соответствие возможностям подключения (например,
- Правило на основе идентификатора приложения ОС (устаревшее):
- Операторы связи могут продолжать использовать существующие правила URSP на основе идентификатора ОС и идентификатора приложения ОС. Поскольку устройства с Android 17 и более поздними версиями ОС по-прежнему проходят проверку
OSAppId, и новые, и старые устройства успешно соответствуют этим правилам.
- Операторы связи могут продолжать использовать существующие правила URSP на основе идентификатора ОС и идентификатора приложения ОС. Поскольку устройства с Android 17 и более поздними версиями ОС по-прежнему проходят проверку
- Комбинированное правило (условие "И")
- Операторы связи могут указать идентификатор ОС, идентификатор приложения ОС и возможности подключения в одном дескрипторе трафика. Это правило применяется только к устройствам с Android 17 или более поздней версии и AIDL 2.5 или более поздней версии.
Примеры правил URSP
В таблицах ниже приведены примеры правил URSP для корпоративного трафика, трафика CBS, трафика с низкой задержкой, трафика с высокой пропускной способностью, трафика унифицированных коммуникаций и трафика по умолчанию.
Enterprise 1
Поддержка Enterprise 1 доступна в Android 12 и более поздних версиях.
Ниже приведен пример правила URSP для трафика ENTERPRISE1:
| Правило URSP 1 (ENTERPRISE1) | |
|---|---|
| Приоритет | 1 (0x01) |
| Описание трафика № 1 | |
| Идентификатор ОС + тип идентификатора приложения ОС | 0x97A498E3FC925C9489860333D06E4E470A454E5445525052495345 |
| Дескриптор выбора маршрута 1 | |
| Приоритет | 1 (0x01) |
| Компонент 1. S-NSSAI | SST:XX SD:YYYYYY |
| Компонент 2: DNN | Для бизнеса |
| Дескриптор выбора маршрута № 2 | |
| Приоритет | 2 (0x02) |
| Компонент 1. Глубокая нейронная сеть | Для бизнеса |
Enterprise 2
Поддержка Enterprise 2 доступна в Android 13 и более поздних версиях.
Ниже приведен пример правила URSP для трафика ENTERPRISE2:
| Правило URSP 2 (ENTERPRISE2) | |
|---|---|
| Приоритет | 2 (0x02) |
| Описание трафика № 1 | |
| Идентификатор ОС + тип идентификатора приложения для ОС | 0x97A498E3FC925C9489860333D06E4E470B454E544552505249534532 |
| Описание выбора маршрута № 1 | |
| Приоритет | 1 (0x01) |
| Компонент 1. S-NSSAI | SST:XX SD:YYYYYY |
| Компонент 2: DNN | enterprise2 |
| Дескриптор выбора маршрута 2 | |
| Приоритет | 2 (0x02) |
| Компонент 1. Глубокая нейронная сеть | enterprise2 |
Enterprise 3
Enterprise 3 поддерживается в Android 13 и более поздних версиях.
Ниже приведен пример правила URSP для трафика ENTERPRISE3:
| Правило URSP 3 (ENTERPRISE3) | |
|---|---|
| Приоритет | 3 (0x03) |
| Описание трафика № 1 | |
| Идентификатор ОС + тип идентификатора приложения ОС | 0x97A498E3FC925C9489860333D06E4E470B454E544552505249534533 |
| Дескриптор выбора маршрута 1 | |
| Приоритет | 1 (0x01) |
| Компонент 1. S-NSSAI | SST:XX SD:YYYYYY |
| Компонент 2: DNN | enterprise3 |
| Дескриптор выбора маршрута 2 | |
| Приоритет | 2 (0x02) |
| Компонент 1. Глубокая нейронная сеть | enterprise3 |
Enterprise 4
Поддержка Enterprise 4 доступна в Android 13 и более поздних версиях.
Ниже приведен пример правила URSP для трафика ENTERPRISE4:
| Правило URSP 4 (ENTERPRISE4) | |
|---|---|
| Приоритет | 4 (0x04) |
| Описание трафика № 1 | |
| Идентификатор ОС + тип идентификатора приложения ОС | 0x97A498E3FC925C9489860333D06E4E470B454E544552505249534534 |
| Дескриптор выбора маршрута № 1 | |
| Приоритет | 1 (0x01) |
| Компонент 1. S-NSSAI | SST:XX SD:YYYYYY |
| Компонент 2: DNN | enterprise4 |
| Дескриптор выбора маршрута 2 | |
| Приоритет | 2 (0x02) |
| Компонент 1. Глубокая нейронная сеть | enterprise4 |
Enterprise 5
Поддержка Enterprise 5 доступна в Android 13 и более поздних версиях.
Ниже приведен пример правила URSP для трафика ENTERPRISE5:
| Правило URSP 5 (ENTERPRISE5) | |
|---|---|
| Приоритет | 5 (0x05) |
| Описание трафика № 1 | |
| Идентификатор ОС + тип идентификатора приложения ОС | 0x97A498E3FC925C9489860333D06E4E470B454E544552505249534535 |
| Дескриптор выбора маршрута 1 | |
| Приоритет | 1 (0x01) |
| Компонент 1. S-NSSAI | SST:XX SD:YYYYYY |
| Компонент 2: DNN | enterprise5 |
| Дескриптор выбора маршрута 2 | |
| Приоритет | 2 (0x02) |
| Компонент 1: DNN | enterprise5 |
CBS
Поддержка CBS доступна в Android 13 и более поздних версиях. Ниже приведен пример правила URSP для трафика CBS:
| Правило 6 URSP (CBS) | |
|---|---|
| Приоритет | 6 (0x06) |
| Описание трафика № 1 | |
| Идентификатор ОС + тип идентификатора приложения ОС | 0x97A498E3FC925C9489860333D06E4E4703434253 |
| Дескриптор выбора маршрута 1 | |
| Приоритет | 1 (0x01) |
| Компонент 1. S-NSSAI | SST:XX SD:YYYYYY |
| Компонент 2: DNN | cbs |
| Дескриптор выбора маршрута 2 | |
| Приоритет | 2 (0x02) |
| Компонент 1: DNN | cbs |
Низкая задержка и возможность подключения
Поддержка возможностей подключения в правилах URSP доступна в Android 17 и более поздних версиях. Ниже приведен пример правила URSP для трафика с низкой задержкой, в котором используется дескриптор возможностей подключения:
| Правило URSP 7 (низкая задержка с возможностью подключения) | |
|---|---|
| Приоритет | 7 (0x07) |
| Описание трафика № 1 | |
| Тип возможностей подключения | 0xA6 (166: интерактивный контент в реальном времени) |
| Дескриптор выбора маршрута 1 | |
| Приоритет | 1 (0x01) |
| Компонент 1. S-NSSAI | SST:XX SD:YYYYYY |
| Компонент 2: DNN | задержка |
| Дескриптор выбора маршрута 2 | |
| Приоритет | 2 (0x02) |
| Компонент 1. Глубокая нейронная сеть | задержка |
Малая задержка с OSAppId
Поддержка низкой задержки доступна в Android 13 и более поздних версиях.
Ниже приведен пример правила URSP для трафика LOW_LATENCY с использованием OSAppId.
| Правило URSP 8 (низкая задержка с резервным OSAppId) | |
|---|---|
| Приоритет | 8 (0x08) |
| Описание трафика № 1 | |
| Идентификатор ОС + тип идентификатора приложения ОС | 0x97A498E3FC925C9489860333D06E4E47125052494f524954495a455f4c4154454e4359 |
| Дескриптор выбора маршрута 1 | |
| Приоритет | 1 (0x01) |
| Компонент 1. S-NSSAI | SST:XX SD:YYYYYY |
| Компонент 2: DNN | задержка |
| Дескриптор выбора маршрута 2 | |
| Приоритет | 2 (0x02) |
| Компонент 1. Глубокая нейронная сеть | задержка |
Высокая пропускная способность с возможностью подключения
Поддержка возможностей подключения в правилах URSP доступна в Android 17 и более поздних версиях. Ниже приведен пример правила URSP для трафика с высокой пропускной способностью, в котором используется дескриптор возможностей подключения:
| Правило URSP 9 (высокая пропускная способность с возможностью подключения) | |
|---|---|
| Приоритет | 9 (0x09) |
| Описание трафика № 1 | |
| Тип возможностей подключения | 0xA3 (163: стриминг в нисходящем канале) |
| Дескриптор выбора маршрута 1 | |
| Приоритет | 1 (0x01) |
| Компонент 1. S-NSSAI | SST:XX SD:YYYYYY |
| Компонент 2: DNN | пропускная способность |
| Дескриптор выбора маршрута № 2 | |
| Приоритет | 2 (0x02) |
| Компонент 1. Глубокая нейронная сеть | пропускная способность |
Высокая пропускная способность с OSAppId
Поддержка высокой пропускной способности доступна в Android 13 и более поздних версиях.
Ниже приведен пример правила URSP для трафика HIGH_BANDWIDTH с использованием OSAppId.
| Правило URSP 10 (высокая пропускная способность с резервным OSAppId) | |
|---|---|
| Приоритет | 10 (0x0A) |
| Описание трафика № 1 | |
| Идентификатор ОС + тип идентификатора приложения ОС | 0x97A498E3FC925C9489860333D06E4E47145052494f524954495a455f42414e445749445448 |
| Дескриптор выбора маршрута 1 | |
| Приоритет | 1 (0x01) |
| Компонент 1. S-NSSAI | SST:XX SD:YYYYYY |
| Компонент 2: DNN | пропускная способность |
| Дескриптор выбора маршрута № 2 | |
| Приоритет | 2 (0x02) |
| Компонент 1. Глубокая нейронная сеть | пропускная способность; |
Унифицированные коммуникации с возможностью подключения
Поддержка унифицированных коммуникаций доступна в Android 17 и более поздних версиях. Ниже приведен пример правила URSP для трафика UNIFIED_COMMUNICATIONS, использующего возможность подключения.
Поскольку трафик унифицированных коммуникаций передается через подключение к интернету по умолчанию, в дескрипторе выбора маршрута не требуется указывать отдельную точку доступа (DNN):
| Правило URSP 11 (унифицированные коммуникации с возможностью подключения) | |
|---|---|
| Приоритет | 11 (0x0B) |
| Описание трафика № 1 | |
| Тип возможностей подключения | 0xA7 (167: единая система связи) |
| Описание выбора маршрута № 1 | |
| Приоритет | 1 (0x01) |
| Компонент 1. S-NSSAI | SST:XX SD:YYYYYY |
Унифицированные коммуникации с OSAppId
Поддержка унифицированных коммуникаций доступна в Android 17 и более поздних версиях. Ниже приведен пример правила URSP для трафика UNIFIED_COMMUNICATIONS с использованием OSAppId:
| Правило URSP 12 (унифицированные коммуникации с резервным идентификатором приложения ОС) | |
|---|---|
| Приоритет | 12 (0x0C) |
| Описание трафика № 1 | |
| Идентификатор ОС + тип идентификатора приложения ОС | 0x97A498E3FC925C9489860333D06E4E47215052494F524954495A455F554E49464945445F434F4D4D554E49434154494F4E53 |
| Дескриптор выбора маршрута 1 | |
| Приоритет | 1 (0x01) |
| Компонент 1. S-NSSAI | SST:XX SD:YYYYYY |
По умолчанию
| Правило URSP 13 (по умолчанию) | |
|---|---|
| Приоритет | 13 (0x0D) |
| Дескриптор трафика № 1 | |
| match-all | Н/Д |
| Дескриптор выбора маршрута 1 | |
| Приоритет | 1 (0x01) |
| Компонент 1. S-NSSAI | SST:XX SD:YYYYYY |
Тестирование
Чтобы проверить сегментирование сети 5G, выполните следующие действия:
Чтобы настроить устройство для тестирования, выполните следующие действия:
Убедитесь, что в правиле выбора маршрута трафика (URSP) настроено нестандартное правило, которое соответствует категории предприятия, и что соответствующий дескриптор выбора маршрута сопоставляет категорию предприятия с сегментом предприятия, а также что задано правило по умолчанию, направляющее трафик в сегмент интернета по умолчанию.
Убедитесь, что на устройстве настроен рабочий профиль.
Включите использование сегментирования сети через контроллер политик на устройствах.
Чтобы проверить поведение сегментирования сети 5G, выполните следующие действия:
- Убедитесь, что сеанс PDU установлен с корпоративным слайсом (например, с использованием определенного IP-адреса) и что приложения в рабочем профиле используют этот сеанс PDU.
- Убедитесь, что для сегмента интернета по умолчанию установлен отдельный сеанс PDU и что приложения в личном профиле используют этот сеанс.
Предложение сегментирования сетей 5G
Функция дополнительной продажи сегментирования 5G, доступная в Android 14 QPR1, позволяет операторам связи предлагать пользователям расширенные возможности сети (задержку и пропускную способность) с помощью сегментирования сети 5G.
Функция дополнительной продажи сегментирования 5G использует ответ TS.43 от сервера прав оператора, чтобы управлять процессом покупки. Операторы могут использовать ответ, чтобы указать URL для веб-просмотра покупки, отправить дополнительные данные в веб-просмотр и указать, подготовлен ли фрагмент и доступен ли он в сети оператора.
Операторы могут настраивать поведение функции продвижения сегментирования сетей 5G с помощью конфигураций оператора, которые определяют, можно ли отправлять запросы о покупке, когда приложениям разрешено запрашивать премиум-возможности и как долго фреймворк Telephony ожидает ответа от пользователя или сети.
Функция дополнительной продажи сегментирования 5G предоставляет интерфейс DataBoostWebServiceFlow, который позволяет обмениваться данными между Android и WebView оператора.
На рисунке 2 показан процесс покупки сегментирования сетей 5G:
Рисунок 2. Процесс покупки сегментирования сетей 5G.
Процесс предоставления прав на использование по спецификации TS.43
Когда пользователь запрашивает расширенные возможности сети, фреймворк Telephony запрашивает конфигурацию права на использование сервиса для запрашиваемой платной функции. Если ответ TS.43 действителен, фреймворк Telephony использует поля из HTTP-ответа, чтобы выполнить запрос о покупке.
Поля для покупки фрагментов
Конфигурация прав TS.43 включает следующие поля для покупки фрагментов:
- Дальнейший доступ
Клавиша:
EntitlementStatusТип:
intДопустимые значения:
0(отключено),1(включено),2(несовместимо),3(подготовка),4(включено).- Статус синхронизации
Клавиша:
ProvStatusТип:
intПоддерживаемые значения:
0(не предоставлено),1(предоставлено),2(недоступно),3(в процессе).
Платформа телефонии использует сочетание статуса права и статуса инициализации, чтобы определить текущий статус покупки сегмента. Результат может быть одним из следующих:
PURCHASE_PREMIUM_CAPABILITY_RESULT_ALREADY_PURCHASEDPURCHASE_PREMIUM_CAPABILITY_RESULT_ALREADY_IN_PROGRESSPURCHASE_PREMIUM_CAPABILITY_RESULT_ENTITLEMENT_CHECK_FAILEDPURCHASE_PREMIUM_CAPABILITY_RESULT_CARRIER_ERROR
Если статус права – 1 (включено), а статус инициализации – 0 (не инициализировано), фреймворк Telephony показывает пользователю уведомление с предложением купить дополнительный трафик через веб-представление оператора. В таблице ниже описано поведение фреймворка телефонии для разных комбинаций значений статусов инициализации и прав.
| Статус инициализации | |||||
|---|---|---|---|---|---|
Не настроено (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, а данные пользователя (декодированные, если они закодированы в Base64) отправляются как данные для запроса 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. Эти функции премиум-класса имеют ту же ценность, что и соответствующий класс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Максимальное количество показов уведомления о дополнительной покупке в месяц. Если месячный лимит достигнут, уведомление о дополнительной покупке не показывается, а запросы о покупке (в том числе запросы к серверу разрешений) ограничиваются до первого дня следующего месяца. Если вы превысите месячный лимит, запросы о покупке будут отклоняться с результатом
PURCHASE_PREMIUM_CAPABILITY_RESULT_THROTTLED.KEY_PREMIUM_CAPABILITY_PURCHASE_URL_STRINGРезервный URL для покупки у оператора, который будет показываться пользователю, когда он нажимает на уведомление о дополнительном предложении. Если URL покупки не найден в ответе TS.43 от сервера прав, используется это значение. Если ни URL из ответа TS.43, ни конфигурация оператора недействительны, запрос о покупке завершается с ошибкой
PURCHASE_PREMIUM_CAPABILITY_RESULT_CARRIER_DISABLED.KEY_PREMIUM_CAPABILITY_SUPPORTED_ON_LTE_BOOLРазрешить ли покупку премиум-функций, когда устройство подключено к сети LTE. Если
true, запросы о покупке можно отправлять через LTE и New Radio (NR). Если выбрано значение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
Когда пользователь нажимает на уведомление об улучшении сети, ему показывается объект WebView с URL покупки у оператора. Операторы связи могут использовать API, предоставленные в интерфейсе JavaScript DataBoostWebServiceFlow, на своих сайтах для связи с приложением для покупки фрагментов.
Сайт оператора может получить доступ к запрошенной функции Premium с помощью метода getRequestedCapability().
Если покупка прошла успешно, сайт оператора должен уведомить приложение для покупки фрагментов с помощью notifyPurchaseSuccessful() или notifyPurchaseSuccessful(duration), где duration – необязательный параметр, указывающий на предполагаемую продолжительность фрагмента.
Если покупка не удалась, сайт оператора должен уведомить приложение для покупки фрагментов с помощью метода notifyPurchaseFailed(code, reason), где code – код ошибки, указывающий на причину сбоя, а reason – человекочитаемая причина сбоя, если код ошибки неизвестен.
Если ни один из этих методов ответа не вызывается, покупка не считается завершенной, и запрос о покупке в конечном итоге превышает время ожидания.
Ниже перечислены допустимые коды ошибок, которые сайт оператора может возвращать при сбое покупки:
FAILURE_CODE_UNKNOWNFAILURE_CODE_CARRIER_URL_UNAVAILABLEFAILURE_CODE_AUTHENTICATION_FAILEDFAILURE_CODE_PAYMENT_FAILEDFAILURE_CODE_NO_USER_DATA
После завершения покупки оператор должен обновить правила URSP, добавив в устройство пользователя фрагмент PRIORITIZE_LATENCY.
Автоматическая маршрутизация сегментирования сетей 5G для голосовых и видеозвонков OTT
В Android 17 поддерживается автоматическая маршрутизация голосовых и видеовызовов, совершаемых через интернет, на премиум-подключения к сети. Эта функция позволяет системе автоматически перенаправлять трафик голосовых и видеозвонков на выделенный интерфейс сети премиум-класса (например, сегмент 5G или подключение PDN 4G премиум-класса), не требуя изменений в сетевом стеке приложения.
Это решение на уровне платформы избавляет разработчиков приложений от необходимости явно запрашивать сетевые возможности, обеспечивая удобство как для них, так и для конечных пользователей.
Принцип работы
В Android добавлена поддержка автоматической маршрутизации с помощью изменений в фреймворках Connectivity и Telecom. Функция автоматической маршрутизации работает следующим образом:
- Обнаружение звонков. Система использует существующие API Telecom Jetpack, которые применяются в OTT-приложениях для обнаружения начала и окончания голосовых и видеовызовов.
- Управление подключением. При обнаружении вызова Android открывает специальный интерфейс премиум-сети, например фрагмент унифицированных коммуникаций.
- Управление трафиком. Во время звонка платформа определяет приложение по его UID и автоматически направляет его трафик на премиум-сетевое подключение.
- Резервный вариант после звонка. Когда звонок завершается, платформа удаляет правило маршрутизации, и трафик приложения возвращается к системной сети по умолчанию для трафика, не связанного со звонками (например, для обмена сообщениями).
Требования
Чтобы поддерживать автоматическую маршрутизацию для вызовов по технологии OTT, должны выполняться следующие требования:
- Операторы связи. Должны предлагать фрагмент для унифицированных коммуникаций, настраивая соответствующие правила URSP (с помощью возможности подключения или OSAppId для трафика унифицированных коммуникаций).
- Приложения должны использовать Android Telecom Jetpack API, чтобы система могла определять статус звонка.
- Производители устройств. Требуется Android 17 или более поздней версии.