إذن الوصول إلى خدمة الرسائل الفورية

بدءًا من الإصدار 12 من Android، يتيح هذا الإصدار استخدام TS.43 Service Entitlement Configuration، وهو مواصفة GSMA تحدّد خطوة التحقّق من الأهلية ل activation of services، بما في ذلك Voice-over-Wi-Fi (VoWiFi) وVoice-over-LTE (VoLTE) وSMS over IP (SMSoIP) وOn-Device Service Activation (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 لبدء طلب ترخيص استخدام الخدمة.

(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 في تطبيق ImsServiceEntitlement.

يمكن دمج مكتبة service_entitlement مع تطبيقاتك لحالات استخدام TS.43 ، مثل خطة البيانات وإدارة الخدمات الرقمية للمؤسسات (ODSA). يمكن أيضًا دمج المكتبة في تطبيق لحالات استخدام الاستحقاق غير التابعة لـ TS.43 استنادًا إلى بروتوكول EAP-AKA.

في ما يلي وصف واجهات برمجة التطبيقات التي يجب استخدامها في حالات الاستخدام هذه:

  • تطبيق TS.43 يستخدم بروتوكول HTTP في TS.43 الذي تم تنفيذه في المكتبة: استخدام واجهات برمجة التطبيقات في فئة ServiceEntitlement
  • تطبيقات ليست TS.43 وتستخدم بروتوكول EAP-AKA المنفَّذ في المكتبة: استخدِم واجهات برمجة التطبيقات المعروضة في الفئة EapAkaHelper

تطبيق ImsServiceEntitlement

يتضمّن Android تلقائيًا تطبيق ImsServiceEntitlement المثبَّت في ملف ‎ product partition كتطبيق مفوَّض. لضبط إعدادات التطبيق، استخدِم مفاتيح ‎ 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.

شركاء خدمات Google للأجهزة الجوّالة: تتيح ميزة منح الأذونات في تطبيق TS.43 في Android 12 استخدام خدمات مشغّلي شبكات الجوّال التالية، وذلك وفقًا لمواصفات الإصدار 5.0 من TS.43:

  • الولايات المتحدة: 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