במכשירים עם Android מגרסה 12 ואילך, מערכת Android תומכת בפילוח רשת 5G. זהו שימוש בווירטואליזציה של רשת כדי לחלק חיבורים יחידים לרשת למספר חיבורים וירטואליים נפרדים, שמספקים כמויות שונות של משאבים לסוגים שונים של תעבורה. 5G network slicing מאפשר למפעילי רשת להקדיש חלק מהרשת כדי לספק תכונות ספציפיות לפלח מסוים של לקוחות. ב-Android 12 נוספו היכולות הבאות של פילוח רשתות 5G ארגוניות, שמפעילי רשתות יכולים לספק ללקוחות הארגוניים שלהם:
חלוקת מכשירים מנוהלים לארגונים
ארגונים שמספקים לעובדים שלהם מכשירים בניהול מלא יכולים לקבל מספקי הרשת פרוסות רשת פעילות אחת או יותר לארגונים, שאליהן מנותבת התנועה במכשירי החברה. מגרסה Android 12 ואילך, מערכת Android מאפשרת לספקי סלולר לספק פרוסות ארגוניות באמצעות כללי URSP, במקום להגדיר פרוסות באמצעות APN.
חלוקת אפליקציות עסקיות בארגונים למכשירים עם פרופילים לשימוש בעבודה
ב-Android 12, ארגונים שמשתמשים בפתרון של פרופיל עבודה יכולים להגדיר ניתוב של תעבורת הנתונים מכל האפליקציות בפרופיל עבודה לפלח רשת ארגוני. ארגונים יכולים להפעיל את היכולת הזו באמצעות בקר מדיניות מכשיר (DPC).
הפתרון של פרופיל העבודה מספק רמה אוטומטית של אימות ובקרת גישה, שנדרשות לארגונים כדי להבטיח שרק תנועה מאפליקציות ארגוניות בפרופיל העבודה תנותב לפלח הרשת הארגוני. אין צורך לשנות את האפליקציות בפרופיל העבודה כדי לבקש במפורש את פרוסת הרשת של הארגון.
איך פועל פיצול של רשת 5G ב-AOSP
ב-Android 12 נוספה תמיכה בפריסת רשת 5G באמצעות תוספות לבסיס הקוד של הטלפוניה ב-AOSP ובמודול הקשירה, כדי לשלב ממשקי API קיימים של קישוריות שנדרשים לפריסת רשת.
פלטפורמת הטלפוניה של Android מספקת ממשקי HAL ו-API לטלפוניה כדי לתמוך בפילוח על סמך בקשות רשת שהוגשו על ידי קוד הרשת המרכזי, וביכולות פילוח של רשת 5G במודם. באיור 1 מתואר הרכיבים של התכונה 'פילוח רשת' ב-5G.
איור 1. ארכיטקטורת פיצול של רשת 5G ב-AOSP.
פלטפורמת הטלפוניה והקישוריות תומכת ב:
- המרת בקשות רשת לקטגוריות של פרוסות למתארי תנועה, שמועברים למודם לצורך התאמת תנועה ל-URSP ובחירת נתיב
- חזרה לרשת ברירת המחדל אם פרוסת הרשת הארגונית לא זמינה
- ניתוב תעבורה מכל האפליקציות בפרופיל העבודה לחיבור המתאים
תמיכה בפילוח של ארגונים
- זיהוי הנוכחות של פרופיל עבודה במכשיר
- בודקים הרשאות או הוראות ניתוב שסופקו מ-DPC שבו משתמש האדמין של ה-IT בארגון
שירות הרשתות הראשי כולל את השינויים הבאים במודול Tethering ב-Android 12:
- המודול Tethering מוסיף את רוב המחלקות של
android.net.*ממשקי 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.javaf/b/services/core/java/com/android/server/TestNetworkService.java
העברת קוד ה-VPN מחוץ למודול Tethering
ב-Android 12, הקוד עם היכולות הבאות מועבר למודול Tethering:
- קבלת בקשות מאפליקציות לחיבורים לרשת
- קבלת בקשות מהמערכת (לדוגמה, 'העברת האפליקציות האלה למחיצה של הארגון'; נוסף ב-Android 12)
- שליחת בקשות מהמערכת לקוד הטלפוניה שמנסה להגדיר רשתות או פרוסות באמצעות HAL API והמודם
- הודעה ל-netd איך לנתב תעבורה על בסיס כל אפליקציה (הוצג ב-Android 12)
- הודעה לאפליקציות על מה שקורה לתעבורת הרשת שלהן באמצעות ממשקי API של
ConnectivityManagerכמוNetworkCallback,getActiveNetwork,getNetworkCapabilities.
הטמעה
כדי לתמוך בפיצול של רשת 5G במכשיר, המכשיר צריך לכלול מודם שתומך ב-IRadio 1.6 HAL, שכולל את setupDataCall_1_6 API. ממשק ה-API הזה מגדיר חיבור נתונים וכולל את הפרמטרים הבאים לתמיכה בפילוח של רשת 5G:
-
trafficDescriptor: מציין את תיאור התנועה שנשלח למודם -
sliceInfo: מציין מידע על פרוסת הרשת שתשמש במקרה של העברה מ-EPDG ל-5G -
matchAllRuleAllowed: מציין אם מותר להשתמש בכלל URSP שמוגדר כברירת מחדל. בטלפוניה, ההגדרה הזו היא true ברשתות ברירת מחדל, אבל לא בפרוסות. הכלל 'התאמה לכל הרשתות' חל על רשתות ברירת מחדל. אם אפליקציה מבקשת פרוסה ספציפית שלא זמינה, הפרוסה הספציפית מדווחת כלא זמינה. באפליקציות ארגוניות, אם הרשת הארגונית לא זמינה, אפשר להשתמש ב-Telephony framework כדי לחזור לרשת שמוגדרת כברירת מחדל.
מודמים חייבים להטמיע גם את ה-API getSlicingConfig, אלא אם ה-API getHalDeviceCapabilities מדווח שהוא לא נתמך.
דרישות ל-Enterprise
בהמשך מפורטות הדרישות לשימוש בפריסת רשת 5G במכשירים בפריסת Android Enterprise.
- חשוב לוודא שבמכשירים מנוהלים או במכשירים של עובדים שהוגדר בהם פרופיל עבודה יש תמיכה ב-5G SA עם מודמים שתומכים ב-API
setupDataCall_1_6. - עבודה עם שותף חברת תובלה על הגדרת פלח וביצועים או מאפיינים של הסכם רמת שירות (SLA).
הפעלת פיצול של רשת 5G במכשירים שהוגדר בהם פרופיל עבודה
במכשירים שהוגדרו בהם פרופילים של עבודה, חלוקת רשת 5G לפלחים מושבתת כברירת מחדל ב-AOSP. כדי להפעיל את חלוקת הרשת, אדמינים ב-IT בארגון יכולים להפעיל או להשבית את ניתוב התנועה של אפליקציות בפרופיל העבודה לחלק ברשת הארגונית, על בסיס כל עובד, באמצעות אפליקציית DPC של EMM. האפליקציה משתמשת בשיטה setPreferentialNetworkServiceEnabled ב-API של DevicePolicyManager (DPM) (שהושק ב-Android 12).
ספקי EMM עם DPC מותאם אישית צריכים לשלב את DevicePolicyManager API כדי לתמוך בלקוחות ארגוניים.
כללי URSP
בקטע הזה יש מידע למפעילים על הגדרת כללי URSP עבור קטגוריות שונות של פרוסות, כולל תנועה של עסקים, CBS, השהיה נמוכה ורוחב פס גבוה. כשמגדירים כללי URSP לקטגוריות שונות של פלחים, ספקי הסלולר צריכים להשתמש בערכים הספציפיים ל-Android שמופיעים בהמשך.
| מזהה | ערך | תיאור |
|---|---|---|
| OSId | 97a498e3-fc92-5c94-8986-0333d06e4e47 |
מזהה מערכת ההפעלה (OSId) של Android הוא UUID בגרסה 5 שנוצר באמצעות מרחב השמות ISO OID והשם Android. |
מפעילים סלולריים צריכים להגדיר כללי URSP לכל פרוסת תנועה עם רכיב תיאור התנועה בתור 'מזהה מערכת הפעלה + סוג מזהה אפליקציה במערכת ההפעלה'. לדוגמה, הערך של הפלח 'ENTERPRISE' צריך להיות 0x97A498E3FC925C9489860333D06E4E470A454E5445525052495345.
הערך הזה הוא שרשור של OSId, האורך של OSAppId (0x0A) ו-OSAppId.
מידע נוסף על סוג הרכיב של מתאר התנועה זמין במאמר
3GPP TS 24.526 Table 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 |
PRIORITIZE_UNIFIED_COMMUNICATIONS |
0x5052494f524954495a455f554e49464945445f434f4d4d554e49434154494f4e53 |
OSAppId הוא ייצוג של מערך בייטים של המחרוזת PRIORITIZE_UNIFIED_COMMUNICATIONS |
דוגמאות לכללי 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: DNN | ארגון |
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: DNN | 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: DNN | 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: DNN | 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:
| כלל URSP מס' 6 (CBS) | |
|---|---|
| קדימות | 6 (0x06) |
| תיאור תעבורת נתונים מס' 1 | |
| מזהה מערכת ההפעלה + סוג מזהה האפליקציה של מערכת ההפעלה | 0x97A498E3FC925C9489860333D06E4E4703434253 |
| תיאור בחירת המסלול #1 | |
| קדימות | 1 (0x01) |
| רכיב מספר 1: S-NSSAI | SST:XX SD:YYYYYY |
| רכיב מספר 2: DNN | cbs |
| תיאור בחירת המסלול מספר 2 | |
| קדימות | 2 (0x02) |
| רכיב מספר 1: DNN | cbs |
זמן אחזור נמוך
התמיכה בזמן אחזור קצר זמינה ב-Android מגרסה 13 ואילך. דוגמה לכלל URSP לתנועה עם זמן אחזור נמוך:
| כלל URSP מספר 7 (זמן אחזור נמוך) | |
|---|---|
| קדימות | 7 (0x07) |
| תיאור תעבורת נתונים מס' 1 | |
| מזהה מערכת ההפעלה + סוג מזהה האפליקציה של מערכת ההפעלה | 0x97A498E3FC925C9489860333D06E4E47125052494f524954495a455f4c4154454e4359 |
| תיאור בחירת המסלול #1 | |
| קדימות | 1 (0x01) |
| רכיב מספר 1: S-NSSAI | SST:XX SD:YYYYYY |
| רכיב מספר 2: DNN | זמן אחזור |
| תיאור בחירת המסלול מספר 2 | |
| קדימות | 2 (0x02) |
| רכיב מספר 1: DNN | זמן אחזור |
רוחב פס גבוה
התמיכה ברוחב פס גבוה זמינה ב-Android מגרסה 13 ואילך. דוגמה לכלל URSP לתנועה עם רוחב פס גבוה:
| כלל URSP מספר 8 (רוחב פס גבוה) | |
|---|---|
| קדימות | 8 (0x08) |
| תיאור תעבורת נתונים מס' 1 | |
| מזהה מערכת ההפעלה + סוג מזהה האפליקציה של מערכת ההפעלה | 97A498E3FC925C9489860333D06E4E47145052494f524954495a455f42414e445749445448 |
| תיאור בחירת המסלול #1 | |
| קדימות | 1 (0x01) |
| רכיב מספר 1: S-NSSAI | SST:XX SD:YYYYYY |
| רכיב מספר 2: DNN | רוחב פס |
| תיאור בחירת המסלול מספר 2 | |
| קדימות | 2 (0x02) |
| רכיב מספר 1: DNN | רוחב פס |
ברירת מחדל
| כלל URSP מספר 9 (ברירת מחדל) | |
|---|---|
| קדימות | 9 (0x09) |
| תיאור תעבורת נתונים מס' 1 | |
| התאמה להכול | לא רלוונטי |
| תיאור בחירת המסלול #1 | |
| קדימות | 1 (0x01) |
| רכיב מספר 1: S-NSSAI | SST:XX SD:YYYYYY |
בדיקה
כדי לבדוק את חלוקת רשת 5G לפלחים, משתמשים בבדיקה הידנית הבאה.
כדי להגדיר מכשיר לבדיקה:
מוודאים שמדיניות ה-URSP מוגדרת עם כלל שאינו ברירת מחדל שתואם לקטגוריה של הארגון, ושמתאר בחירת הנתיב התואם ממפה את הקטגוריה של הארגון לפלח של הארגון. בנוסף, צריך לוודא שיש כלל ברירת מחדל שמפנה את התעבורה לפלח האינטרנט שמוגדר כברירת מחדל.
מוודאים שמוגדר במכשיר פרופיל עבודה.
הצטרפות לשימוש בפילוח רשת דרך ה-DPC
כדי לבדוק את אופן הפעולה של פילוח רשת 5G:
- מוודאים שסשן PDU נוצר עם פרוסת הרשת הארגונית (לדוגמה, באמצעות כתובת IP ספציפית) ושכל האפליקציות בפרופיל העבודה משתמשות בסשן ה-PDU הזה.
- מוודאים שסשן PDU נפרד נוצר עם פרופיל האינטרנט שמוגדר כברירת מחדל, ושהאפליקציות בפרופיל האישי משתמשות בסשן ה-PDU.
שדרוג למכירת פיצול של רשת 5G
התכונה 'מכירת שדרוג של פיצול של רשת 5G' זמינה מ-Android 14 QPR1, ומאפשרת לספקי סלולר להציע למשתמשים שלהם יכולות רשת משופרות (זמן אחזור ורוחב פס) באמצעות פיצול של רשת 5G.
התכונה 'מכירת שדרוג של פיצול של רשת 5G' משתמשת בתגובה TS.43 משרת ההרשאות של הספק כדי להניע את תהליך הרכישה. חברות סלולר יכולות להשתמש בתגובה כדי לציין את כתובת ה-URL של תצוגת האינטרנט של הרכישה של חברת הסלולר, לשלוח נתונים נוספים לתצוגת האינטרנט ולציין אם החבילה הוקצתה וזמינה ברשת של חברת הסלולר.
ספקי סלולר יכולים להתאים אישית את ההתנהגות של תכונת השדרוג של פיצול של רשת 5G באמצעות הגדרות של ספקי סלולר. ההגדרות האלה קובעות אם אפשר לשלוח בקשות רכישה, מתי אפליקציות יכולות לבקש יכולות פרימיום וכמה זמן מסגרת הטלפוניה מחכה לתשובות מהמשתמש או מהרשת.
התכונה 'מכירת שדרוג של פיצול של רשת 5G' מספקת ממשק שנקרא DataBoostWebServiceFlow, שמאפשר תקשורת בין Android לבין WebView של הספק.
איור 2 מציג את תהליך הרכישה של שדרוג לפיצול של רשת 5G:
איור 2. תהליך רכישה של שדרוג ל-5G slicing.
TS.43 entitlement process
כשמשתמש שולח בקשה ליכולות רשת משופרות, מסגרת הטלפוניה מבקשת את הגדרת זכאות השירות ליכולת הפרימיום המבוקשת. אם התגובה TS.43 תקפה, מסגרת הטלפוניה משתמשת בשדות מתוך תגובת ה-HTTP כדי להפעיל את בקשת הרכישה.
שדות של רכישת פלח
הגדרת ההרשאות TS.43 כוללת את השדות הבאים של רכישת פרוסות:
- סטטוס הזכאות
מקש:
EntitlementStatusסוג:
intערכים נתמכים:
0(מושבת),1(מופעל),2(לא תואם),3(הקצאת הרשאות),4(כלול)- סטטוס של ניהול תצורה
מקש:
ProvStatusסוג:
intערכים נתמכים:
0(לא הוקצה),1(הוקצה),2(לא זמין),3(בתהליך)
ה-framework של הטלפוניה משתמש בשילוב של סטטוס ההרשאה וסטטוס ההקצאה כדי לקבוע את מצב הרכישה הנוכחי של הפרופיל. התוצאה יכולה להיות אחת מהאפשרויות הבאות:
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 (לא הוקצה), מסגרת הטלפוניה מציגה למשתמש הודעה על אפשרות לשדרוג כדי לרכוש את החבילה דרך תצוגת האינטרנט של הספק. בטבלה הבאה מתואר אופן הפעולה של מסגרת הטלפוניה עבור שילובים שונים של ערכי סטטוס הקצאה וסטטוס הרשאה.
| סטטוס הקצאת ההרשאות | |||||
|---|---|---|---|---|---|
לא הוקצה (0) |
הוקצה (1) |
לא זמין (2) |
בתהליך (3) |
||
| סטטוס ההרשאה | מושבת (0) |
נכשל | נכשל | נכשל | נכשל |
מופעל (1) |
הצגת WebView | המוצר כבר נרכש | המוצר כבר נרכש | בתהליך | |
לא תואם (2) |
נכשל | נכשל | נכשל | נכשל | |
הקצאת הרשאות (3) |
שגיאה של חברת התובלה | שגיאה של חברת התובלה | בתהליך | בתהליך | |
כלול (4) |
שגיאה של חברת התובלה | המוצר כבר נרכש | המוצר כבר נרכש | שגיאה של חברת התובלה | |
שדות של זרימת שירות
בתגובה TS.43 מצוינים כתובת ה-URL, נתוני המשתמשים וסוג התוכן כדי להתאים אישית את ההתנהגות של תצוגת האינטרנט של הרכישה אצל הספק. אם לא מציינים את סוג התוכן, כתובת ה-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רשימה של יכולות פרימיום נתמכות. זו מערך int של
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 של הרכישה של הספק החלופי שתוצג למשתמש כשהוא ילחץ על הודעת השדרוג. אם כתובת האתר של הרכישה לא נמצאת בתגובה TS.43 משרת ההרשאות, המערכת משתמשת בערך הזה במקום זאת. אם אף אחד מה-URL מהתגובה TS.43 או מהגדרות הספק לא תקף, בקשת הרכישה תיכשל עם התוצאה
PURCHASE_PREMIUM_CAPABILITY_RESULT_CARRIER_DISABLED.KEY_PREMIUM_CAPABILITY_SUPPORTED_ON_LTE_BOOLהאם לאפשר רכישה של יכולות פרימיום כשהמכשיר מחובר ל-Long-Term Evolution (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משך הזמן שבו הרשת צריכה להגדיר את תצורת הפריסה של פונקציית ה-Slicing עבור יכולת הפרימיום של הרכישה. במהלך התקופה הזו, בקשות רכישה עוקבות נחסמות ומוחזרת התוצאה
PURCHASE_PREMIUM_CAPABILITY_RESULT_PENDING_NETWORK_SETUP. אם הרשת לא מצליחה להגדיר את תצורת הפריסה בזמן, האפליקציות יכולות לבקש שוב לרכוש יכולות פרימיום. מערכת הטלפוניה לא מחשיבה רכישה כמושלמת עד שמוגדרת חלוקה מתאימה, בלי קשר לשאלה אם המשתמש שילם לספק הסלולר או לא.
ממשק JavaScript
כשמשתמש לוחץ על ההתראה על שיפור הביצועים ברשת, מוצג לו אובייקט WebView עם כתובת ה-URL לרכישה מהספק. ספקי סלולר יכולים להשתמש בממשקי ה-API שמופיעים בממשק JavaScript DataBoostWebServiceFlow באתר הרכישה שלהם כדי לתקשר עם אפליקציית הרכישה של הפרופיל.
אתר הספק יכול לקבל את היכולת המבוקשת בתשלום באמצעות השיטה 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 מספק תמיכה בניתוב אוטומטי של שיחות קוליות ושיחות וידאו ב-OTT (מעל גבי האינטרנט) לחיבורי רשת פרימיום. התכונה הזו מאפשרת למערכת להפנות באופן אוטומטי תנועה משיחות קוליות ומשיחות וידאו לממשק רשת ייעודי (כמו פרוסת 5G פרימיום או חיבור PDN 4G פרימיום) בלי שיהיה צורך לבצע שינויים במערך הרשת של האפליקציה.
הפתרון הזה ברמת הפלטפורמה מייתר את הצורך של מפתחי אפליקציות לבקש במפורש יכולות רשת, ומספק חוויה חלקה למפתחים ולמשתמשי קצה.
איך זה עובד
מערכת Android כוללת תמיכה בניתוב אוטומטי באמצעות תוספות למסגרות של קישוריות וטלקום. התכונה 'ניתוב אוטומטי' פועלת באופן הבא:
- זיהוי שיחות: המערכת ממנפת ממשקי API קיימים של Telecom Jetpack שמשמשים אפליקציות OTT כדי לזהות את ההתחלה והסיום של שיחות קוליות או שיחות וידאו.
- ניהול חיבורים: כשמזוהה שיחה, מערכת Android מציגה ממשק רשת פרימיום ייעודי, כמו פרוסת תקשורת מאוחדת.
- ניתוב תעבורה: במהלך השיחה, הפלטפורמה מזהה את האפליקציה לפי ה-UID שלה ומנתבת את התעבורה שלה באופן אוטומטי לחיבור הרשת הפרימיום.
- מעבר חזרה אחרי השיחה: כשהשיחה מסתיימת, הפלטפורמה מסירה את כלל הניתוב, והתנועה של האפליקציה חוזרת לרשת ברירת המחדל של המערכת לתנועה שאינה שיחות (כמו הודעות).
דרישות
כדי לתמוך בהעברה אוטומטית של שיחות ב-OTT, צריך לעמוד בדרישות הבאות:
- ספקים סלולריים: צריכים להציע פרוסת רשת מאוחדת לתקשורת על ידי הגדרת כללי URSP מתאימים. ספקי הסלולר צריכים לאכלס את ה-URSP ב
OSAppIDספציפי לתנועת נתונים של תקשורת מאוחדת. - אפליקציות: צריך להשתמש בממשקי Android Telecom Jetpack API כדי לאפשר למערכת לזהות את מצבי השיחה.
- יצרני מכשירים: נדרשת מערכת Android מגרסה 17 ואילך.