اعتبارًا من 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.
الشكل 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 rootadb 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