حق سرویس IMS

از Android 12، Android از TS.43 Service Entitlement Configuration پشتیبانی می‌کند، یک مشخصات GSMA که مرحله تأیید استحقاق را برای فعال‌سازی سرویس‌هایی از جمله Voice-over-Wi-Fi (VoWiFi)، Voice-over-LTE (VoLTE) تعریف می‌کند. ، پیامک از طریق IP (SMSoIP)، فعال سازی سرویس روی دستگاه (ODSA) دستگاه های همراه eSIM (مرتبط با دستگاه درخواست کننده) و اطلاعات طرح داده.

برای پشتیبانی از این مشخصات، Android یک ویژگی حق سرویس IMS را ارائه می‌کند که به ارائه‌دهنده خدمات اجازه می‌دهد تا دستگاه‌های تلفن همراه را از وضعیت خدمات شبکه IP Multimedia Subsystem (IMS) مطلع کند. این ویژگی استحقاق به دستگاه اجازه می‌دهد تا با استفاده از احراز هویت EAP-AKA، بدون نیاز به وارد کردن دستی هر گونه اعتبارنامه توسط کاربران، از سرور حق حامل، همانطور که توسط مشخصات GSMA TS.43 برای وضعیت حق IMS تعریف شده است، پرس و جو کند.

شرکت های مخابراتی با سرورهای حق IMS می توانند از ویژگی حق سرویس IMS برای ارائه خدمات استفاده کنند. اتخاذ این ویژگی مزایای زیر را به همراه دارد:

  • هزینه‌های آزمایش و صدور گواهینامه را برای شرکت‌های مخابراتی کاهش می‌دهد زیرا این ویژگی استحقاق را می‌توان در چندین محصول و OEM استفاده کرد.
  • سربار توسعه را برای سازندگان دستگاه از طریق یک برنامه استاندارد Android کاهش می دهد.
  • به سازندگان دستگاه و شرکت‌های مخابراتی اجازه می‌دهد تا کد را برای این ویژگی مشارکت دهند زیرا این ویژگی منبع باز است.
  • مدیریت آدرس اضطراری را برای اپراتورهای آمریکای شمالی فراهم می کند.

معماری

شکل زیر معماری و رفتار ویژگی حق سرویس IMS را شرح می دهد.

ویژگی حق TS.43

شکل 1. معماری ویژگی حق TS.43

همانطور که در شکل 1 نشان داده شده است، معماری ویژگی حق سرویس IMS شامل اجزای زیر است:

  • service_entitlement TS.43 Service API کتابخانه ایستا : این کتابخانه مشخصات TS.43 را پیاده سازی می کند، با سرور حق یک شرکت مخابراتی تعامل دارد و API های رو به روی برنامه را برای هر مورد TS.43 در معرض نمایش می گذارد.
  • برنامه مشتری ImsServiceEntitlement : این برنامه از TS.43 Service API استفاده می کند. این برنامه عناصر رابط کاربری از جمله نمای وب را برای ارائه پورتال خدمات شرکت مخابراتی برای فعال کردن سرویس‌ها و تعامل با سایر مؤلفه‌های 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 را می توان به پلتفرم های قدیمی اندروید بکپورت کرد.

کتابخانه service_entitlement

از آنجایی که کتابخانه service_entitlement به صورت ایستا به ImsServiceEntitlement app مرتبط است، برای ادغام کتابخانه با برنامه ImsServiceEntitlement نیازی به مراحل اضافی نیست.

کتابخانه service_entitlement را می توان با برنامه های خود برای موارد استفاده TS.43 مانند طرح داده و ODSA ادغام کرد. این کتابخانه همچنین می تواند در یک برنامه برای موارد استفاده غیر TS.43 بر اساس پروتکل EAP-AKA ادغام شود.

در زیر APIهایی را که برای چنین مواردی استفاده می شود شرح می دهد:

  • برنامه TS.43 با استفاده از پروتکل TS.43 HTTP پیاده سازی شده در کتابخانه: از API ها در کلاس ServiceEntitlement استفاده کنید
  • برنامه غیر TS.43 با استفاده از پروتکل EAP-AKA پیاده‌سازی شده در کتابخانه: از APIهای نمایش داده شده در کلاس EapAkaHelper استفاده کنید

برنامه ImsServiceEntitlement

به طور پیش فرض، Android شامل برنامه ImsServiceEntitlement نصب شده در پارتیشن محصول به عنوان یک برنامه ممتاز است. برای پیکربندی برنامه، از کلیدهای CarrierConfig زیر استفاده کنید:

کلید ارزش
KEY_ENTITLEMENT_SERVER_URL_STRING نشانی وب سرور مجاز شرکت مخابراتی. پیشوند https:// باید گنجانده شود.
KEY_FCM_SENDER_ID_STRING شناسه فرستنده FCM شرکت مخابراتی.

اگر FCM توسط شرکت مخابراتی مورد نیاز نیست، این مقدار را تنظیم نکنید.
KEY_SHOW_VOWIFI_WEBVIEW_BOOL اگر شرکت مخابراتی برای ثبت نام در سرویس VoWiFi کاربران به یک UI پورتال وب نیاز دارد، روی true تنظیم کنید. برای مثال، موافقت با شرایط و ضوابط یا وارد کردن آدرس اضطراری.

این معمولاً توسط اپراتورها در آمریکای شمالی مورد نیاز است.
KEY_WFC_EMERGENCY_ADDRESS_CARRIER_APP_STRING
اگر KEY_SHOW_VOWIFI_WEBVIEW_BOOL true باشد، روی com.android.imsserviceentitlement/.WfcActivationActivity تنظیم کنید.
KEY_IMS_PROVISIONING_BOOL اگر شرکت مخابراتی به ارائه خدمات IMS (VoLTE/VoWiFi/SMSoIP) در پس‌زمینه نیاز دارد، روی true تنظیم کنید.

این مورد توسط برخی از حامل های اروپایی مورد نیاز است.
KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL اگر KEY_IMS_PROVISIONING_BOOL true باشد روی true تنظیم کنید.

ترافیک HTTP به سرور و پورتال وب دارای حق شرکت از طریق شبکه پیش‌فرض، به عنوان مثال، داده تلفن همراه یا Wi-Fi پیش‌فرض می‌رود.

شرکای GMS: اپراتورهای زیر توسط برنامه حقوقی TS.43 در Android 12 پشتیبانی می‌شوند و از مشخصات TS.43 v5.0 پشتیبانی می‌کنند:

  • ایالات متحده: CSpire، US Cellular، Cellcom
  • فرانسه: نارنجی

UI سیستم اضافی برای ارائه IMS

این بخش توضیح می‌دهد که چگونه OEM‌ها می‌توانند از عناصر رابط کاربری اضافی سیستم مربوط به ارائه خدمات IMS پشتیبانی کنند (به عنوان مثال، هنگام نمایش اعلان هنگام ارائه VoWiFi).

برنامه ImsServiceEntitlement با استفاده از API سیستم ProvisioningManager.setProvisioningIntValue(KEY_VOICE_OVER_WIFI_ENABLED_OVERRIDE, value) وضعیت تامین VoWiFi را در پلتفرم تنظیم می کند. این 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:// را وارد کنید.

نادیده گرفتن تنظیمات حامل

از اندروید 11، دستورات لغو پیکربندی حامل داخلی و با امتیازات روت در دسترس هستند.

دستور زیر نمونه ای از نحوه نادیده گرفتن کلید پیکربندی حامل 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