ثبت نام واحد IMS

اندروید 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. معماری مدل ثبت تک

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

شکل 2 معماری مدل ثبت دوگانه را نشان می دهد. در این مدل، هر اپلیکیشن وظیفه اتصال به شبکه اپراتور و ایجاد ثبت IMS برای ویژگی های MMTEL و RCS را بر عهده دارد. ImsService دستگاه MMTEL را پیاده سازی می کند، از اتصال داده IMS دستگاه به شبکه حامل استفاده می کند و مستقل از سایر برنامه های RCS عمل می کند.

معماری حالت ثبت دوگانه

شکل 2. معماری مدل ثبت دوگانه

API های ثبت تک IMS

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

سطوح API از ثبت واحد IMS پشتیبانی می کند

شکل 3. سطوح API سطح بالا که از ثبت واحد IMS پشتیبانی می کنند

دستگاه‌های اندرویدی که از ثبت واحد IMS به عنوان بخشی از پشته تلفنی AOSP پشتیبانی می‌کنند، باید از همه AOSP APIهای شرح داده شده در جدول زیر پشتیبانی کنند.

سطح API APIهای برنامه RCS API های فروشنده IMS شرح
تامین RCS Provisioning Manager 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 تعریف شود. برای اعطای این مجوز، موارد زیر باید درست باشد:

  • برنامه باید به عنوان یک برنامه ممتاز نصب شود، به این معنی که از قبل روی دستگاه نصب شده است و اجازه دسترسی به مجوزهای ممتاز را دارد.
  • برنامه باید با استفاده از RoleManager به عنوان نقش پیش فرض پیامک کاربر تنظیم شود

اگر هر دوی این شرایط رعایت نشود، برنامه از دسترسی به مجوز android.permission.PERFORM_IMS_SINGLE_REGISTRATION محروم می شود. این بدان معناست که برنامه‌های شخص ثالث مجاز به دسترسی به APIهای ثبت RCS تکی نیستند زیرا به گواهی شرکت مخابراتی در دستگاه نیاز دارند.

مجوز android.permission.ACCESS_RCS_USER_CAPABILITY_EXCHANGE هنگامی که به برنامه‌ای اعطا می‌شود که دارای مجوز READ_CONTACTS نیز باشد، به برنامه اجازه می‌دهد با استفاده از RcsUceAdapter ، قابلیت‌های RCS شماره‌های تلفن را درخواست کند. برای اعطای این مجوز، موارد زیر باید درست باشد:

  • برنامه باید به عنوان یک برنامه ممتاز نصب شود، به این معنی که از قبل روی دستگاه نصب شده است و اجازه دسترسی به مجوزهای ممتاز را دارد.
  • برنامه باید به عنوان یکی از نقش های RoleManager زیر تعریف شود:

    • برنامه پیام رسانی پیش فرض: توسط کاربر تنظیم شده است.
    • برنامه پیش‌فرض شماره‌گیر: توسط کاربر تنظیم می‌شود.
    • برنامه پیش‌فرض مخاطبین: نقشی که در Android 12 معرفی شده است که به OEM اجازه می‌دهد نام بسته را از طریق مقدار همپوشانی دستگاه config_systemContacts ، که باید با برنامه مخاطبین دستگاه مطابقت داشته باشد. سپس نقش مخاطبین به آن برنامه داده می شود.

برای دسترسی به IMS APN با استفاده از ConnectivityManager برای راه‌اندازی و مدیریت ترافیک داده، برنامه‌ها باید مجوز android.permission.CONNECTIVITY_USE_RESTRICTED_NETWORKS را نیز درخواست کنند.

مثال ها و منبع

Android برنامه‌ای را در AOSP ارائه می‌کند که یک برنامه پیام‌رسانی آزمایشی را با پشتیبانی اولیه پیام‌رسانی RCS برای اهداف آزمایش و توسعه پیاده‌سازی می‌کند. می توانید برنامه را در testapps/TestRcsApp پیدا کنید. وقتی برنامه روی دستگاهی نصب می‌شود، می‌توان آن را به‌عنوان برنامه پیام‌رسانی پیش‌فرض کاربر تنظیم کرد و مجوزهای لازم برای دسترسی به APIهای ثبت واحد IMS را خواهد داشت.

اندروید همچنین نمونه ای از پیاده سازی ImsService را برای RCS ارائه می دهد. کد منبع در /testapps/ImsTestService است.

پیاده سازی

برای جزئیات بیشتر پیاده سازی، IMS Single Registration در اندروید را دانلود کنید.

اعتبار سنجی

برای تایید اجرای ثبت IMS خود، موارد زیر را انجام دهید:

  • اطمینان حاصل کنید که مجموعه آزمایشی CTS CtsTelephonyTestCases موفق شده است.
  • TestRcsApp را نصب و اجرا کنید تا موارد اولیه تست ثبت نام را در طول ادغام اجرا کنید.
  • صدور گواهینامه حامل برای موارد آزمون ثبت نام واحد IMS.