Android 6.0 (Marshmallow) में, डायलर में विज़ुअल वॉइसमेल (वीवीएम) की सुविधा को शामिल किया गया था. इससे, काम करने वाली कैरियर की वीवीएम सेवाओं को कम से कम कॉन्फ़िगरेशन के साथ डायलर में जोड़ा जा सकता है. विज़ुअल वॉइसमेल की मदद से, उपयोगकर्ता किसी भी फ़ोन कॉल के बिना, आसानी से वॉइसमेल सुन सकते हैं. उपयोगकर्ता, इनबॉक्स जैसे इंटरफ़ेस में मैसेज की सूची देख सकते हैं. साथ ही, उन्हें किसी भी क्रम में सुन सकते हैं और अपनी पसंद के मुताबिक मिटा सकते हैं.
Android 7.0 में, विज़ुअल वॉइसमेल में ये कॉन्फ़िगरेशन पैरामीटर जोड़े गए हैं:
KEY_VVM_PREFETCH_BOOLEAN
से कंट्रोल किए जाने वाले वॉइसमेल को पहले से फ़ेच करना- यह कंट्रोल करने की सुविधा कि
KEY_VVM_CELLULAR_DATA_REQUIRED_BOOLEAN
के लिए मोबाइल डेटा कनेक्शन ज़रूरी है या नहीं - वॉइसमेल के ट्रांसक्रिप्शन फ़ेच करना
- वॉइसमेल कोटा फ़ेच करना
इस पेज पर, इस सुविधा के बारे में खास जानकारी दी गई है. साथ ही, यह भी बताया गया है कि कैरियर इसे कैसे इंटिग्रेट कर सकते हैं और इसे लागू करने के बारे में कुछ जानकारी दी गई है.
विज़ुअल वॉइसमेल (वीवीएम) क्लाइंट
Android 6.0 और उसके बाद के वर्शन में OMTP VVM क्लाइंट शामिल होता है. सही कॉन्फ़िगरेशन मिलने पर, यह क्लाइंट कैरियर के VVM सर्वर से कनेक्ट होता है और Android Open Source Project (AOSP) डायलर में VVM मैसेज दिखाता है. VVM क्लाइंट:
- इस टास्क का इस्तेमाल, सेवा को चालू/बंद करने/उसकी स्थिति के बारे में क्वेरी करने के लिए किए गए एसएमएस मैसेज और सदस्य के मेलबॉक्स में मौजूद इवेंट की सूचना देने के लिए किए गए एसएमएस मैसेज को मैनेज करने के लिए किया जाता है
- मेलबॉक्स को आईएमएपी सर्वर के साथ सिंक करता है
- जब उपयोगकर्ता वॉइसमेल सुनने का विकल्प चुनता है, तब उन्हें डाउनलोड करता है
- वॉइसमेल के ट्रांसक्रिप्ट फ़ेच करता है
- वॉइसमेल कोटा (मेलबॉक्स का कुल साइज़ और इस्तेमाल किया जा रहा साइज़) की जानकारी फ़ेच करता है
- उपयोगकर्ता के लिए, डायलर में इंटिग्रेट किया जाता है. जैसे, कॉल वापस करना, बिना पढ़े मैसेज देखना, मैसेज मिटाना वगैरह.
VVM क्लाइंट के साथ इंटिग्रेट करना
लागू करना
मोबाइल और इंटरनेट सेवा देने वाली कंपनी को विज़ुअल वॉइसमेल सर्वर उपलब्ध कराना होगा. यह सर्वर, OMTP के विज़ुअल वॉइसमेल की स्पेसिफ़िकेशन के मुताबिक होना चाहिए. फ़िलहाल, AOSP VVM क्लाइंट की मुख्य सुविधाएं (वॉइसमेल पढ़ना/मिटाएं, डाउनलोड करना/सिंक करना/सुनना) काम करती हैं. हालांकि, टीयूआई की अन्य सुविधाएं (पासवर्ड बदलना, वॉइसमेल का स्वागत शुल्क, भाषाएं) काम नहीं करती हैं. फ़िलहाल, हम सिर्फ़ OMTP के वर्शन 1.1 के साथ काम करते हैं. साथ ही, IMAP की पुष्टि करने के लिए एन्क्रिप्शन का इस्तेमाल नहीं करते.
ट्रांसक्रिप्ट की सुविधा देने के लिए, कैरियर के पास ट्रांसक्रिप्ट के अटैचमेंट के फ़ॉर्मैट (एमआईएमई टाइप प्लेन/टेक्स्ट) का होना ज़रूरी है. यह फ़ॉर्मैट, OMTP 1.3 स्पेसिफ़िकेशन के आइटम 2.1.3 में बताया गया है.
ध्यान दें: डिवाइस पर सर्वर से भेजे गए एसएमएस मैसेज (जैसे, STATUS या SYNC), डेटा एसएमएस मैसेज होने चाहिए.
कॉन्फ़िगरेशन
किसी कैरियर को VVM सेवा के साथ इंटिग्रेट करने के लिए, उसे प्लैटफ़ॉर्म को कॉन्फ़िगरेशन की जानकारी देनी होगी. इस जानकारी का इस्तेमाल OMTP क्लाइंट कर सकता है. ये पैरामीटर हैं:
- एसएमएस के लिए डेस्टिनेशन नंबर और पोर्ट नंबर
- कैरियर के दिए गए विज़ुअल वॉइसमेल ऐप्लिकेशन का पैकेज नाम (अगर कोई दिया गया है), ताकि उस पैकेज के इंस्टॉल होने पर, प्लैटफ़ॉर्म को लागू करने की सुविधा बंद की जा सके
ये वैल्यू, कैरियर कॉन्फ़िगरेशन एपीआई के ज़रिए दी जाती हैं. यह सुविधा Android 6.0 में लॉन्च की गई थी. इससे ऐप्लिकेशन, प्लैटफ़ॉर्म के उन कॉम्पोनेंट के लिए टेलीफ़ोन से जुड़ा कॉन्फ़िगरेशन डाइनैमिक तौर पर उपलब्ध करा सकता है जिनके लिए इसकी ज़रूरत होती है. खास तौर पर, इन कुंजियों की वैल्यू तय होनी चाहिए:
KEY_VVM_DESTINATION_NUMBER_STRING
KEY_VVM_PORT_NUMBER_INT
KEY_VVM_TYPE_STRING
KEY_CARRIER_VVM_PACKAGE_NAME_STRING
KEY_VVM_PREFETCH_BOOLEAN
KEY_VVM_CELLULAR_DATA_REQUIRED_BOOLEAN
ज़्यादा जानकारी के लिए, कैरियर कॉन्फ़िगरेशन देखें.
लागू करना
OMTP VVM क्लाइंट को packages/services/Telephony
में लागू किया गया है. खास तौर पर, src/com/android/phone/vvm/
में
सेटअप
- VVM क्लाइंट,
TelephonyIntents#ACTION_SIM_STATE_CHANGED
याCarrierConfigManager#ACTION_CARRIER_CONFIG_CHANGED
को सुनता है. - जब कोई ऐसा सिम जोड़ा जाता है जिसमें कैरियर कॉन्फ़िगरेशन की सही वैल्यू (
KEY_VVM_TYPE_STRING
कोTelephonyManager.VVM_TYPE_OMTP
याTelephonyManager.VVM_TYPE_CVVM
पर सेट किया गया हो) होती है, तो VVM क्लाइंटKEY_VVM_DESTINATION_NUMBER_STRING
में बताई गई वैल्यू पर ACTIVATE मैसेज भेजता है. - सर्वर, विज़ुअल वॉइसमेल सेवा को चालू करता है और STATUS SMA के ज़रिए OMTP क्रेडेंशियल भेजता है. जब VVM क्लाइंट को स्टेटस एसएमएस मिलता है, तो वह वॉइसमेल सोर्स को रजिस्टर करता है और डिवाइस पर वॉइसमेल टैब दिखाता है.
- OMTP क्रेडेंशियल को डिवाइस पर सेव किया जाता है. इसके बाद, डिवाइस पूरा सिंक करना शुरू कर देता है. इसके बारे में यहां बताया गया है.
सिंक करना
VVM क्लाइंट, कैरियर के सर्वर के साथ कई तरीकों से सिंक हो सकता है. इसके अलावा, कैरियर के सर्वर से भी VVM क्लाइंट सिंक हो सकता है.
- पहली बार डाउनलोड करने पर, पूरी तरह से सिंक होता है. VVM क्लाइंट, वॉइसमेल का मेटाडेटा फ़ेच करता है. जैसे, तारीख और समय; ऑरिजिन नंबर; अवधि; वॉइसमेल का ट्रांसक्रिप्ट, अगर उपलब्ध हो; और ऑडियो डेटा, अगर
KEY_VVM_PREFETCH_BOOLEAN
सही हो. पूरी तरह से सिंक करने की प्रोसेस को इन वजहों से ट्रिगर किया जा सकता है:- नया सिम डालना
- डिवाइस को रीबूट करना
- सेवाएं फिर से शुरू होने वाली हैं
VoicemailContract.ACTION_SYNC_VOICEMAIL
ब्रॉडकास्ट मिल रहा है
- अपलोड सिंक तब होता है, जब कोई उपयोगकर्ता किसी वॉइसमेल को पढ़ने या मिटाने के लिए उससे इंटरैक्ट करता है. अपलोड सिंक करने पर, सर्वर अपने डेटा में बदलाव करता है, ताकि वह डिवाइस पर मौजूद डेटा से मैच कर सके. उदाहरण के लिए, अगर कोई उपयोगकर्ता वॉइसमेल पढ़ता है, तो उसे सर्वर पर पढ़े गए के तौर पर मार्क कर दिया जाता है. अगर कोई उपयोगकर्ता वॉइसमेल मिटाता है, तो उसे सर्वर से मिटा दिया जाता है.
- डाउनलोड सिंक तब होता है, जब मोबाइल और इंटरनेट सेवा देने वाली कंपनी से, VVM क्लाइंट को "MBU" (मेलबॉक्स अपडेट) सिंक एसएमएस मिलता है. सिंक मैसेज में, नए मैसेज का मेटाडेटा होता है, ताकि उसे वॉइसमेल कॉन्टेंट की सेवा देने वाली कंपनी के पास सेव किया जा सके.
ध्यान दें: वॉइसमेल इनबॉक्स के कोटे की वैल्यू, हर सिंक के दौरान वापस लाई जाती हैं.
वॉइसमेल डाउनलोड करना
जब कोई उपयोगकर्ता वॉइसमेल सुनने के लिए 'चलाएं' बटन दबाता है, तो उससे जुड़ी ऑडियो फ़ाइल डाउनलोड हो जाती है. अगर उपयोगकर्ता वॉइसमेल सुनना चाहता है, तो डायलर VoicemailContract.ACTION_FETCH_VOICEMAIL
को ब्रॉडकास्ट कर सकता है. यह कोड, वॉइसमेल क्लाइंट को मिलता है. इसके बाद, कॉन्टेंट डाउनलोड होने की प्रोसेस शुरू होती है और प्लैटफ़ॉर्म पर वॉइसमेल कॉन्टेंट देने वाली कंपनी के रिकॉर्ड को अपडेट किया जाता है.
वीवीएम बंद करना
उपयोगकर्ता के इंटरैक्शन, मान्य सिम कार्ड को हटाने या मोबाइल और इंटरनेट सेवा देने वाली कंपनी के विज़ुअल वॉइसमेल ऐप्लिकेशन से बदलने पर, विज़ुअल वॉइसमेल की सेवा बंद या बंद की जा सकती है. बंद है का मतलब है कि स्थानीय डिवाइस पर अब विज़ुअल वॉइसमेल नहीं दिखेगा. बंद है का मतलब है कि सदस्य के लिए सेवा बंद है. उपयोगकर्ता के इंटरैक्शन से सेवा बंद हो सकती है. सिम हटाने पर, सेवा कुछ समय के लिए बंद हो जाती है, क्योंकि अब वह मौजूद नहीं है. साथ ही, कैरियर के वीवीएम को बदलने पर, AOSP वीवीएम क्लाइंट बंद हो जाता है.
उपयोगकर्ता इंटरैक्शन
उपयोगकर्ता, विज़ुअल वॉइसमेल की सुविधा को मैन्युअल तरीके से चालू या बंद कर सकता है. अगर कोई उपयोगकर्ता विज़ुअल वॉइसमेल की सुविधा बंद करता है, तो वह इस सेवा को भी बंद कर देता है. जब उपयोगकर्ता वॉइसमेल की सुविधा बंद करता है, तो उसे 'बंद करें' मैसेज भेजा जाता है. साथ ही, वॉइसमेल का सोर्स स्थानीय तौर पर अनरजिस्टर कर दिया जाता है और वॉइसमेल टैब हट जाता है. अगर वे विज़ुअल वॉइसमेल की सुविधा को फिर से चालू करते हैं, तो उनकी सेवा भी फिर से चालू हो जाती है.
सिम हटाना
अगर डिवाइस के सिम की स्थिति (ACTION_SIM_STATE_CHANGED
) या मोबाइल और इंटरनेट सेवा देने वाली कंपनी के कॉन्फ़िगरेशन की वैल्यू (ACTION_CARRIER_CONFIG_CHANGED
) में बदलाव होते हैं और दिए गए सिम के लिए मान्य कॉन्फ़िगरेशन मौजूद नहीं होता है, तो वॉइसमेल सोर्स को लोकल तौर पर अनरजिस्टर कर दिया जाता है और वॉइसमेल टैब हट जाता है. अगर सिम बदला जाता है, तो विज़ुअल वॉइसमेल की सुविधा फिर से चालू हो जाती है.
मोबाइल और इंटरनेट सेवा देने वाली कंपनी के वीवीएम से बदला गया
अगर डिवाइस पर मोबाइल और इंटरनेट सेवा देने वाली कंपनी का विज़ुअल वॉइसमेल ऐप्लिकेशन इंस्टॉल है, तो AOSP VVM क्लाइंट बंद हो सकता है. ऐसा करने के लिए, यह जांच की जाती है कि KEY_CARRIER_VVM_PACKAGE_NAME_STRING
पैरामीटर से मैच करने वाला कोई पैकेज इंस्टॉल है या नहीं.
उपयोगकर्ता के इंटरैक्शन से, अब भी वीवीएम क्लाइंट को चालू किया जा सकता है.
टेस्ट करना
VoicemailProvider API के लिए, Android 4.0 से CTS टेस्ट का एक मौजूदा सेट है. इससे ऐप्लिकेशन को प्लैटफ़ॉर्म में वॉइसमेल डालने/उनके बारे में क्वेरी करने/उन्हें मिटाने की अनुमति मिलती है. ये वही एपीआई हैं जिनका इस्तेमाल, वीवीएम में वॉइसमेल जोड़ने/मिटाने के लिए किया जाता है, ताकि कोई भी डायलर ऐप्लिकेशन उन्हें यूज़र इंटरफ़ेस में दिखा सके.
यह जांचने के लिए कि आपका कॉन्फ़िगरेशन ऐप्लिकेशन, OMTP कॉन्फ़िगरेशन को सही तरीके से पास कर रहा है या नहीं, अपने कोड की जांच इनके साथ की जा सकती है:
- ऐसा सिम जिसमें सर्टिफ़िकेट का मान्य हस्ताक्षर हो
- Android 6.0 पर चलने वाला ऐसा डिवाइस जिसमें AOSP फ़ोन फ़्रेमवर्क का बिना बदलाव वाला वर्शन हो