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

بدءًا من الإصدار Android 12، يوفّر نظام التشغيل Android TS.43 ضبط إذن الوصول إلى الخدمة، وهي إحدى مواصفات بروتوكول GSMA التي تحدّد خطوة التحقّق من الاستحقاق لتفعيل الخدمات، بما في ذلك Voice-over-Fi (VoWiFi) وVoice-over-LTE (VoLTE) والرسائل القصيرة SMS عبر IP (SMSoIP) و"تفعيل الخدمة على الجهاز" (ODSA) للأجهزة المرتبطة بمعلومات الجهاز المرتبطة بشريحة eSIM و"تفعيل الخدمة على الجهاز" (ODSA) للأجهزة المرتبطة.

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

يمكن لمشغّلي شبكات الجوّال الذين لديهم خوادم استحقاق استخدام خدمة IMS استخدام ميزة استحقاق خدمة الرسائل الفورية (IMS) لتوفير الخدمة. ويوفّر استخدام الميزة المزايا التالية:

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

البنية

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

ميزة الوصول إلى البيانات TS.43

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

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

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

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

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

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

(2) ترسل واجهة برمجة تطبيقات الخدمة TS.43 طلب HTTP إلى خادم الاستحقاق لمشغِّل شبكة الجوّال لبدء تحدٍ EAP-AKA.

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

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

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

(6) يعالج تطبيق العميل البيانات ويعرض اختياريًا بوابة خدمة مشغّل شبكة الجوّال لكي ينهي المستخدم تفعيل الخدمة.

تفاصيل عملية الدمج

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

نظرًا لعدم إمكانية الاعتماد على واجهة برمجة التطبيقات Android 12، يمكن نقل مكتبة 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 معرّف مرسل خدمة "المراسلة عبر السحابة الإلكترونية من Firebase" لمشغّل شبكة الجوّال.

لا تضبط هذه القيمة إذا لم يطالب مشغّل شبكة الجوّال بخدمة "المراسلة عبر السحابة الإلكترونية من Firebase".
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.

شركاء خدمات Google للأجهزة الجوّالة (GMS): مشغّلو شبكات الجوّال التاليون متوافقون مع تطبيق الاستحقاق TS.43 في نظام التشغيل Android 12، وفقًا للمواصفات TS.43 v5.0:

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

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

يوضّح هذا القسم كيف يمكن للمصنّعين الأصليين للأجهزة استخدام عناصر إضافية لواجهة مستخدم النظام متعلقة بتوفير خدمة IMS (على سبيل المثال، عند عرض إشعار عند توفير VoWiFi).

يضبط تطبيق ImsServiceEntitlement حالة توفير خدمة VoWiFi على النظام الأساسي باستخدام واجهة برمجة تطبيقات نظام ProvisioningManager.setProvisioningIntValue(KEY_VOICE_OVER_WIFI_ENABLED_OVERRIDE, value). تُستخدَم واجهة برمجة التطبيقات هذه أيضًا في VoLTE (مع KEY_VOLTE_PROVISIONING_STATUS) والرسائل القصيرة SMS (مع KEY_SMS_OVER_IP_ENABLED).

يمكن لواجهة مستخدم النظام بعد ذلك قراءة حالة توفير المتطلبات اللازمة باستخدام getProvisioningIntValue أو عن طريق تسجيل معاودة الاتصال لرصد تغيير حالة توفير المتطلبات اللازمة من خلال registerProvisioningChangedCallback.

إلغاء عمليات الضبط للاختبار

استخدِم الإجراءات التالية لتعديل سلوك ImsServiceEntitlement مؤقتًا لأغراض الاختبار. للحصول على تفاصيل حول كيفية إلغاء إعدادات مشغّل شبكة الجوّال، يمكنك الاطّلاع على إلغاء إعدادات مشغّل شبكة الجوّال.

تخطّي عملية الاشتراك في VoWiFi

لتخطّي عملية الاشتراك في VoWiFi والسماح بتفعيل خدمة VoWiFi مباشرةً، يمكنك إلغاء إعدادات مشغّل شبكة الجوّال KEY_WFC_EMERGENCY_ADDRESS_CARRIER_APP_STRING وضبط قيمتها على سلسلة فارغة.

تخطّي إدارة حسابات 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