Android 6.0 (Marshmallow) ভার্সনে ভিজ্যুয়াল ভয়েসমেল (VVM) সাপোর্ট ইন্টিগ্রেট করা হয়েছে যা ডায়ালারের সাথে কাজ করে। এর ফলে, মানানসই ক্যারিয়ার VVM পরিষেবা ন্যূনতম কনফিগারেশনের মাধ্যমে ডায়ালারের সাথে কানেক্ট করতে পারে। ভিজ্যুয়াল ভয়েসমেলের সাহায্যে ব্যবহারকারী কোনও ফোন কল না করেই সহজে ভয়েসমেল চেক করতে পারেন। ব্যবহারকারীরা ইনবক্সের মতো ইন্টারফেসে মেসেজের তালিকা দেখতে, যেকোনও ক্রমে সেগুলি শুনতে এবং ইচ্ছামতো মুছে ফেলতে পারবেন।
Android 7.0-এ ভিজ্যুয়াল ভয়েসমেলে নিম্নলিখিত কনফিগারেশন প্যারামিটার যোগ করা হয়েছে:
- ভয়েসমেল প্রিফেচ করার সুবিধা
KEY_VVM_PREFETCH_BOOLEANনিয়ন্ত্রণ করে KEY_VVM_CELLULAR_DATA_REQUIRED_BOOLEAN-এর মোবাইল ডেটা কানেকশন প্রয়োজন কিনা তা নিয়ন্ত্রণ করা- ভয়েসমেল ট্রান্সক্রিপশন ফেচ করা
- ভয়েসমেল কোটা ফেচ করা
এই পৃষ্ঠায় কী কী প্রদান করা হয়, কীভাবে পরিষেবা প্রদানকারী সংস্থাগুলি এর সাথে ইন্টিগ্রেট করতে পারে এবং প্রয়োগ সংক্রান্ত কিছু বিবরণ দেওয়া আছে।
ভিজ্যুয়াল ভয়েসমেল (VVM) ক্লায়েন্ট
Android 6.0 ও এর পরের যেকোনও ভার্সনে OMTP VVM ক্লায়েন্ট থাকে, যা (সঠিক কনফিগারেশন প্রদান করা হলে) ক্যারিয়ার VVM সার্ভারের সাথে কানেক্ট করে এবং Android Open Source Project (AOSP) Dialer-এর মধ্যে VVM মেসেজ পপুলেট করে। VVM ক্লায়েন্ট:
- পরিষেবা চালু/বন্ধ/স্ট্যাটাস কোয়েরি করার জন্য ব্যবহৃত এসএমএস মেসেজ এবং গ্রাহকের মেলবক্সে ইভেন্ট সম্পর্কে ডিভাইসকে জানানোর জন্য ব্যবহৃত এসএমএস মেসেজ ম্যানেজ করে
- IMAP সার্ভারের সাথে মেলবক্স সিঙ্ক করে
- ব্যবহারকারী ভয়েসমেল শোনার বিকল্প বেছে নিলে, সেগুলি ডাউনলোড করে
- ভয়েসমেল ট্রান্সক্রিপশন ফেচ করে
- ভয়েসমেল কোটার বিবরণ (মেলবক্সের মোট সাইজ ও ব্যবহৃত সাইজ) নিয়ে আসে
- কল ব্যাক করা, না পড়া মেসেজ দেখা, মেসেজ মুছে দেওয়া ইত্যাদির মতো ব্যবহারকারীর কার্যকারিতার জন্য Dialer-এর সাথে ইন্টিগ্রেট করা হয়।
VVM ক্লায়েন্টের সাথে ইন্টিগ্রেট করা
প্রয়োগ
পরিষেবা প্রদানকারীকে অবশ্যই এমন ভিজ্যুয়াল ভয়েসমেল সার্ভার প্রদান করতে হবে যা OMTP VVM স্পেসিফিকেশন প্রয়োগ করে। AOSP VVM ক্লায়েন্টের বর্তমান ইমপ্লিমেন্টেশন মূল ফিচারগুলি (ভয়েসমেল পড়া/মুছে দেওয়া, ডাউনলোড/সিঙ্ক/শোনা) সাপোর্ট করে, তবে অতিরিক্ত TUI ফিচার (পাসওয়ার্ড পরিবর্তন, ভয়েসমেলের সম্ভাষণ, ভাষা) ইমপ্লিমেন্ট করা হয়নি। এই মুহূর্তে, আমরা শুধুমাত্র OMTP ভার্সন ১.১-এর জন্য সহায়তা প্রদান করি এবং IMAP যাচাইকরণের জন্য এনক্রিপশন ব্যবহার করি না।
ট্রান্সক্রিপশন কাজ করার জন্য, পরিষেবা প্রদানকারীকে অবশ্যই OMTP 1.3 স্পেক, আইটেম 2.1.3-এ উল্লেখ করা ট্রান্সক্রিপশন অ্যাটাচমেন্ট ফর্ম্যাট (MIME টাইপ প্লেন/টেক্সট) সাপোর্ট করতে হবে।
মনে রাখবেন: ডিভাইসে সার্ভার-উৎপন্ন এসএমএস মেসেজ (যেমন, STATUS বা SYNC) অবশ্যই ডেটা এসএমএস মেসেজ হতে হবে।
কনফিগারেশন
কোনও পরিষেবা প্রদানকারীকে VVM পরিষেবার সাথে ইন্টিগ্রেট করতে হলে, পরিষেবা প্রদানকারীকে অবশ্যই প্ল্যাটফর্মের জন্য কনফিগারেশন সংক্রান্ত বিবরণ দিতে হবে যা OMTP ক্লায়েন্ট ব্যবহার করতে পারে। এইসব প্যারামিটার হল:
- এসএমএসের জন্য গন্তব্য নম্বর ও পোর্ট নম্বর
- পরিষেবা প্রদানকারীর দেওয়া ভিজ্যুয়াল ভয়েসমেল অ্যাপের প্যাকেজের নাম (যদি কোনওটি দেওয়া হয়), যাতে সেই প্যাকেজ ইনস্টল করা থাকলে প্ল্যাটফর্ম ইমপ্লিমেন্টেশন বন্ধ করা যেতে পারে
এইসব ভ্যালু ক্যারিয়ার কনফিগারেশন API-এর মাধ্যমে প্রদান করা হয়। Android 6.0-এ লঞ্চ করা এই ফাংশনালিটি, বিভিন্ন প্ল্যাটফর্মের সেইসব কম্পোনেন্টকে ডায়নামিক পদ্ধতিতে টেলিফোনি-সম্পর্কিত কনফিগারেশন প্রদান করে যেগুলির এটি প্রয়োজন। বিশেষ করে, নিম্নলিখিত কীগুলির জন্য মান অবশ্যই সংজ্ঞায়িত করা থাকতে হবে
KEY_VVM_DESTINATION_NUMBER_STRINGKEY_VVM_PORT_NUMBER_INTKEY_VVM_TYPE_STRINGKEY_CARRIER_VVM_PACKAGE_NAME_STRINGKEY_VVM_PREFETCH_BOOLEANKEY_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_STRINGTelephonyManager.VVM_TYPE_OMTPবাTelephonyManager.VVM_TYPE_CVVMহিসেবে সেট করা থাকলে), VVM ক্লায়েন্টKEY_VVM_DESTINATION_NUMBER_STRING-এ উল্লেখ করা ভ্যালুতে একটি অ্যাক্টিভেট এসএমএস পাঠায়। - সার্ভার ভিজ্যুয়াল ভয়েসমেল পরিষেবা অ্যাক্টিভেট করে এবং STATUS SMA-এর মাধ্যমে OMTP ক্রেডেনশিয়াল পাঠায়। VVM ক্লায়েন্ট স্ট্যাটাস এসএমএস পেলে, এটি ভয়েসমেল সোর্স রেজিস্টার করে এবং ডিভাইসে ভয়েসমেল ট্যাব দেখায়।
- OMTP ক্রেডেনশিয়াল লোকালি সেভ করা হয় এবং ডিভাইসটি সম্পূর্ণ সিঙ্ক করা শুরু করে, যেমন নিচে বর্ণনা করা হয়েছে।
সিঙ্ক করা হচ্ছে
VVM ক্লায়েন্ট বিভিন্ন উপায়ে ক্যারিয়ার সার্ভারের সাথে সিঙ্ক করতে পারে এবং এর উল্টোটাও হতে পারে।
- প্রাথমিক ডাউনলোড সম্পূর্ণ হলে সম্পূর্ণ সিঙ্ক হয়। VVM ক্লায়েন্ট
তারিখ ও সময়ের মতো ভয়েসমেলে থাকা মেটাডেটা; সোর্স নম্বর; সময়সীমা;
ভয়েসমেলে থাকা ট্রান্সক্রিপশন, উপলভ্য থাকলে; এবং অডিও ডেটা, যদি
KEY_VVM_PREFETCH_BOOLEANTrue হয়, তাহলে ফেচ করে। সম্পূর্ণ সিঙ্ক এগুলির মাধ্যমে ট্রিগার করা যেতে পারে:- নতুন সিম কার্ড ঢোকানো
- ডিভাইস রিবুট করা
- পরিষেবা আবার চালু হচ্ছে
VoicemailContract.ACTION_SYNC_VOICEMAILব্রডকাস্ট রিসিভ করা হচ্ছে
- আপলোড সিঙ্ক তখনই হয় যখন কোনও ব্যবহারকারী ভয়েসমেলের সাথে ইন্টার্যাক্ট করে সেটি পড়তে বা মুছে ফেলতে চান। আপলোড সিঙ্কের ফলে সার্ভার তার ডেটা পরিবর্তন করে ডিভাইসের ডেটার সাথে ম্যাচ করে। যেমন, ব্যবহারকারী কোনও ভয়েসমেল পড়লে, সার্ভারে সেটি'পড়া হয়েছে' হিসেবে চিহ্নিত করা হয়; ব্যবহারকারী কোনও ভয়েসমেল মুছে দিলে, সেটি সার্ভার থেকে মুছে দেওয়া হয়।
- VVM ক্লায়েন্ট পরিষেবা প্রদানকারীর থেকে "MBU" (মেলবক্স আপডেট) সিঙ্ক এসএমএস পেলে সিঙ্ক ডাউনলোড হয়। SYNC মেসেজে নতুন মেসেজের মেটাডেটা থাকে যাতে এটি ভয়েসমেলে কন্টেন্ট প্রদানকারীর কাছে সেভ করা যায়।
মনে রাখবেন: প্রতিটি সিঙ্কের সময় ভয়েসমেল ইনবক্স কোটার ভ্যালু রিট্রিভ করা হয়।
ভয়েসমেল ডাউনলোড করা
কোনও ব্যবহারকারী ভয়েসমেল শোনার জন্য 'চালান' বোতামে প্রেস করলে, সংশ্লিষ্ট অডিও ফাইল
ডাউনলোড হয়ে যায়। ব্যবহারকারী ভয়েসমেল শোনার বিকল্প বেছে নিলে, Dialer
ব্রডকাস্ট VoicemailContract.ACTION_FETCH_VOICEMAIL করতে পারে, যা
ভয়েসমেল ক্লায়েন্ট পায়, কন্টেন্ট
ডাউনলোড করা শুরু করে এবং প্ল্যাটফর্ম ভয়েসমেল কন্টেন্ট প্রদানকারীর রেকর্ডে আপডেট করে।
VVM বন্ধ করুন
ব্যবহারকারীর ইন্টার্যাকশন, বৈধ সিম কার্ড সরিয়ে দেওয়া অথবা ক্যারিয়ারের VVM অ্যাপের মাধ্যমে রিপ্লেস করার মাধ্যমে VVM পরিষেবা বন্ধ বা ডিঅ্যাক্টিভেট করা যেতে পারে। বন্ধ করা মানে হল যে স্থানীয় ডিভাইস আর ভিজ্যুয়াল ভয়েসমেল দেখায় না। বন্ধ করা হয়েছে মানে হল যে সাবস্ক্রাইবারের জন্য পরিষেবা বন্ধ করা হয়েছে। ব্যবহারকারীর ইন্টার্যাকশনের মাধ্যমে পরিষেবা বন্ধ করা যেতে পারে, সিম কার্ড সরিয়ে দিলে সাময়িকভাবে পরিষেবা বন্ধ হয়ে যায় কারণ সেটি আর থাকে না এবং পরিষেবা প্রদানকারীর VVM রিপ্লেসমেন্ট AOSP VVM ক্লায়েন্ট বন্ধ করে দেয়।
ব্যবহারকারীর ইন্টার্যাকশন
ব্যবহারকারী ম্যানুয়ালি ভিজ্যুয়াল ভয়েসমেল চালু বা বন্ধ করতে পারেন। কোনও ব্যবহারকারী ভিজ্যুয়াল ভয়েসমেল বন্ধ করলে, তিনি তার পরিষেবাও বন্ধ করে দিচ্ছেন। তারা ভিজ্যুয়াল ভয়েসমেল বন্ধ করে দিলে, বন্ধ করার এসএমএস পাঠানো হয়, ভয়েসমেলের সোর্স লোকালি আনরেজিস্টার করা হয় এবং ভয়েসমেল ট্যাব আর দেখা যায় না। তিনি ভিজ্যুয়াল ভয়েসমেল আবার চালু করলে, তার পরিষেবাও আবার অ্যাক্টিভেট হয়ে যাবে।
সিম কার্ড সরানো
ডিভাইসের সিম স্টেট (ACTION_SIM_STATE_CHANGED)
বা পরিষেবা প্রদানকারীর কনফিগারেশন ভ্যালুতে (ACTION_CARRIER_CONFIG_CHANGED) পরিবর্তন হলে এবং
প্রদত্ত সিম নম্বরের জন্য কোনও বৈধ কনফিগারেশন আর না থাকলে,
ভয়েসমেল সোর্স লোকালি আনরেজিস্টার হয়ে যায় এবং ভয়েসমেল ট্যাব আর দেখা যায় না। সিম
কার্ড পরিবর্তন করা হলে, VVM আবার চালু হয়ে যায়।
পরিষেবা প্রদানকারীর VVM দ্বারা প্রতিস্থাপিত হয়েছে
ডিভাইসে ইনস্টল করা কোনও পরিষেবা প্রদানকারীর ভিজ্যুয়াল ভয়েসমেল অ্যাপ, AOSP VVM ক্লায়েন্ট বন্ধ করে দিতে পারে। KEY_CARRIER_VVM_PACKAGE_NAME_STRING প্যারামিটারের সাথে
নাম মেলে এমন কোনও প্যাকেজ ইনস্টল করা আছে কিনা তা চেক করে এটি করা হয়।
ব্যবহারকারীর ইন্টার্যাকশনের মাধ্যমে VVM ক্লায়েন্ট এখনও চালু করা যেতে পারে।
পরীক্ষা করা
VoicemailProvider API-এর জন্য আগে থেকেই (Android 4.0 থেকে) CTS টেস্টের একটি সেট আছে যা কোনও অ্যাপকে প্ল্যাটফর্মে ভয়েসমেল যোগ/কোয়েরি/মুছে দিতে অনুমতি দেয়। VVM যে API ব্যবহার করে ভয়েসমেল যোগ/মুছে দেয়, এগুলিও সেই একই API, যাতে যেকোনও ডায়ালার অ্যাপ UI-তে সেগুলি দেখাতে পারে।
আপনার কনফিগারেশন অ্যাপ OMTP কনফিগারেশন ঠিকমতো পাস করছে কিনা তা পরীক্ষা করে দেখতে, আপনি এগুলির মাধ্যমে কোড পরীক্ষা করতে পারেন:
- সঠিক সার্টিফিকেট স্বাক্ষর সহ একটি সিম
- AOSP ফোন ফ্রেমওয়ার্কের অপরিবর্তিত ভার্সন সহ Android 6.0-এ চলা ডিভাইস