অ্যান্ড্রয়েড ১২-এ MMTEL এবং RCS ফিচার প্রদানের জন্য একটি একক রেজিস্ট্রেশন মডেলের সমর্থন চালু করা হয়েছে। এই মডেলটি ডিভাইসগুলোকে তাদের ImsService দ্বারা প্রদত্ত একটিমাত্র IMS রেজিস্ট্রেশনের মাধ্যমে সমস্ত IMS ফিচার পরিচালনা করতে এবং কিছু টেলিকম ক্যারিয়ারের প্রবর্তিত প্রয়োজনীয়তাগুলো মেনে চলতে সাহায্য করে। দ্বৈত রেজিস্ট্রেশন মডেলের তুলনায়, যেখানে একটি ডিভাইসে একাধিক IMS রেজিস্ট্রেশন পরিচালিত হয়, একক রেজিস্ট্রেশন ক্যারিয়ারের নেটওয়ার্কে ট্র্যাফিক কমায় এবং নির্ভরযোগ্যতা বাড়ায়।
অ্যান্ড্রয়েড ১২ এমন একটি আর্কিটেকচারের মাধ্যমে এই একক রেজিস্ট্রেশন মডেলটিকে সমর্থন করে, যেখানে একগুচ্ছ এপিআই (API) রয়েছে। এই এপিআইগুলো AOSP টেলিফোনি স্ট্যাককে ImsService দ্বারা প্রদত্ত MMTEL ফিচার এবং ব্যবহারকারী-নির্বাচিত RCS মেসেজিং অ্যাপ দ্বারা প্রদত্ত RCS ফিচার—উভয়ই পরিচালনা করার সুযোগ দেয়। IMS একক রেজিস্ট্রেশন সমর্থন করার জন্য, ডিভাইস নির্মাতা এবং SoC বিক্রেতাদের অবশ্যই এই এপিআইগুলো ইমপ্লিমেন্ট করতে হবে, যাতে ব্যবহারকারী-নির্বাচিত RCS মেসেজিং অ্যাপে RCS ফিচারগুলো সক্রিয় করা যায়।
চিত্র ১-এ আইএমএস একক নিবন্ধন মডেল ব্যবহার করার সময় ডিভাইসটির আইএমএস স্ট্যাক দেখানো হয়েছে। সমস্ত আইএমএস অ্যাপ একটিমাত্র আইএমএস নিবন্ধনের মাধ্যমে এমএমটিইএল এবং আরসিএস বৈশিষ্ট্যগুলির জন্য ডিভাইসটির ডিফল্ট ImsService ব্যবহার করে। এর মধ্যে রয়েছে প্রভিশনিং, এসআইপি বার্তা ফরওয়ার্ডিং এবং আরসিএস ব্যবহারকারীর সক্ষমতা বিনিময়।

চিত্র ১. একক নিবন্ধন মডেলের স্থাপত্য
অ্যান্ড্রয়েড ১১ এবং এর নিচের সংস্করণগুলো MMTEL এবং RCS ফিচার প্রদানের জন্য শুধুমাত্র একটি দ্বৈত রেজিস্ট্রেশন মডেল সমর্থন করে, যেখানে MMTEL ফিচারটি ডিভাইসের ImsService দ্বারা সরবরাহ করা হয় এবং RCS ফিচারগুলো এর উপরে বাস্তবায়িত হয় ও স্বাধীনভাবে তাদের নিজস্ব IMS স্ট্যাক এবং ক্যারিয়ারের নেটওয়ার্কের সাথে সংযোগ পরিচালনা করে।
চিত্র ২-এ দ্বৈত নিবন্ধন মডেলের স্থাপত্য দেখানো হয়েছে। এই মডেলে, প্রতিটি অ্যাপ ক্যারিয়ারের নেটওয়ার্কের সাথে সংযোগ স্থাপন এবং MMTEL ও RCS ফিচারগুলোর জন্য একটি IMS নিবন্ধন প্রতিষ্ঠার দায়িত্বে থাকে। ডিভাইসটির ImsService, MMTEL বাস্তবায়ন করে, ক্যারিয়ার নেটওয়ার্কের সাথে সংযোগের জন্য ডিভাইসটির IMS ডেটা সংযোগ ব্যবহার করে এবং অন্যান্য RCS অ্যাপ থেকে স্বাধীনভাবে কাজ করে।

চিত্র ২. দ্বৈত নিবন্ধন মডেল স্থাপত্য
আইএমএস একক নিবন্ধন এপিআই
যেসব ক্যারিয়ারে IMS সিঙ্গেল রেজিস্ট্রেশন প্রয়োজন, সেসব ক্যারিয়ারের ডিভাইসগুলোকে অবশ্যই IMS সিঙ্গেল রেজিস্ট্রেশন API সাপোর্ট করতে হবে এবং Android ফিচার PackageManager#FEATURE_TELEPHONY_IMS_SINGLE_REGISTRATION ডিফাইন করতে হবে। চিত্র ৩-এ সেই API-গুলো দেখানো হয়েছে যা IMS সিঙ্গেল রেজিস্ট্রেশন সাপোর্ট করে।

চিত্র ৩. উচ্চ-স্তরের এপিআই পৃষ্ঠতল যা আইএমএস একক নিবন্ধন সমর্থন করে
যেসব অ্যান্ড্রয়েড ডিভাইস AOSP টেলিফোনি স্ট্যাকের অংশ হিসেবে IMS সিঙ্গেল রেজিস্ট্রেশন সমর্থন করে, সেগুলোকে নিম্নলিখিত সারণিতে বর্ণিত সমস্ত AOSP API সমর্থন করতে হবে।
| এপিআই পৃষ্ঠের ক্ষেত্রফল | আরসিএস অ্যাপ এপিআই | বিক্রেতা IMS API | বর্ণনা |
|---|---|---|---|
| আরসিএস সরবরাহ | প্রোভিশনিং ম্যানেজার | ImsConfigImplBase | যদি কোনো OEM বা ক্যারিয়ার নিজস্ব এনটাইটেলমেন্ট মেকানিজম ব্যবহার করে, তবে এটি তাদের RCS প্রভিশনিং স্ট্যাটাস আপডেট করার জন্য একটি অ্যাপ সরবরাহ করার সুযোগ দেয়। যেসব ক্যারিয়ার নিজস্ব মেকানিজম ব্যবহার করে না, তাদের প্রভিশনিংয়ের জন্য ImsService-কে অবশ্যই স্ট্যান্ডার্ড AutoConfigurationServer (ACS) সমর্থন করতে হবে। |
| SIP বার্তা ফরওয়ার্ডিং | সিপ ডেলিগেট ম্যানেজার | SipTransportImplBase | এটি একটি RCS অ্যাপকে প্রথমে ডিভাইস ImsService সাথে নির্দিষ্ট RCS ফিচার ট্যাগ যুক্ত করতে এবং তারপর সেই RCS ফিচার ট্যাগগুলির সাথে সম্পর্কিত SIP বার্তা ও IMS রেজিস্ট্রেশন আপডেট পাঠাতে ও গ্রহণ করতে দেয়। |
| ডেডিকেটেড বিয়ারার নোটিফিকেশন | কানেক্টিভিটিম্যানেজার | ডেটাকলপ্রতিক্রিয়া | কোনো অ্যাপকে একটি নির্দিষ্ট লোকাল পোর্টের সাথে যুক্ত সকেটে QoS নোটিফিকেশন শোনার অনুমতি দেয়। |
| জিবিএ প্রমাণীকরণ | বুটস্ট্র্যাপ প্রমাণীকরণ অনুরোধ | জিবিএসার্ভিস | একটি RCS অ্যাপকে নেটওয়ার্কের সাথে প্রমাণীকরণ করতে এবং ফাইল স্থানান্তরের মতো RCS বৈশিষ্ট্যগুলির জন্য ব্যবহৃত কীগুলি অ্যাক্সেস করার অনুমতি দেয়। |
| আরসিএস ব্যবহারকারীর সক্ষমতা বিনিময় | ImsRcsManager | RcsCapabilityExchangeImplBase | এটি AOSP-কে তার MMTEL এবং RCS সক্ষমতাগুলো বিক্রেতা ImsService-এর কাছে পাঠানোর সুযোগ দেয়, যাতে RCS ব্যবহারকারীর সক্ষমতা বিনিময়ের জন্য সেগুলোকে একটি একক সত্তার অধীনে নেটওয়ার্কে প্রকাশ করা যায়। এছাড়াও, এটি এক বা একাধিক কন্ট্যাক্টের RCS সক্ষমতায় আগ্রহী অন্যান্য অ্যাপগুলোকে কন্ট্যাক্টটির RCS সক্ষমতা জানার জন্য নেটওয়ার্কে কোয়েরি করার অনুমতি দেয়। |
নিরাপত্তা এবং অনুমতি
ক্যারিয়ারের নেটওয়ার্ক এবং ব্যবহারকারীর ডেটাতে নিরাপদ অ্যাক্সেস নিশ্চিত করতে অ্যান্ড্রয়েড ১২ নিম্নলিখিত পারমিশনগুলো চালু করেছে:
-
android.permission.PERFORM_IMS_SINGLE_REGISTRATION -
android.permission.ACCESS_RCS_USER_CAPABILITY_EXCHANGE
RCS ফিচারযুক্ত মেসেজিং অ্যাপ দ্বারা android.permission.PERFORM_IMS_SINGLE_REGISTRATION পারমিশনটি অবশ্যই সংজ্ঞায়িত করতে হবে। এই পারমিশনটি মঞ্জুর করার জন্য, নিম্নলিখিত শর্তগুলো অবশ্যই পূরণ করতে হবে:
- অ্যাপটিকে অবশ্যই একটি প্রিভিলেজড অ্যাপ হিসেবে ইনস্টল করতে হবে, যার অর্থ হলো এটি ডিভাইসে আগে থেকেই ইনস্টল করা থাকবে এবং বিশেষ অনুমতি (প্রিভিলেজড পারমিশন) পাওয়ার অধিকারী হবে।
-
RoleManagerব্যবহার করে অ্যাপটিকে ব্যবহারকারীর ডিফল্ট এসএমএস রোল হিসেবে সেট করতে হবে।
যদি এই দুটি শর্তই পূরণ না হয়, তাহলে অ্যাপটিকে android.permission.PERFORM_IMS_SINGLE_REGISTRATION পারমিশনটি দেওয়া হয় না। এর মানে হলো, থার্ড-পার্টি অ্যাপগুলোকে RCS সিঙ্গেল রেজিস্ট্রেশন API অ্যাক্সেস করার অনুমতি দেওয়া হয় না, কারণ এর জন্য ডিভাইসে ক্যারিয়ার সার্টিফিকেশন প্রয়োজন হয়।
android.permission.ACCESS_RCS_USER_CAPABILITY_EXCHANGE পারমিশনটি যখন এমন কোনো অ্যাপকে দেওয়া হয় যার READ_CONTACTS পারমিশনটিও রয়েছে, তখন অ্যাপটি RcsUceAdapter ব্যবহার করে ফোন নম্বরগুলির RCS সক্ষমতা অনুরোধ করতে পারে। এই পারমিশনটি মঞ্জুর হওয়ার জন্য, নিম্নলিখিত শর্তটি অবশ্যই পূরণ করতে হবে:
- অ্যাপটিকে অবশ্যই একটি প্রিভিলেজড অ্যাপ হিসেবে ইনস্টল করতে হবে, যার অর্থ হলো এটি ডিভাইসে আগে থেকেই ইনস্টল করা থাকবে এবং বিশেষ অনুমতি (প্রিভিলেজড পারমিশন) ব্যবহারের অনুমতি পাবে।
অ্যাপটিকে অবশ্যই নিম্নলিখিত
RoleManagerরোলগুলির মধ্যে একটি হিসাবে সংজ্ঞায়িত করতে হবে:- ডিফল্ট মেসেজিং অ্যাপ: ব্যবহারকারী কর্তৃক নির্ধারিত।
- ডিফল্ট ডায়ালার অ্যাপ: ব্যবহারকারী কর্তৃক নির্ধারিত।
- ডিফল্ট কন্টাক্টস অ্যাপ: অ্যান্ড্রয়েড ১২-এ প্রবর্তিত একটি রোল, যা OEM-কে ডিভাইস ওভারলে ভ্যালু
config_systemContactsএর মাধ্যমে একটি প্যাকেজ নেম নির্ধারণ করার সুযোগ দেয়, যা অবশ্যই ডিভাইসের কন্টাক্টস অ্যাপের সাথে সঙ্গতিপূর্ণ হতে হবে। এরপর সেই অ্যাপটিকে কন্টাক্টস রোলটি প্রদান করা হয়।
ডেটা ট্র্যাফিক সেট আপ ও পরিচালনা করার জন্য ConnectivityManager ব্যবহার করে IMS APN অ্যাক্সেস করতে হলে, অ্যাপগুলিকে অবশ্যই android.permission.CONNECTIVITY_USE_RESTRICTED_NETWORKS পারমিশনটির জন্যও অনুরোধ করতে হবে।
উদাহরণ এবং উৎস
অ্যান্ড্রয়েড AOSP-তে একটি অ্যাপ প্রদান করে যা পরীক্ষা এবং উন্নয়নের উদ্দেশ্যে প্রাথমিক RCS মেসেজিং সমর্থন সহ একটি পরীক্ষামূলক মেসেজিং অ্যাপ বাস্তবায়ন করে। আপনি testapps/TestRcsApp এ অ্যাপটি খুঁজে পাবেন। যখন অ্যাপটি কোনো ডিভাইসে ইনস্টল করা হয়, তখন এটিকে ব্যবহারকারীর ডিফল্ট মেসেজিং অ্যাপ হিসেবে সেট করা যায় এবং IMS একক রেজিস্ট্রেশন API অ্যাক্সেস করার জন্য প্রয়োজনীয় অনুমতিগুলো এতে থাকে।
অ্যান্ড্রয়েড RCS-এর জন্য ImsService-এর একটি নমুনা বাস্তবায়নও প্রদান করে। এর সোর্স কোডটি /testapps/ImsTestService -এ রয়েছে।
বাস্তবায়ন
বাস্তবায়ন সংক্রান্ত আরও বিস্তারিত তথ্যের জন্য, অ্যান্ড্রয়েডে আইএমএস সিঙ্গেল রেজিস্ট্রেশন ডাউনলোড করুন।
বৈধতা
আপনার IMS একক নিবন্ধন বাস্তবায়ন যাচাই করতে, নিম্নলিখিতগুলি করুন:
- নিশ্চিত করুন যে CtsTelephonyTestCases CTS টেস্ট স্যুটটি পাস করে।
- ইন্টিগ্রেশনের সময় বেসিক সিঙ্গেল রেজিস্ট্রেশন টেস্ট কেসগুলো চালানোর জন্য TestRcsApp ইনস্টল ও রান করুন।
- আইএমএস একক নিবন্ধন টেস্ট কেসগুলির জন্য ক্যারিয়ার সার্টিফিকেশন পাস করুন।