आईएमएस सेवा पात्रता

एंड्रॉइड 12 से, एंड्रॉइड में TS.43 सर्विस एंटाइटेलमेंट कॉन्फ़िगरेशन के लिए समर्थन शामिल है, एक GSMA विनिर्देश जो वॉयस-ओवर-वाई-फाई (VoWiFi), वॉयस-ओवर-एलटीई (VoLTE) सहित सेवाओं के सक्रियण के लिए पात्रता सत्यापन चरण को परिभाषित करता है। , एसएमएस पर आईपी (SMSoIP), eSIM सहयोगी उपकरणों के ऑन-डिवाइस सर्विस एक्टिवेशन (ODSA) (अनुरोध करने वाले डिवाइस से जुड़े) और डेटा प्लान की जानकारी।

इस विनिर्देश का समर्थन करने के लिए, एंड्रॉइड एक आईएमएस सेवा पात्रता सुविधा प्रदान करता है जो एक सेवा प्रदाता को आईपी मल्टीमीडिया सबसिस्टम (आईएमएस) नेटवर्क सेवाओं की स्थिति के बारे में मोबाइल उपकरणों को सूचित करने की अनुमति देता है। यह एंटाइटेलमेंट फीचर डिवाइस को कैरियर एंटाइटेलमेंट सर्वर को क्वेरी करने की अनुमति देता है जैसा कि GSMA TS.43 विनिर्देश द्वारा IMS एंटाइटेलमेंट स्थिति के लिए EAP-AKA प्रमाणीकरण का उपयोग करके उपयोगकर्ताओं को किसी भी क्रेडेंशियल को मैन्युअल रूप से इनपुट करने की आवश्यकता के बिना परिभाषित किया गया है।

IMS एंटाइटेलमेंट सर्वर वाले वाहक सेवा प्रावधान के लिए IMS सेवा पात्रता सुविधा का उपयोग कर सकते हैं। सुविधा को अपनाने से निम्नलिखित लाभ मिलते हैं:

  • वाहकों के लिए परीक्षण और प्रमाणन लागत को कम करता है क्योंकि इस पात्रता सुविधा का उपयोग कई उत्पादों और ओईएम में किया जा सकता है।
  • एक मानक एंड्रॉइड ऐप के माध्यम से डिवाइस निर्माताओं के लिए विकास ओवरहेड को कम करता है।
  • डिवाइस निर्माताओं और वाहकों को सुविधा के लिए कोड योगदान करने की अनुमति देता है क्योंकि यह सुविधा खुला स्रोत है।
  • उत्तर अमेरिकी वाहकों के लिए आपातकालीन पता प्रबंधन प्रदान करता है।

आर्किटेक्चर

निम्नलिखित आंकड़ा आईएमएस सेवा एंटाइटेलमेंट सुविधा के आर्किटेक्चर और व्यवहार का वर्णन करता है।

TS.43 पात्रता सुविधा

चित्र 1. TS.43 एंटाइटेलमेंट फीचर आर्किटेक्चर

जैसा कि चित्र 1 में दिखाया गया है, IMS सेवा पात्रता सुविधा की संरचना में निम्नलिखित घटक शामिल हैं:

  • service_entitlement TS.43 सर्विस एपीआई स्टैटिक लाइब्रेरी : यह लाइब्रेरी TS.43 विनिर्देश को लागू करती है, कैरियर के एंटाइटेलमेंट सर्वर के साथ इंटरैक्ट करती है, और प्रत्येक TS.43 उपयोग के मामले के लिए ऐप-फेसिंग एपीआई को उजागर करती है।
  • ImsServiceEntitlement क्लाइंट ऐप: यह ऐप TS.43 सर्विस API का उपयोग करता है। ऐप उपयोगकर्ताओं के लिए सेवाओं को सक्रिय करने के लिए वाहक के सेवा पोर्टल को प्रस्तुत करने के लिए वेबव्यू सहित यूआई तत्वों को लागू करता है और उपयोगकर्ता अनुभव को अंत तक प्रबंधित करने के लिए अन्य एंड्रॉइड घटकों के साथ इंटरैक्ट करता है।

    वाहक के TS.43-आधारित एंटाइटेलमेंट सर्वर के साथ काम करने के लिए Android को कॉन्फ़िगर करने के तरीके के बारे में अधिक जानकारी के लिए, ImsServiceEntitlement ऐप देखें।

चित्र 1 में क्रमांकित रेखाएं दिखाती हैं कि IMS सेवा पात्रता सुविधा के घटक एक दूसरे के साथ कैसे संचार करते हैं। निम्नलिखित प्रत्येक चरण को लेबल के रूप में वर्णित करता है:

(1) क्लाइंट ऐप सेवा पात्रता अनुरोध शुरू करने के लिए TS.43 सेवा API को आमंत्रित करता है।

(2) TS.43 सेवा API एक EAP-AKA चुनौती आरंभ करने के लिए वाहक के एंटाइटेलमेंट सर्वर को एक HTTP अनुरोध भेजता है।

(3) TS.43 सेवा API, EAP-AKA चुनौती-प्रतिक्रिया को पूरा करने के लिए टेलीफ़ोनी API (उदाहरण के लिए, getIccAuthentication ) को आमंत्रित करता है।

(4) TS.43 सेवा EAP-AKA प्रतिक्रिया सत्यापित होने के बाद वाहक के एंटाइटेलमेंट सर्वर से सेवा पात्रता या कॉन्फ़िगरेशन डेटा प्राप्त करती है।

(5) TS.43 सेवा क्लाइंट ऐप को सेवा पात्रता या कॉन्फ़िगरेशन डेटा लौटाती है।

(6) क्लाइंट ऐप डेटा को संभालता है और वैकल्पिक रूप से उपयोगकर्ता के लिए सेवा सक्रियण समाप्त करने के लिए वाहक के सेवा पोर्टल को प्रस्तुत करता है।

एकीकरण

यह खंड service_entitlement लाइब्रेरी और ImsServiceEntitlement ऐप को एकीकृत करने की प्रक्रिया का वर्णन करता है।

चूंकि कोई Android 12 API निर्भरता नहीं है, service_entitlement लाइब्रेरी और ImsServiceEntitlement ऐप को पुराने Android प्लेटफ़ॉर्म पर बैकपोर्ट किया जा सकता है।

service_entitlement लाइब्रेरी

चूँकि service_entitlement लाइब्रेरी स्थिर रूप से ImsServiceEntitlement app से जुड़ी हुई है, इसलिए लाइब्रेरी को ImsServiceEntitlement ऐप में एकीकृत करने के लिए किसी अतिरिक्त कदम की आवश्यकता नहीं है।

service_entitlement लाइब्रेरी को TS.43 उपयोग के मामलों जैसे डेटा प्लान और ODSA के लिए आपके अपने ऐप्स के साथ एकीकृत किया जा सकता है। पुस्तकालय को ईएपी-एकेए प्रोटोकॉल के आधार पर गैर-टीएस.43 पात्रता उपयोग मामलों के लिए एक ऐप में भी एकीकृत किया जा सकता है।

निम्नलिखित ऐसे उपयोग मामलों के लिए उपयोग किए जाने वाले एपीआई का वर्णन करता है:

  • TS.43 ऐप लाइब्रेरी में लागू TS.43 HTTP प्रोटोकॉल का उपयोग कर रहा है: ServiceEntitlement वर्ग में API का उपयोग करें
  • लाइब्रेरी में लागू किए गए EAP-AKA प्रोटोकॉल का उपयोग कर गैर-TS.43 ऐप: EapAkaHelper वर्ग में प्रदर्शित API का उपयोग करें

आईएमएस सर्विस एंटाइटेलमेंट ऐप

डिफ़ॉल्ट रूप से, Android में एक विशेषाधिकार प्राप्त ऐप के रूप में उत्पाद विभाजन में स्थापित ImsServiceEntitlement ऐप शामिल होता है। ऐप को कॉन्फ़िगर करने के लिए, निम्न कैरियर कॉन्फिग कुंजियों का उपयोग करें:

चाभी मूल्य
KEY_ENTITLEMENT_SERVER_URL_STRING कैरियर का एंटाइटेलमेंट सर्वर URL. https:// उपसर्ग शामिल होना चाहिए।
KEY_FCM_SENDER_ID_STRING वाहक का FCM प्रेषक आईडी.

यदि वाहक द्वारा FCM की आवश्यकता नहीं है, तो यह मान सेट न करें।
KEY_SHOW_VOWIFI_WEBVIEW_BOOL यदि वाहक को उपयोगकर्ताओं के लिए VoWiFi सेवा के लिए साइन अप करने के लिए वेब पोर्टल UI की आवश्यकता है, तो true पर सेट करें। उदाहरण के लिए, नियमों और शर्तों के लिए सहमति देना या आपातकालीन पता दर्ज करना।

यह आमतौर पर उत्तरी अमेरिका में वाहकों द्वारा आवश्यक है।
KEY_WFC_EMERGENCY_ADDRESS_CARRIER_APP_STRING
यदि KEY_SHOW_VOWIFI_WEBVIEW_BOOL true है, तो com.android.imsserviceentitlement/.WfcActivationActivity पर सेट करें।
KEY_IMS_PROVISIONING_BOOL यदि वाहक को पृष्ठभूमि में IMS (VoLTE/VoWiFi/SMSoIP) सेवाओं के नेटवर्क प्रावधान की आवश्यकता है, तो true पर सेट करें।

यह कुछ यूरोपीय वाहकों द्वारा आवश्यक है।
KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL यदि KEY_IMS_PROVISIONING_BOOL true , तो true पर सेट करें।

किसी वाहक के एंटाइटेलमेंट सर्वर और वेब पोर्टल पर HTTP ट्रैफ़िक डिफ़ॉल्ट नेटवर्क पर जाता है, उदाहरण के लिए, डिफ़ॉल्ट मोबाइल डेटा या वाई-फ़ाई।

GMS पार्टनर: निम्नलिखित वाहक TS.43 v5.0 विनिर्देशन का पालन करते हुए Android 12 में TS.43 एंटाइटेलमेंट ऐप द्वारा समर्थित हैं:

  • यूएस: सीएसपीयर, यूएस सेल्युलर, सेलकॉम
  • फ्रांस: ऑरेंज

IMS प्रावधान के लिए अतिरिक्त सिस्टम UI

यह खंड बताता है कि कैसे OEM IMS सेवा प्रावधान से संबंधित अतिरिक्त सिस्टम UI तत्वों का समर्थन कर सकते हैं (उदाहरण के लिए, जब VoWiFi का प्रावधान होने पर कोई सूचना दिखा रहा हो)।

ImsServiceEntitlement ऐप ProvisioningManager.setProvisioningIntValue(KEY_VOICE_OVER_WIFI_ENABLED_OVERRIDE, value) सिस्टम API का उपयोग करके VoWiFi प्रोविज़निंग स्थिति को प्लेटफ़ॉर्म में सेट करता है। इस API का उपयोग VoLTE ( KEY_VOLTE_PROVISIONING_STATUS के साथ) और SMSoIP ( KEY_SMS_OVER_IP_ENABLED के साथ) के लिए भी किया जाता है।

सिस्टम UI तब getProvisioningIntValue का उपयोग करके या registerProvisioningChangedCallback के माध्यम से प्रावधान स्थिति परिवर्तन की निगरानी के लिए कॉलबैक पंजीकृत करके प्रावधान स्थिति को पढ़ सकता है।

परीक्षण के लिए ओवरराइडिंग कॉन्फ़िगरेशन

परीक्षण उद्देश्यों के लिए ImsServiceEntitlement ऐप व्यवहार को अस्थायी रूप से बदलने के लिए निम्नलिखित प्रक्रियाओं का उपयोग करें। कैरियर कॉन्फ़िगरेशन को ओवरराइड करने के तरीके के विवरण के लिए, कैरियर कॉन्फ़िगरेशन ओवरराइड करना देखें.

VoWiFi साइन-अप प्रक्रिया को छोड़ना

VoWiFi साइन-अप प्रक्रिया को छोड़ने के लिए, VoWiFi को सीधे चालू करने की अनुमति देने के लिए, वाहक कॉन्फ़िगरेशन KEY_WFC_EMERGENCY_ADDRESS_CARRIER_APP_STRING को ओवरराइड करें और इसके मान को एक खाली स्ट्रिंग पर सेट करें।

आईएमएस प्रावधान छोड़ना

IMS प्रावधान को छोड़ने के लिए, IMS सेवाओं को उपलब्ध कराने और उपयोगकर्ताओं को नेटवर्क प्रावधान के बिना ऐसी सेवाओं को चालू करने की अनुमति देने के लिए, वाहक कॉन्फ़िगरेशन KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL को ओवरराइड करें और इसके मान को false पर सेट करें।

एंटाइटेलमेंट सर्वर यूआरएल बदलना

एंटाइटेलमेंट सर्वर URL बदलने के लिए, कैरियर KEY_ENTITLEMENT_SERVER_URL_STRING को ओवरराइड करें और इसके मान को अपेक्षित URL स्ट्रिंग पर सेट करें। आपको https:// उपसर्ग शामिल करना होगा।

वाहक कॉन्फ़िगरेशन को ओवरराइड करना

एंड्रॉइड 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