إذن استخدام خدمة IMS

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

لدعم هذه المواصفة، يوفّر Android ميزة استحقاق خدمة IMS التي تتيح لمقدّم الخدمة إعلام الأجهزة الجوّالة بحالة خدمات شبكة نظام الوسائط المتعددة عبر بروتوكول الإنترنت (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. ينفّذ التطبيق عناصر واجهة المستخدم، بما في ذلك عروض الويب لعرض بوابة خدمة مشغّل شبكة الجوّال ليتمكّن المستخدمون من تفعيل الخدمات، ويتفاعل مع مكوّنات Android الأخرى لإدارة تجربة المستخدم من البداية إلى النهاية.

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

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

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

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

(3) تستدعي واجهة برمجة التطبيقات TS.43 service API واجهات برمجة تطبيقات الاتصالات (مثل 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، لا يلزم اتّخاذ أي خطوات إضافية لدمج المكتبة في تطبيق 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" (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 الإصدار 5.0:

  • الولايات المتحدة: CSpire وUS Cellular وسلكوم
  • فرنسا: 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