اندروید ۱۲ پشتیبانی از یک مدل ثبت واحد برای ارائه ویژگیهای MMTEL و RCS را معرفی میکند. این مدل به دستگاهها اجازه میدهد تا تمام ویژگیهای IMS را از طریق یک ثبت واحد IMS که توسط ImsService دستگاه ارائه میشود، مدیریت کنند و الزامات معرفی شده توسط برخی از اپراتورهای مخابراتی را رعایت کنند. در مقایسه با مدل ثبت دوگانه، که در آن چندین ثبت IMS در یک دستگاه مدیریت میشوند، ثبت واحد ترافیک را در شبکه اپراتور کاهش داده و قابلیت اطمینان را افزایش میدهد.
اندروید ۱۲ از این مدل ثبت تکی از طریق معماری با مجموعهای از APIها پشتیبانی میکند که به پشته تلفنی AOSP اجازه میدهد تا هم ویژگیهای MMTEL ارائه شده توسط ImsService و هم ویژگیهای RCS ارائه شده توسط برنامه پیامرسان RCS انتخاب شده توسط کاربر را مدیریت کند. برای پشتیبانی از ثبت تکی IMS، تولیدکنندگان دستگاه و فروشندگان SoC باید این APIها را پیادهسازی کنند تا ویژگیهای RCS را در برنامه پیامرسان RCS انتخاب شده توسط کاربر فعال کنند.
شکل ۱، پشته IMS دستگاه را هنگام استفاده از مدل ثبت نام تکی IMS نشان میدهد. همه برنامههای IMS از ImsService پیشفرض دستگاه برای ویژگیهای MMTEL و RCS از طریق یک ثبت نام IMS واحد استفاده میکنند. این شامل تأمین، ارسال پیام SIP و تبادل قابلیت کاربر RCS میشود.

شکل ۱. معماری مدل ثبت واحد
اندروید ۱۱ و پایینتر فقط از یک مدل ثبت دوگانه برای ارائه ویژگیهای MMTEL و RCS پشتیبانی میکند، که در آن MMTEL توسط ImsService دستگاه ارائه میشود و ویژگیهای RCS روی آن پیادهسازی میشوند و پشته IMS خود و اتصال به شبکه اپراتور را به طور مستقل مدیریت میکنند.
شکل ۲ معماری مدل ثبت دوگانه را نشان میدهد. در این مدل، هر برنامه مسئول اتصال به شبکه اپراتور و ایجاد ثبت IMS برای ویژگیهای MMTEL و RCS است. ImsService دستگاه، MMTEL را پیادهسازی میکند، از اتصال داده IMS دستگاه به شبکه اپراتور استفاده میکند و مستقل از سایر برنامههای RCS عمل میکند.

شکل ۲. معماری مدل ثبت دوگانه
APIهای ثبت تکی IMS
دستگاههایی که از نظر اپراتورها به ثبت نام تکی IMS نیاز دارند، باید از APIهای ثبت نام تکی IMS پشتیبانی کنند و ویژگی Android PackageManager#FEATURE_TELEPHONY_IMS_SINGLE_REGISTRATION را تعریف کنند. شکل 3 APIهایی را نشان میدهد که از ثبت نام تکی IMS پشتیبانی میکنند.

شکل 3. سطوح API سطح بالا که از ثبت نام تکی IMS پشتیبانی میکنند
دستگاههای اندرویدی که از ثبت تکی IMS به عنوان بخشی از پشته تلفنی AOSP پشتیبانی میکنند، ملزم به پشتیبانی از تمام APIهای AOSP شرح داده شده در جدول زیر هستند.
| مساحت سطح API | رابطهای برنامهنویسی کاربردی (API) برنامههای RCS | رابطهای برنامهنویسی نرمافزار IMS فروشنده | توضیحات |
|---|---|---|---|
| تأمین RCS | مدیر تأمین | ImsConfigImplBase | به یک تولیدکننده اصلی تجهیزات (OEM) یا اپراتور اجازه میدهد تا در صورتی که اپراتور از مکانیسم اختصاصی حق اپراتور استفاده میکند، برنامهای برای بهروزرسانی وضعیت تأمین RCS ارائه دهد. ImsService همچنین باید از AutoConfigurationServer استاندارد (ACS) برای تأمین برای اپراتورهایی که از مکانیسم اختصاصی استفاده نمیکنند، پشتیبانی کند. |
| ارسال پیام SIP | مدیر نماینده Sip | سیپترنسپورتایمپِلبیس | به یک برنامه RCS اجازه میدهد تا ابتدا برچسبهای خاص ویژگیهای RCS را با ImsService دستگاه مرتبط کند و سپس پیامهای SIP و بهروزرسانیهای ثبت IMS مرتبط با آن برچسبهای ویژگی RCS را ارسال و دریافت کند. |
| اعلانهای اختصاصی اپراتور | مدیر اتصال | پاسخ تماس داده | به یک برنامه اجازه میدهد تا به اعلانهای QoS در سوکتی که با یک پورت محلی خاص مرتبط است، گوش دهد. |
| احراز هویت GBA | درخواست احراز هویت بوتاسترپ | خدمات Gba | به یک برنامه RCS اجازه میدهد تا با شبکه و کلیدهای دسترسی مورد استفاده برای ویژگیهای RCS مانند انتقال فایل، احراز هویت کند. |
| تبادل قابلیت کاربر RCS | مدیر ImsRcs | RcsCapabilityExchangeImplBase | به AOSP این امکان را میدهد که قابلیتهای MMTEL و RCS خود را به فروشنده ImsService ارسال کند تا بتوانند تحت یک نهاد در شبکه برای تبادل قابلیتهای کاربر RCS منتشر شوند. همچنین به سایر برنامههای علاقهمند به قابلیتهای RCS یک یا چند مخاطب اجازه میدهد تا از شبکه، قابلیتهای RCS مخاطبین را جستجو کنند. |
امنیت و مجوزها
اندروید ۱۲ مجوزهای زیر را برای اطمینان از دسترسی ایمن به شبکه اپراتور و دادههای کاربر معرفی میکند:
-
android.permission.PERFORM_IMS_SINGLE_REGISTRATION -
android.permission.ACCESS_RCS_USER_CAPABILITY_EXCHANGE
مجوز android.permission.PERFORM_IMS_SINGLE_REGISTRATION باید توسط برنامه پیامرسان دارای ویژگیهای RCS تعریف شود. برای اعطای این مجوز، موارد زیر باید صحیح باشند:
- این برنامه باید به عنوان یک برنامه ممتاز نصب شود، به این معنی که از قبل روی دستگاه نصب شده باشد و اجازه دسترسی به مجوزهای ممتاز را داشته باشد.
- این برنامه باید با استفاده از
RoleManagerبه عنوان نقش پیشفرض پیامکی کاربر تنظیم شود.
اگر هر دوی این شرایط برآورده نشوند، برنامه از دسترسی به مجوز android.permission.PERFORM_IMS_SINGLE_REGISTRATION محروم میشود. این بدان معناست که برنامههای شخص ثالث مجاز به دسترسی به APIهای ثبت نام تکی RCS نیستند زیرا به مجوز اپراتور روی دستگاه نیاز دارند.
مجوز android.permission.ACCESS_RCS_USER_CAPABILITY_EXCHANGE وقتی به برنامهای که مجوز READ_CONTACTS را نیز دارد اعطا شود، به برنامه اجازه میدهد تا با استفاده از RcsUceAdapter ، قابلیتهای RCS شماره تلفنها را درخواست کند. برای اعطای این مجوز، موارد زیر باید صحیح باشند:
- این برنامه باید به عنوان یک برنامه ممتاز نصب شود، به این معنی که از قبل روی دستگاه نصب شده باشد و اجازه دسترسی به مجوزهای ممتاز را داشته باشد.
این برنامه باید به عنوان یکی از نقشهای
RoleManagerزیر تعریف شود:- برنامه پیامرسانی پیشفرض: توسط کاربر تنظیم میشود.
- برنامه شمارهگیر پیشفرض: توسط کاربر تنظیم میشود.
- برنامه پیشفرض مخاطبین: نقشی که در اندروید ۱۲ معرفی شد و به تولیدکننده اصلی (OEM) اجازه میدهد تا از طریق مقدار
config_systemContactsدر لایه رویی دستگاه، نام بستهای را تعریف کند که باید با برنامه مخاطبین دستگاه مطابقت داشته باشد. سپس به آن برنامه، نقش مخاطبین داده میشود.
برای دسترسی به APN IMS با استفاده از ConnectivityManager جهت تنظیم و مدیریت ترافیک داده، برنامهها باید مجوز android.permission.CONNECTIVITY_USE_RESTRICTED_NETWORKS را نیز درخواست کنند.
مثالها و منابع
اندروید برنامهای در AOSP ارائه میدهد که یک برنامه پیامرسان آزمایشی با پشتیبانی اولیه از پیامرسان RCS را برای اهداف آزمایش و توسعه پیادهسازی میکند. میتوانید این برنامه را در testapps/TestRcsApp پیدا کنید. هنگامی که برنامه روی دستگاهی نصب میشود، میتواند به عنوان برنامه پیامرسان پیشفرض کاربر تنظیم شود و مجوزهای لازم برای دسترسی به APIهای ثبتشده IMS را خواهد داشت.
اندروید همچنین یک پیادهسازی نمونه از ImsService برای RCS ارائه میدهد. کد منبع در /testapps/ImsTestService قرار دارد.
پیادهسازی
برای جزئیات بیشتر در مورد پیادهسازی، IMS Single Registration را در اندروید دانلود کنید.
اعتبارسنجی
برای اعتبارسنجی پیادهسازی ثبت تکی IMS خود، موارد زیر را انجام دهید:
- اطمینان حاصل کنید که مجموعه تست CTS با موفقیت پشت سر گذاشته میشود.
- برای اجرای موارد آزمایشی ثبت نام تکی پایه در حین ادغام، TestRcsApp را نصب و اجرا کنید.
- قبولی در گواهینامه اپراتور برای موارد آزمون ثبت نام تکی IMS.