از 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 را شرح می دهد.
شکل 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