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

بدءًا من Android 12، يتيح نظام التشغيل Android استخدام مواصفات 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 الثابتة لواجهة برمجة التطبيقات الخاصة بالخدمة: تنفّذ هذه المكتبة مواصفات TS.43، وتتفاعل مع خادم التحقّق من الأهلية التابع لمشغّل شبكة الجوّال، وتتيح واجهات برمجة تطبيقات تواجه التطبيقات لكل حالة استخدام TS.43.
  • تطبيق العميل ImsServiceEntitlement: يستخدم هذا التطبيق واجهة برمجة التطبيقات الخاصة بالخدمة TS.43. ينفّذ التطبيق عناصر واجهة المستخدم، بما في ذلك عروض الويب لعرض بوابة خدمة مشغّل شبكة الجوّال للمستخدمين لتفعيل الخدمات، ويتفاعل مع مكوّنات 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 library

بما أنّ مكتبة 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.
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 و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 والسماح بتفعيلها مباشرةً، عليك إلغاء إعدادات شركة الاتصالات 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