הרשאה לשירות IMS

החל מ-Android 12, ב-Android יש תמיכה באפשרויות הבאות: TS.43 הרשאה לשירות Configuration, מפרט GSMA המגדיר את שלב אימות ההרשאה עבור הפעלת שירותים, כולל קריינות Wi-Fi (VoWiFi), Voice-over-LTE (VoLTE), SMS ב-IP (SMSoIP), הפעלת שירות במכשיר (ODSA) של eSIM מכשירים נלווים (שמשויכים למכשיר ששלח את הבקשה) ותוכנית נתונים מידע.

כדי לתמוך במפרט הזה, מערכת Android מספקת הרשאה לשירות IMS שמאפשרת לספקי שירות להודיע למכשירים ניידים לגבי הסטטוס של שירותי רשת מערכת משנה למולטימדיה (IMS) של IP. תכונת ההרשאה הזו מאפשרת המכשיר כדי לשלוח שאילתה לשרת ההרשאות של הספק כפי שהוגדר על ידי GSMA TS.43 המפרט של סטטוס הרשאת IMS באמצעות אימות EAP-AKA בלי לדרוש מהמשתמשים להזין פרטי כניסה באופן ידני.

ספקים שיש להם שרתי הרשאות IMS יכולים להשתמש בהרשאה לשירות IMS להקצאת שירותים. אחרי השימוש בתכונה: יתרונות:

  • התכונה הזו מפחיתה את עלויות הבדיקה והאישור לספקים, אפשר להשתמש בתכונת ההרשאה בכמה מוצרים ויצרני ציוד מקורי.
  • מפחיתה את תקורת הפיתוח עבור יצרני מכשירים באמצעות תקן אפליקציה ל-Android.
  • התכונה מאפשרת ליצרני מכשירים ולספקים של מכשירים לתרום קוד של התכונה כי התכונה היא בקוד פתוח.
  • שירותי ניהול כתובות למקרה חירום עבור ספקים בצפון אמריקה.

ארכיטקטורה

האיור הבא מתאר את הארכיטקטורה ואת ההתנהגות של ה-IMS .

תכונת הרשאה TS.43

איור 1. הארכיטקטורה של מאפייני הרשאה מסוג TS.43

כפי שמוצג באיור 1, הארכיטקטורה של התכונה של הרשאת שירות IMS כולל את הרכיבים הבאים:

  • service_entitlement TS.43 Service API סטטי ספרייה: הספרייה הזו מממשת את מפרט TS.43, ומקיימת אינטראקציה עם וחושף ממשקי API שפונים לאפליקציות לכל תרחיש לדוגמה של TS.43.
  • ImsServiceEntitlement אפליקציית לקוח: האפליקציה הזו משתמשת ב-TS.43 Service API. באפליקציה מוטמע ממשק משתמש כ��ל�� ��כיבי WebView לעיבוד של פורטל השירות של הספק שמשתמשים יוכלו להפעיל שירותים וליצור אינטראקציה עם רכיבי Android אחרים כדי לנהל את חוויית המשתמש מקצה לקצה.

    למידע נוסף על ההגדרה של Android כך שיפעל עם לשרת הרשאה מבוסס TS.43 של הספק, ראו ImsServiceEntitlement app.

הקווים הממוספרים באיור 1 מראים כיצד הרכיבים של שירות IMS תכונת ההרשאה מתקשרת זה עם זה. בהמשך מופיע תיאור של כל אחד מהסעיפים של השלבים כפי שהם מתויגים:

(1) אפליקציית הלקוח מפעילה את ממשק ה-API של שירות TS.43 כדי להפעיל שירות בבקשת הרשאה.

(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.

אין תלות ב-Android 12 API, לכן אפשר להעביר לאחור ספריית service_entitlement ואפליקציה אחת (ImsServiceEntitlement) לפלטפורמות ישנות יותר של Android.

ספריית service_entitlement

מכיוון שהספרייה 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 אם הספק דורש ממשק משתמש של פורטל אינטרנט עבור המשתמשים להירשם לשירות VoWi-Fi. לדוגמה, בהסכמה לתנאים מצב חירום או הזנת כתובת למקרה חירום.

בדרך כלל הדבר נדרש על ידי חברות תובלה בצפון אמריקה.
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, בהתאם לגרסה 5.0 של TS.43 מפרט:

  • ארה"ב: CSpire, US Cellular, Cellcom
  • צרפת: כתום

ממשק משתמש נוסף של המערכת להקצאת IMS

בקטע הזה מוסבר איך יצרני ציוד מקורי יכולים לתמוך ברכיבים נוספים של ממשק המשתמש של המערכת קשור להקצאת שירות IMS (לדוגמה, כאשר מציגים התראה כאשר מוקצה ל-VoWi-Fi).

האפליקציה ImsServiceEntitlement מגדירה את מצב הקצאת ההרשאות של VoWiFi כ באמצעות ProvisioningManager.setProvisioningIntValue(KEY_VOICE_OVER_WIFI_ENABLED_OVERRIDE, value) 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 ומגדירים את הערך למחרוזת כתובת האתר הצפויה. צריך לכלול את קידומת https://.

שינוי הגדרות הספק

החל מ-Android 11, הפקודות לביטול הגדרות הספק מובנות וזמינות עם הרשאות שורש.

הפקודה הבאה היא דוגמה לשינוי מפתח התצורה של הספק. 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