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

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

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

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

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

שותפי GMS:

ספקי סלולר שלא תומכים במפרט TS.43 יכולים להשתמש באפליקציית WFC Activation, שזמינה במכשירי GMS כאפליקציה לא מקובצת, כדי להקצות שירותי רשת IMS.

אם יש לכם בקשות להוספת תכונות שקשורות לתכונה 'זכאות לשירות IMS', תוכלו לפנות לנציג Google או לשלוח אימייל לכתובת gms-connectivity-apps@google.com.

ארכיטקטורה

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

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

איור 1. ארכיטקטורת התכונה של הרשאות TS.43

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

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

    מידע נוסף על הגדרת Android לעבודה עם שרת הרשאות מבוסס TS.43 של ספק זמין במאמר אפליקציית ImsServiceEntitlement.

השורות הממוספרות באיור 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.

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

ספריית service_entitlement

מכיוון שספריית service_entitlement מקושרת באופן סטטי ל-ImsServiceEntitlement app, אין צורך לבצע פעולות נוספות כדי לשלב את הספרייה באפליקציה ImsServiceEntitlement.

אפשר לשלב את הספרייה service_entitlement עם האפליקציות שלכם לתרחישי שימוש של TS.43, כמו תוכנית נתונים ו-ODSA. אפשר גם לשלב את הספרייה באפליקציה לתרחישי שימוש של הרשאות שאינן TS.43, על סמך פרוטוקול EAP-AKA.

בהמשך מתוארים ממשקי ה-API שאפשר להשתמש בהם בתרחישים כאלה:

  • אפליקציית TS.43 שמשתמשת בפרוטוקול HTTP של TS.43 שמוטמע בספרייה: משתמשים בממשקי ה-API בכיתה ServiceEntitlement
  • אפליקציה שאינה TS.43 שמשתמשת בפרוטוקול EAP-AKA שמוטמע בספרייה: משתמשים בממשקי ה-API שגלויים בכיתה EapAkaHelper

שותפי GMS: אלה ספקי שרתי ההרשאות של TS.43 שבהם נבדקה הספרייה service_entitlement ב-Android 12.

  • Ericsson
  • HPE
  • Nokia

אפליקציית 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

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

אפליקציית ImsServiceEntitlement מגדירה את מצב ההקצאה של VoWiFi בפלטפורמה באמצעות ה-API של המערכת ProvisioningManager.setProvisioningIntValue(KEY_VOICE_OVER_WIFI_ENABLED_OVERRIDE, value). ממשק ה-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