استحقاق خدمة IMS

من Android 12 ، يشتمل Android على دعم TS.43 Service Entitlement Configuration ، وهي مواصفات GSMA التي تحدد خطوة التحقق من الاستحقاق لتنشيط الخدمات بما في ذلك Voice-over-Wi-Fi (VoWiFi) و Voice-over-LTE (VoLTE) و SMS عبر IP (SMSoIP) وتنشيط الخدمة على الجهاز (ODSA) للأجهزة المصاحبة لـ eSIM (المرتبطة بالجهاز الطالب) ومعلومات خطة البيانات.

لدعم هذه المواصفات ، يوفر Android ميزة استحقاق خدمة IMS التي تسمح لمزود الخدمة بإبلاغ الأجهزة المحمولة بحالة خدمات شبكة IP Multimedia Subsystem (IMS). تسمح ميزة الاستحقاق هذه للجهاز بالاستعلام عن خادم استحقاق الناقل على النحو المحدد في مواصفات GSMA TS.43 لحالة استحقاق IMS باستخدام مصادقة EAP-AKA دون مطالبة المستخدمين بإدخال أي بيانات اعتماد يدويًا.

يمكن لشركات النقل التي لديها خوادم استحقاق IMS استخدام ميزة استحقاق خدمة IMS لتوفير الخدمة. يوفر اعتماد الميزة الفوائد التالية:

  • يقلل من تكاليف الاختبار والاعتماد لشركات النقل لأنه يمكن استخدام ميزة الاستحقاق هذه عبر العديد من المنتجات والشركات المصنعة للمعدات الأصلية.
  • تقلل نفقات التطوير لمصنعي الأجهزة من خلال تطبيق Android قياسي.
  • يسمح للشركات المصنّعة للأجهزة وشركات الجوال بالمساهمة في رمز الميزة حيث أن الميزة مفتوحة المصدر.
  • يوفر إدارة عناوين الطوارئ لشركات النقل في أمريكا الشمالية.

بنيان

يصف الشكل التالي بنية وسلوك ميزة استحقاق خدمة IMS.

ميزة الاستحقاق TS.43

الشكل 1. هندسة ميزة الاستحقاق TS.43

كما هو مبين في الشكل 1 ، تشتمل معمارية ميزة استحقاق خدمة IMS على المكونات التالية:

  • مكتبة service_entitlement TS.43 الثابتة لواجهة برمجة تطبيقات الخدمة : تنفذ هذه المكتبة مواصفة TS.43 ، وتتفاعل مع خادم استحقاق الناقل ، وتكشف واجهات برمجة التطبيقات APIs المواجهة للتطبيق لكل حالة استخدام TS.43.
  • تطبيق عميل ImsServiceEntitlement : يستخدم هذا التطبيق TS.43 Service API. ينفذ التطبيق عناصر واجهة المستخدم بما في ذلك عروض الويب لتقديم بوابة خدمة الناقل للمستخدمين لتفعيل الخدمات والتفاعل مع مكونات Android الأخرى لإدارة تجربة المستخدم من البداية إلى النهاية.

    لمزيد من المعلومات حول كيفية تكوين Android للعمل مع خادم الاستحقاق المستند إلى TS.43 لمشغل شبكة الجوّال ، راجع تطبيق ImsServiceEntitlement .

توضح الأسطر المرقمة في الشكل 1 كيف تتواصل مكونات ميزة استحقاق خدمة IMS مع بعضها البعض. يصف ما يلي كل خطوة من الخطوات كما هو موضح:

(1) يستدعي تطبيق العميل واجهة برمجة تطبيقات خدمة TS.43 لبدء طلب استحقاق الخدمة.

(2) ترسل API لخدمة TS.43 طلب HTTP إلى خادم استحقاق الناقل لبدء تحدي EAP-AKA.

(3) تستدعي API لخدمة TS.43 واجهات برمجة التطبيقات الهاتفية (على سبيل المثال ، getIccAuthentication ) لإكمال استجابة التحدي EAP-AKA.

(4) تتلقى خدمة TS.43 استحقاق الخدمة أو بيانات التكوين من خادم استحقاق الناقل بعد التحقق من استجابة EAP-AKA.

(5) تُعيد خدمة TS.43 استحقاق الخدمة أو بيانات التكوين إلى تطبيق العميل.

(6) يتعامل تطبيق العميل مع البيانات ويعرض اختياريًا بوابة خدمة الناقل للمستخدم لإنهاء تنشيط الخدمة.

اندماج

يصف هذا القسم عملية دمج مكتبة service_entitlement وتطبيق ImsServiceEntitlement .

نظرًا لعدم وجود تبعية لـ Android 12 API ، يمكن نقل مكتبة service_entitlement وتطبيق ImsServiceEntitlement إلى أنظمة Android الأساسية الأقدم.

مكتبة service_entitlement

نظرًا لأن مكتبة service_entitlement مرتبطة ارتباطًا ثابتًا ImsServiceEntitlement app ، فلا يلزم اتخاذ خطوات إضافية لدمج المكتبة في تطبيق 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 عنوان URL لخادم استحقاق مشغل شبكة الجوّال. يجب تضمين البادئة https:// .
KEY_FCM_SENDER_ID_STRING معرف مرسل FCM لمشغل شبكة الجوّال.

لا تقم بتعيين هذه القيمة إذا لم يطلب الناقل FCM.
KEY_SHOW_VOWIFI_WEBVIEW_BOOL اضبط على true إذا تطلب الناقل واجهة مستخدم بوابة ويب للمستخدمين للتسجيل في خدمة VoWiFi. على سبيل المثال ، الموافقة على الشروط والأحكام أو إدخال عنوان الطوارئ.

هذا مطلوب عادةً من قبل شركات النقل في أمريكا الشمالية.
KEY_WFC_EMERGENCY_ADDRESS_CARRIER_APP_STRING
اضبط على com.android.imsserviceentitlement/.WfcActivationActivity ، إذا كان KEY_SHOW_VOWIFI_WEBVIEW_BOOL true .
KEY_IMS_PROVISIONING_BOOL اضبط على true إذا كان الناقل يتطلب توفير شبكة لخدمات IMS (VoLTE / VoWiFi / SMSoIP) في الخلفية.

هذا مطلوب من قبل بعض شركات النقل الأوروبية.
KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL اضبط على true إذا كان KEY_IMS_PROVISIONING_BOOL true .

تمر حركة مرور HTTP إلى خادم استحقاق الناقل وبوابة الويب عبر الشبكة الافتراضية ، على سبيل المثال ، بيانات الجوال الافتراضية أو شبكة Wi-Fi.

شركاء GMS: يتم دعم شركات النقل التالية بواسطة تطبيق الاستحقاق TS.43 في Android 12 ، باتباع مواصفات TS.43 v5.0:

  • الولايات المتحدة: CSpire و US Cellular و Cellcom
  • فرنسا: Orange

واجهة مستخدم إضافية للنظام لتوفير IMS

يصف هذا القسم كيف يمكن لمصنعي المعدات الأصلية دعم عناصر واجهة مستخدم النظام الإضافية المتعلقة بتوفير خدمة 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 .

تغيير عنوان URL لخادم الاستحقاق

لتغيير عنوان URL لخادم الاستحقاق ، تجاوز تكوين الحامل KEY_ENTITLEMENT_SERVER_URL_STRING قيمته على سلسلة عنوان URL المتوقعة. يجب عليك تضمين البادئة 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