ثبت نام واحد 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 نیز باشد به برنامه اجازه می دهد تا قابلیت های RCS شماره تلفن را با استفاده از RcsUceAdapter درخواست کند. برای اعطای این مجوز، موارد زیر باید درست باشد:

  • برنامه باید به عنوان یک برنامه ممتاز نصب شود، به این معنی که از قبل روی دستگاه نصب شده است و اجازه دسترسی به مجوزهای ممتاز را دارد.
  • برنامه باید به عنوان یکی از نقش های 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.