רישום יחיד ל-IMS

ב-Android 12 נוספה תמיכה במודל רישום יחיד לאספקת תכונות של MMTEL ו-RCS. המודל הזה מאפשר למכשירים לנהל את כל התכונות של IMS באמצעות רישום יחיד ל-IMS שסופק על ידי ImsService של המכשיר, ולעמוד בדרישות שהוצגו על ידי חלק מחברות הטלקום. בהשוואה למודל רישום כפול, שבו כמה רישומים של IMS מנוהלים במכשיר אחד, רישום יחיד מצמצם את התנועה ברשת של הספק ומגדיל את המהימנות.

ב-Android 12 יש תמיכה במודל הרישום היחיד הזה באמצעות ארכיטקטורה עם קבוצת ממשקי API שמאפשרים למחסנית הטלפוניה של AOSP לנהל גם את תכונות ה-MMTEL שמסופקות על ידי ImsService וגם את תכונות ה-RCS שמסופקות על ידי אפליקציית ההודעות ב-RCS שהמשתמש בחר. כדי לתמוך ברישום יחיד ב-IMS, יצרני המכשירים וספקי ה-SoC צריכים להטמיע את ממשקי ה-API האלה כדי להפעיל את תכונות ה-RCS באפליקציית ההודעות ב-RCS שהמשתמש בחר.

איור 1 ממחיש את מחסנית ה-IMS של המכשיר כשמשתמשים במודל הרישום היחיד של IMS. כל האפליקציות של IMS משתמשות ב-ImsService שמוגדר כברירת מחדל במכשיר לתכונות של MMTEL ו-RCS באמצעות הרשמה אחת ל-IMS. זה כולל הקצאה, העברת הודעות SIP והחלפת יכולות של משתמשי RCS.

ארכיטקטורה של מצב רישום יחיד

איור 1. ארכיטקטורה של מודל רישום יחיד

ב-Android מגרסה 11 ומטה יש תמיכה רק במודל רישום כפול כדי לספק תכונות של MMTEL ו-RCS. במודל הזה, תכונות MMTEL מסופקות על ידי ImsService של המכשיר, ותכונות RCS מיושמות מעל ומנהלות את מחסנית ה-IMS והחיבור לרשת של הספק באופן עצמאי.

איור 2 מציג את הארכיטקטורה של מודל הרישום הכפול. במודל הזה, כל אפליקציה אחראית להתחבר לרשת של הספק וליצור רישום IMS לתכונות של MMTEL ו-RCS. ‫ImsService של המכשיר מטמיע MMTEL, משתמש בחיבור הנתונים של IMS במכשיר לרשת הספק ופועל באופן עצמאי מאפליקציות RCS אחרות.

ארכיטקטורה של מצב רישום כפול

איור 2. ארכיטקטורה של מודל רישום כפול

ממשקי API של רישום יחיד ל-IMS

מכשירים שפועלים ברשתות של ספקים שדורשים רישום יחיד ל-IMS חייבים לתמוך בממשקי ה-API של רישום יחיד ל-IMS ולהגדיר את התכונה PackageManager#FEATURE_TELEPHONY_IMS_SINGLE_REGISTRATION ב-Android. באיור 3 מוצגים ממשקי ה-API שתומכים ברישום יחיד של IMS.

ממשקי API שתומכים ברישום יחיד ל-IMS

איור 3. ממשקי API ברמה גבוהה שתומכים ברישום יחיד ל-IMS

מכשירי Android שתומכים ברישום יחיד ל-IMS כחלק מחבילת הטלפוניה של AOSP, נדרשים לתמוך בכל ממשקי ה-API של AOSP שמתוארים בטבלה הבאה.

API Surface Area ממשקי API של אפליקציית RCS ממשקי API של מערכת IMS של ספקים תיאור
הקצאת הרשאות ל-RCS ProvisioningManager ImsConfigImplBase מאפשרת ליצרן ציוד מקורי (OEM) או לספק להציע אפליקציה לעדכון סטטוס ההקצאה של RCS, אם הספק משתמש במנגנון קנייני של הרשאות ספק. בנוסף, ה-ImsService חייב לתמוך ב-AutoConfigurationServer‏ (ACS) הרגיל כדי להקצות לספקים שלא משתמשים במנגנון קנייני.
העברת הודעות SIP SipDelegateManager SipTransportImplBase מאפשר לאפליקציית RCS לשייך תגי תכונות ספציפיים של RCS למכשיר ImsService, ואז לשלוח ולקבל הודעות SIP ועדכוני רישום של IMS שמשויכים לתגי התכונות האלה של RCS.
התראות ייעודיות על נתוני הרשאה ConnectivityManager DataCallResponse מאפשרת לאפליקציה להאזין להתראות QoS בשקע שמשויך ליציאה מקומית ספציפית.
אימות GBA bootstrapAuthenticationRequest GbaService מאפשרת לאפליקציית RCS לעבור אימות ברשת ולגשת למפתחות שמשמשים לתכונות של RCS, כמו העברת קבצים.
החלפת יכולות בין משתמשי RCS ImsRcsManager RcsCapabilityExchangeImplBase הוא מספק ל-AOSP את היכולת לשלוח את היכולות של MMTEL ו-RCS לספק ImsService, כדי שאפשר יהיה לפרסם אותן כישות אחת ברשת לצורך החלפת יכולות של משתמשי RCS. מאפשרת גם לאפליקציות אחרות שמתעניינות ביכולות RCS של איש קשר אחד או יותר לשלוח שאילתה לרשת כדי לברר מהן היכולות של אנשי הקשר ב-RCS.

אבטחה והרשאות

ב-Android 12 נוספו ההרשאות הבאות כדי להבטיח גישה מאובטחת לרשת של הספק ולנתוני המשתמש:

ההרשאה android.permission.PERFORM_IMS_SINGLE_REGISTRATION צריכה להיות מוגדרת על ידי אפליקציית ההודעות עם תכונות ה-RCS. כדי לקבל את ההרשאה הזו, התנאים הבאים צריכים להתקיים:

  • האפליקציה חייבת להיות מותקנת כאפליקציה עם הרשאות, כלומר היא מותקנת מראש במכשיר ויש לה גישה להרשאות מיוחדות.
  • צריך להגדיר את האפליקציה בתור תפקיד ברירת המחדל של המשתמש ל-SMS באמצעות RoleManager

אם אף אחד מהתנאים האלה לא מתקיים, לאפליקציה לא תהיה גישה להרשאה android.permission.PERFORM_IMS_SINGLE_REGISTRATION. לכן, אפליקציות של צד שלישי לא יכולות לגשת לממשקי API של רישום יחיד ב-RCS, כי הם דורשים אישור של ספק הסלולר במכשיר.

ההרשאה android.permission.ACCESS_RCS_USER_CAPABILITY_EXCHANGE מאפשרת לאפליקציה, אם היא מקבלת אותה וגם את הרשאת הגישה לאנשי קשר, לבקש את יכולות ה-RCS של מספרי טלפון באמצעות RcsUceAdapter. כדי לקבל את ההרשאה הזו, התנאים הבאים צריכים להתקיים:

  • האפליקציה צריכה להיות מותקנת כאפליקציה עם הרשאות מיוחדות, כלומר היא מותקנת מראש במכשיר ויש לה הרשאה לגשת להרשאות מיוחדות.
  • האפליקציה צריכה להיות מוגדרת כאחד מהתפקידים הבאים RoleManager:

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

כדי לגשת ל-APN של IMS באמצעות ConnectivityManager כדי להגדיר ולנהל תעבורת נתונים, האפליקציות צריכות גם לבקש את ההרשאה android.permission.CONNECTIVITY_USE_RESTRICTED_NETWORKS.

דוגמאות ומקור

‫Android מספקת אפליקציה ב-AOSP שמטמיעה אפליקציית הודעות לבדיקה עם תמיכה בסיסית בהודעות RCS למטרות בדיקה ופיתוח. אפשר למצוא את האפליקציה בכתובת testapps/TestRcsApp. כשהאפליקציה מותקנת במכשיר, אפשר להגדיר אותה כאפליקציית הודעות ברירת המחדל של המשתמש, ויהיו לה ההרשאות הנדרשות כדי לגשת לממשקי ה-API של הרישום היחיד ב-IMS.

ב-Android יש גם הטמעה לדוגמה של ImsService ל-RCS. קוד המקור נמצא בכתובת /testapps/ImsTestService.

הטמעה

לפרטים נוספים על ההטמעה, הורידו את הקובץ IMS Single Registration in Android.

אימות

כדי לאמת את ההטמעה של רישום יחיד ב-IMS:

  • מוודאים שחבילת מקרים לבדיקה ה-CTS‏ CtsTelephonyTestCases עוברת.
  • כדי להריץ תרחישי בדיקה בסיסיים של רישום יחיד במהלך השילוב, צריך להתקין את TestRcsApp ולהריץ אותו.
  • לעבור אישור של ספק סלולר למקרי בדיקה של רישום יחיד ב-IMS.