מגרסה Android 12, מערכת Android כוללת תמיכה בהגדרת הרשאות גישה לשירות TS.43, מפרט של GSMA שמגדיר את שלב אימות ההרשאות להפעלת שירותים, כולל Voice-over-Wi-Fi (VoWiFi), Voice-over-LTE (VoLTE), SMS over IP (SMSoIP), On-Device Service Activation (ODSA) של מכשירי eSIM נלווים (שמשויכים למכשיר שממנו נשלחת הבקשה) ומידע על תוכנית נתונים.
כדי לתמוך במפרט הזה, מערכת Android מספקת תכונה של הרשאת שירות IMS שמאפשרת לספק שירותים לעדכן מכשירים ניידים לגבי הסטטוס של שירותי רשת IP Multimedia Subsystem (IMS). תכונת ההרשאות הזו מאפשרת למכשיר לשלוח שאילתות לשרת ההרשאות של הספק לגבי סטטוס ההרשאות של IMS, כפי שמוגדר במפרט GSMA TS.43, באמצעות אימות EAP-AKA, בלי שהמשתמשים יצטרכו להזין פרטי כניסה באופן ידני.
חברות תובלה עם שרתי הרשאות IMS יכולות להשתמש בתכונה 'הקצאת הרשאות לשירות IMS' כדי להקצות הרשאות לשירות. השימוש בתכונה מספק את היתרונות הבאים:
- התכונה הזו מאפשרת לחברות סלולר להשתמש בה בכמה מוצרים ובכמה יצרני ציוד מקורי (OEM), וכך לחסוך בעלויות של בדיקות ואישורים.
- מצמצם את התקורה של הפיתוח עבור יצרני מכשירים באמצעות אפליקציית Android רגילה.
- יצרני מכשירים וספקי סלולר יכולים לתרום קוד לתכונה, כי היא קוד פתוח.
- מספקת ניהול של כתובות למקרה חירום עבור ספקי תקשורת בצפון אמריקה.
ארכיטקטורה
באיור הבא מתוארת הארכיטקטורה וההתנהגות של התכונה 'זכאות לשירות IMS'.
איור 1. TS.43 entitlement feature architecture
כפי שמוצג באיור 1, הארכיטקטורה של תכונת ההרשאות בשירות IMS כוללת את הרכיבים הבאים:
-
service_entitlement
TS.43 Service API static library: הספרייה הזו מטמיעה את המפרט TS.43, מתקשרת עם שרת ההרשאות של הספק וחושפת ממשקי API שפונים לאפליקציה לכל תרחיש שימוש ב-TS.43. ImsServiceEntitlement
אפליקציית לקוח: האפליקציה הזו משתמשת ב-TS.43 Service API. האפליקציה מטמיעה רכיבי ממשק משתמש, כולל תצוגות אינטרנט, כדי להציג למשתמשים את פורטל השירות של הספק ולאפשר להם להפעיל שירותים. האפליקציה גם מתקשרת עם רכיבי Android אחרים כדי לנהל את חוויית המשתמש מקצה לקצה.מידע נוסף על הגדרת Android לעבודה עם שרת הרשאות מבוסס TS.43 של ספק זמין במאמר ImsServiceEntitlement app.
השורות הממוספרות באיור 1 מראות איך הרכיבים של תכונת ההרשאות של שירות IMS מתקשרים ביניהם. בקטעים הבאים מתואר כל אחד מהשלבים לפי התווית שלו:
(1) אפליקציית הלקוח מפעילה את TS.43 service API כדי ליזום בקשה להרשאה לשירות.
(2) ממשק ה-API של שירות TS.43 שולח בקשת HTTP לשרת ההרשאות של הספק כדי להתחיל באתגר EAP-AKA.
(3) ה-API של שירות TS.43 מפעיל ממשקי API של טלפוניה (לדוגמה, getIccAuthentication
) כדי להשלים את האתגר והתגובה של EAP-AKA.
(4) שירות TS.43 מקבל נתוני הרשאה או נתוני הגדרה מהשרת של הספק אחרי אימות התגובה של EAP-AKA.
(5) שירות TS.43 מחזיר את נתוני ההרשאה או התצורה של השירות לאפליקציית הלקוח.
(6) אפליקציית הלקוח מטפלת בנתונים, ויכולה גם להציג למשתמש את פורטל השירות של הספק כדי להשלים את הפעלת השירות.
שילוב
בקטע הזה מוסבר התהליך לשילוב הספרייה service_entitlement
והאפליקציה ImsServiceEntitlement
.
מכיוון שאין תלות ב-API של Android 12, אפשר לבצע backport לספרייה service_entitlement
ולאפליקציית ImsServiceEntitlement
לפלטפורמות ישנות יותר של Android.
service_entitlement library
מכיוון שהספרייה service_entitlement
מקושרת באופן סטטי אל ImsServiceEntitlement app
, לא נדרשות פעולות נוספות כדי לשלב את הספרייה באפליקציית ImsServiceEntitlement
.
אפשר לשלב את הספרייה service_entitlement
באפליקציות שלכם לשימוש בתרחישים של TS.43, כמו תוכנית נתונים ו-ODSA. אפשר גם לשלב את הספרייה באפליקציה לתרחישי שימוש שאינם קשורים לזכאות ל-TS.43 על סמך פרוטוקול EAP-AKA.
בהמשך מתוארים ממשקי ה-API שבהם אפשר להשתמש בתרחישים כאלה:
- אפליקציית TS.43 שמשתמשת בפרוטוקול TS.43 HTTP שהוטמע בספרייה:
משתמשים בממשקי ה-API במחלקה
ServiceEntitlement
- אפליקציה שלא עומדת בדרישות של TS.43 ומשתמשת בפרוטוקול EAP-AKA שהוטמע בספרייה: צריך להשתמש בממשקי ה-API שמוצגים בכיתה
EapAkaHelper
אפליקציית ImsServiceEntitlement
כברירת מחדל, מערכת Android כוללת את האפליקציה ImsServiceEntitlement
שמותקנת במחיצת המוצר כאפליקציה עם הרשאות. כדי להגדיר את האפליקציה, משתמשים במפתחות CarrierConfig הבאים:
מפתח | ערך |
---|---|
KEY_ENTITLEMENT_SERVER_URL_STRING |
כתובת ה-URL של שרת ההרשאות של הספק. חובה לכלול את התחילית https:// . |
KEY_FCM_SENDER_ID_STRING |
מזהה השולח של FCM של הספק. אל תגדירו את הערך הזה אם חברת התובלה לא דורשת שימוש ב-FCM. |
KEY_SHOW_VOWIFI_WEBVIEW_BOOL |
מגדירים את הערך true אם הספק דורש ממשק משתמש של פורטל אינטרנט כדי שהמשתמשים יוכלו להירשם לשירות VoWiFi. לדוגמה, הסכמה לתנאים או הזנת כתובת למקרה חירום.בדרך כלל ספקי סלולר בצפון אמריקה דורשים את זה. |
KEY_WFC_EMERGENCY_ADDRESS_CARRIER_APP_STRING |
הערך הוא com.android.imsserviceentitlement/.WfcActivationActivity , אם KEY_SHOW_VOWIFI_WEBVIEW_BOOL הוא true . |
KEY_IMS_PROVISIONING_BOOL |
הערך שמוגדר הוא true אם הספק דורש הקצאת משאבים ברשת לשירותי IMS (VoLTE/VoWiFi/SMSoIP) ברקע.הדרישה הזו חלה על ספקים מסוימים באירופה. |
KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL |
ההגדרה היא true אם KEY_IMS_PROVISIONING_BOOL הוא true . |
תנועת ה-HTTP לשרת ההרשאות ולפורטל האינטרנט של הספק עוברת ברשת ברירת המחדל, למשל, חבילת גלישה או Wi-Fi כברירת מחדל.
שותפי GMS: הספקים הבאים נתמכים על ידי אפליקציית ההרשאות TS.43 ב-Android 12, בהתאם למפרט TS.43 v5.0:
- ארה"ב: CSpire, US Cellular, Cellcom
- צרפת: Orange
ממשק משתמש נוסף של המערכת להקצאת הרשאות ל-IMS
בקטע הזה מוסבר איך יצרני ציוד מקורי (OEM) יכולים לתמוך ברכיבי ממשק משתמש נוספים במערכת שקשורים להקצאת שירותי IMS (לדוגמה, כשמוצגת הודעה כשמוקצה שירות VoWiFi).
אפליקציית ImsServiceEntitlement
מגדירה את מצב ההקצאה של VoWiFi בפלטפורמה באמצעות ProvisioningManager.setProvisioningIntValue(KEY_VOICE_OVER_WIFI_ENABLED_OVERRIDE,
value)
system API. ה-API הזה משמש גם ל-VoLTE (עם KEY_VOLTE_PROVISIONING_STATUS
) ול-SMSoIP (עם KEY_SMS_OVER_IP_ENABLED
).
אחרי כן, ממשק המשתמש של המערכת יכול לקרוא את מצב ההקצאה באמצעות
getProvisioningIntValue
או באמצעות רישום של קריאה חוזרת למעקב אחרי שינוי מצב ההקצאה דרך
registerProvisioningChangedCallback
.
שינוי הגדרות לצורך בדיקה
כדי לשנות באופן זמני את התנהגות האפליקציה לצורך בדיקה, אפשר להשתמש בהליכים הבאים.ImsServiceEntitlement
פרטים על שינוי הגדרות של חברות תובלה זמינים במאמר שינוי הגדרות של חברות תובלה.
דילוג על תהליך ההרשמה ל-VoWiFi
כדי לדלג על תהליך ההרשמה ל-VoWiFi ולאפשר הפעלה ישירה של VoWiFi, צריך לבטל את ההגדרה של תצורת הספק KEY_WFC_EMERGENCY_ADDRESS_CARRIER_APP_STRING
ולהגדיר את הערך שלה כמחרוזת ריקה.
דילוג על הקצאת הרשאות IMS
כדי לדלג על הקצאת IMS, להפוך את שירותי ה-IMS לזמינים ולאפשר למשתמשים להפעיל שירותים כאלה בלי הקצאת רשת, צריך לבטל את ההגדרה של תצורת הספק KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL
ולהגדיר את הערך שלה ל-false
.
שינוי כתובת ה-URL של שרת ההרשאות
כדי לשנות את כתובת ה-URL של שרת ההרשאות, צריך לבטל את ההגדרה של קובץ ההגדרות של הספק KEY_ENTITLEMENT_SERVER_URL_STRING
ולהגדיר את הערך שלו למחרוזת כתובת ה-URL הרצויה. צריך לכלול את הקידומת https://
.
שינוי הגדרות הספק
מגרסה Android 11, פקודות לביטול הגדרות של ספק הסלולר מובנות וזמינות עם הרשאות root.
הפקודה הבאה היא דוגמה לאופן הביטול של מפתח ההגדרה של הספק carrier_volte_provisioning_required_bool
והגדרת הערך שלו ל-false
. אפשר להריץ את הפקודה כמה פעמים כדי לבטל כמה הגדרות.
adb root
adb shell cmd phone cc set-value -p carrier_volte_provisioning_required_bool false
כדי לנקות את כל ההגדרות שבוטלו, משתמשים בפקודה הבאה:
adb shell cmd phone cc clear-values
כדי לקבל מידע נוסף, מריצים את הפקודה הבאה:
adb shell cmd phone cc