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

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

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

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

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

वास्तुकला

निम्नलिखित चित्र आईएमएस सेवा पात्रता सुविधा की वास्तुकला और व्यवहार का वर्णन करता है।

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

चित्र 1. TS.43 पात्रता सुविधा वास्तुकला

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

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

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

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

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

(2) टीएस.43 सेवा एपीआई ईएपी-एकेए चुनौती शुरू करने के लिए वाहक के पात्रता सर्वर को एक HTTP अनुरोध भेजता है।

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

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

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

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

एकीकरण

यह अनुभाग service_entitlement लाइब्रेरी और ImsServiceEntitlement ऐप को एकीकृत करने की प्रक्रिया का वर्णन करता है।

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

सेवा_पात्रता पुस्तकालय

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

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

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

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

ImsServiceEntitlement ऐप

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

चाबी कीमत
KEY_ENTITLEMENT_SERVER_URL_STRING वाहक का पात्रता सर्वर URL. https:// उपसर्ग शामिल होना चाहिए.
KEY_FCM_SENDER_ID_STRING वाहक की एफसीएम प्रेषक आईडी।

यदि वाहक द्वारा FCM की आवश्यकता नहीं है तो यह मान सेट न करें।
KEY_SHOW_VOWIFI_WEBVIEW_BOOL यदि वाहक को उपयोगकर्ताओं को VoWiFi सेवा के लिए साइन अप करने के लिए एक वेब पोर्टल यूआई की आवश्यकता होती है, तो इसे 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 पात्रता ऐप द्वारा समर्थित हैं:

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

आईएमएस प्रावधान के लिए अतिरिक्त सिस्टम यूआई

यह अनुभाग वर्णन करता है कि कैसे ओईएम आईएमएस सेवा प्रावधान से संबंधित अतिरिक्त सिस्टम यूआई तत्वों का समर्थन कर सकते हैं (उदाहरण के लिए, जब 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 के साथ) के लिए भी किया जाता है।

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

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

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

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

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

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

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

पात्रता सर्वर यूआरएल बदल रहा है

एंटाइटेलमेंट सर्वर यूआरएल बदलने के लिए, कैरियर कॉन्फिगरेशन KEY_ENTITLEMENT_SERVER_URL_STRING को ओवरराइड करें और उसका मान अपेक्षित यूआरएल स्ट्रिंग पर सेट करें। आपको 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