حق استفاده سرویس IMS

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

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

شرکت‌های مخابراتی دارای سرورهای مجوز IMS می‌توانند از ویژگی مجوز سرویس IMS برای آماده‌سازی سرویس استفاده کنند. با پذیرفتن این ویژگی، از مزایای زیر بهره‌مند می‌شوید:

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

معماری

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

ویژگی حق استفاده TS.43

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

همان‌طور که در شکل ۱ نشان داده شده است، معماری ویژگی استحقاق سرویس IMS شامل مؤلفه‌های زیر است:

  • service_entitlement کتابخانه ایستا TS.43 Service API: این کتابخانه مشخصات TS.43 را پیاده‌سازی می‌کند، با سرور حق استفاده شرکت مخابراتی تعامل برقرار می‌کند، و میاناهای برنامه‌سازی کاربردی روبه‌برنامه را برای هر مورد استفاده TS.43 نشان می‌دهد.
  • برنامه مشتری ImsServiceEntitlement: این برنامه از TS.43 Service API استفاده می‌کند. برنامه عناصر رابط کاربری را، ازجمله وب‌نماها برای پرداز کردن درگاه سرویس شرکت مخابراتی برای کاربران جهت فعال کردن سرویس‌ها، پیاده‌سازی می‌کند و با دیگر عناصر Android برای مدیریت تجربه کاربر از ابتدا تا انتها تعامل دارد.

    برای کسب اطلاعات بیشتر درباره نحوه پیکربندی Android برای کار با سرور مجوز مبتنی بر TS.43 شرکت مخابراتی، برنامه ImsServiceEntitlement را ببینید.

خطوط شماره‌گذاری‌شده در «شکل ۱» نشان می‌دهد که عناصر ویژگی حق مالکیت سرویس IMS چگونه با یکدیگر ارتباط برقرار می‌کنند. در زیر هریک از مراحل با برچسب توضیح داده شده است:

(۱) برنامه مشتری میانای برنامه‌سازی کاربردی سرویس TS.43 را برای شروع درخواست حق استفاده از سرویس فرا می‌خواند.

(۲) میانای برنامه‌سازی کاربردی سرویس TS.43 برای شروع چالش EAP-AKA، درخواست HTTP به سرور مجوز شرکت مخابراتی ارسال می‌کند.

(۳) میانای برنامه‌سازی کاربردی سرویس TS.43 میاناهای برنامه‌سازی کاربردی تلفنی (برای نمونه، getIccAuthentication) را برای تکمیل چالش-پاسخ EAP-AKA فرا می‌خواند.

(۴) سرویس TS.43 داده‌های پیکربندی یا حق استفاده از سرویس را پس‌از تأیید پاسخ EAP-AKA از سرور حق استفاده شرکت مخابراتی دریافت می‌کند.

(۵) سرویس TS.43 داده‌های پیکربندی یا حق استفاده از سرویس را به برنامه مشتری برمی‌گرداند.

(۶) برنامه کارخواه داده‌ها را مدیریت می‌کند و به‌طور اختیاری درگاه سرویس شرکت مخابراتی را برای کاربر ارائه می‌دهد تا فعال‌سازی سرویس را تکمیل کند.

یکپارچه‌سازی

این بخش فرایند ادغام کتابخانه service_entitlement و برنامه ImsServiceEntitlement را شرح می‌دهد.

ازآنجایی‌که هیچ وابستگی به Android 12 API وجود ندارد، کتابخانه service_entitlement و برنامه ImsServiceEntitlement را می‌توان به پلاتفرم‌های Android پایین‌تر برگرداند.

کتابخانه service_entitlement

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

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

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

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

برنامه ImsServiceEntitlement

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

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

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

این کار معمولاً توسط شرکت‌های مخابراتی در آمریکای شمالی الزامی است.
KEY_WFC_EMERGENCY_ADDRESS_CARRIER_APP_STRING
روی com.android.imsserviceentitlement/.WfcActivationActivity تنظیم شود، اگر KEY_SHOW_VOWIFI_WEBVIEW_BOOL true باشد.
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
  • فرانسه: Orange

میانای کاربر سیستم اضافی برای تدارک IMS

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

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

تغییر دادن نشانی وب سرور حق استفاده

برای تغییر نشانی وب سرور حق مالکیت، پیکربندی شرکت مخابراتی را ملغی کنید KEY_ENTITLEMENT_SERVER_URL_STRING و مقدار آن را روی رشته نشانی وب موردانتظار تنظیم کنید. باید پیشوند https:// را هم بگنجانید.

ملغی کردن پیکربندی‌های شرکت مخابراتی

از Android 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