IMS পরিষেবা এনটাইটেলমেন্ট

Android 12 থেকে, Android-এ TS.43 পরিষেবা এনটাইটেলমেন্ট কনফিগারেশন-এর জন্য সহায়তা অন্তর্ভুক্ত থাকে, এটি একটি GSMA স্পেসিফিকেশন যা পরিষেবা অ্যাক্টিভেশনের জন্য এনটাইটেলমেন্ট যাচাইকরণ ধাপকে সংজ্ঞায়িত করে, এর মধ্যে ওয়াই-ফাইয়ের মাধ্যমে কল (VoWiFi), LTE-এর মাধ্যমে কল (VoLTE), IP-এর মাধ্যমে এসএমএস (SMSoIP), eSIM কম্প্যানিয়ন ডিভাইসের অন-ডিভাইস পরিষেবা অ্যাক্টিভেশন (ODSA) (অনুরোধকারী ডিভাইসের সাথে যুক্ত) এবং ডেটা প্ল্যান সংক্রান্ত তথ্য অন্তর্ভুক্ত।

এই স্পেসিফিকেশনকে সাপোর্ট করতে, Android একটি IMS পরিষেবা এনটাইটেলমেন্ট ফিচার প্রদান করে যা কোনও পরিষেবা প্রদানকারীকে IP মাল্টিমিডিয়া সাবসিস্টেম (IMS) নেটওয়ার্ক পরিষেবার স্ট্যাটাস সম্পর্কে মোবাইল ডিভাইসকে জানাতে দেয়। এই এনটাইটেলমেন্ট ফিচার ডিভাইসকে GSMA TS.43 স্পেসিফিকেশন অনুযায়ী IMS এনটাইটেলমেন্ট স্ট্যাটাসের জন্য EAP-AKA যাচাইকরণ ব্যবহার করে ক্যারিয়ার এনটাইটেলমেন্ট সার্ভারে কোয়েরি করতে দেয়। এর জন্য ব্যবহারকারীকে ম্যানুয়ালি কোনও ক্রেডেনশিয়াল ইনপুট করতে হয় না।

IMS এনটাইটেলমেন্ট সার্ভার সহ পরিষেবা প্রদানকারীরা পরিষেবা প্রদানের জন্য IMS পরিষেবা এনটাইটেলমেন্ট ফিচার ব্যবহার করতে পারে। এই ফিচার ব্যবহার করলে নিম্নলিখিত সুবিধাগুলি পাওয়া যায়:

  • এই এনটাইটেলমেন্ট ফিচার একাধিক প্রোডাক্ট ও OEM জুড়ে ব্যবহার করা যায় বলে, এটি পরিষেবা প্রদানকারীদের জন্য টেস্টিং ও সার্টিফিকেশন সংক্রান্ত খরচ কমায়।
  • স্ট্যান্ডার্ড Android অ্যাপের মাধ্যমে ডিভাইস প্রস্তুতকারকদের জন্য ডেভেলপমেন্ট ওভারহেড কমায়।
  • ডিভাইস প্রস্তুতকারক এবং ক্যারিয়ারদের এই ফিচারের জন্য কোড কন্ট্রিবিউট করতে দেয়, কারণ এই ফিচারটি ওপেন সোর্স।
  • উত্তর আমেরিকার ক্যারিয়ারের জন্য জরুরি ঠিকানা ম্যানেজ করার সুবিধা প্রদান করে।

স্থাপত্যশিল্প

নিচের ছবিতে IMS পরিষেবা এনটাইটেলমেন্ট ফিচারের আর্কিটেকচার ও আচরণ বর্ণনা করা হয়েছে।

TS.43 এনটাইটেলমেন্ট ফিচার

ছবি ১. TS.43 এনটাইটেলমেন্ট ফিচার আর্কিটেকচার

১ নম্বর ছবিতে দেখানো হয়েছে, IMS পরিষেবা এনটাইটেলমেন্ট ফিচারের আর্কিটেকচারে নিম্নলিখিত কম্পোনেন্ট অন্তর্ভুক্ত থাকে:

  • service_entitlement TS.43 Service API স্ট্যাটিক লাইব্রেরি: এই লাইব্রেরি TS.43 স্পেসিফিকেশন প্রয়োগ করে, কোনও ক্যারিয়ারের এনটাইটেলমেন্ট সার্ভারের সাথে ইন্টার‍্যাক্ট করে এবং প্রতিটি TS.43 ব্যবহারের ক্ষেত্রে অ্যাপ-ফেসিং API এক্সপোজ করে।
  • ImsServiceEntitlement ক্লায়েন্ট অ্যাপ: এই অ্যাপ TS.43 Service API ব্যবহার করে। অ্যাপটি UI এলিমেন্ট প্রয়োগ করে, যার মধ্যে ব্যবহারকারীদের পরিষেবা অ্যাক্টিভেট করার জন্য ক্যারিয়ারের পরিষেবা পোর্টাল রেন্ডার করার জন্য ওয়েবভিউ অন্তর্ভুক্ত এবং ব্যবহারকারীর অভিজ্ঞতা ম্যানেজ করার জন্য অন্যান্য Android কম্পোনেন্টের সাথে ইন্টার‍্যাক্ট করে এন্ড-টু-এন্ড।

    TS.43-ভিত্তিক এনটাইটেলমেন্ট সার্ভারের সাথে কাজ করার জন্য কীভাবে Android কনফিগার করতে হয় সেই সম্পর্কে আরও তথ্যের জন্য, ImsServiceEntitlement অ্যাপ দেখুন।

ছবি ১-এ দেখানো নম্বরযুক্ত লাইনগুলি থেকে বোঝা যায় যে IMS পরিষেবার এনটাইটেলমেন্ট ফিচারের কম্পোনেন্টগুলি কীভাবে একে অপরের সাথে যোগাযোগ করে। লেবেল করা প্রতিটি ধাপের বিবরণ নিচে দেওয়া হল:

(১) ক্লায়েন্ট অ্যাপ TS.43 পরিষেবা API-কে ডেকে পরিষেবা এনটাইটেলমেন্ট অনুরোধ শুরু করে।

(২) TS.43 পরিষেবা API, EAP-AKA চ্যালেঞ্জ শুরু করার জন্য ক্যারিয়ারের এনটাইটেলমেন্ট সার্ভারে একটি HTTP অনুরোধ পাঠায়।

(৩) TS.43 পরিষেবা API, EAP-AKA চ্যালেঞ্জ-উত্তর সম্পূর্ণ করতে টেলিফোনি API (যেমন, getIccAuthentication) আহ্বান করে।

(৪) EAP-AKA উত্তর যাচাই করার পরে TS.43 পরিষেবা, পরিষেবা এনটাইটেলমেন্ট বা কনফিগারেশন ডেটা ক্যারিয়ারের এনটাইটেলমেন্ট সার্ভার থেকে পায়।

(৫) TS.43 পরিষেবা ক্লায়েন্ট অ্যাপে পরিষেবার এনটাইটেলমেন্ট বা কনফিগারেশন ডেটা ফেরত পাঠায়।

(৬) ক্লায়েন্ট অ্যাপ ডেটা ম্যানেজ করে এবং ঐচ্ছিকভাবে ব্যবহারকারীর জন্য পরিষেবা অ্যাক্টিভেশন সম্পূর্ণ করতে পরিষেবা প্রদানকারীর সার্ভিস পোর্টাল রেন্ডার করে।

ইন্টিগ্রেশন

এই বিভাগে service_entitlement লাইব্রেরি ও ImsServiceEntitlement অ্যাপ ইন্টিগ্রেট করার প্রসেস বর্ণনা করা হয়েছে।

Android 12 API-এর উপর নির্ভরতা না থাকার কারণে, service_entitlement লাইব্রেরি ও ImsServiceEntitlement অ্যাপকে অপেক্ষাকৃত পুরনো Android প্ল্যাটফর্মে ব্যাকপোর্ট করা যেতে পারে।

service_entitlement লাইব্রেরি

service_entitlement লাইব্রেরি স্ট্যাটিক্যালি ImsServiceEntitlement অ্যাপের সাথে লিঙ্ক করা আছে, তাই ImsServiceEntitlement অ্যাপে লাইব্রেরি ইন্টিগ্রেট করার জন্য অতিরিক্ত কোনও পদক্ষেপের প্রয়োজন নেই।

service_entitlement লাইব্রেরি আপনার নিজের অ্যাপের সাথে ইন্টিগ্রেট করা যেতে পারে, যেমন TS.43 ডেটা প্ল্যান ও ODSA-এর মতো ব্যবহারের ক্ষেত্রে। এছাড়াও, EAP-AKA প্রোটোকলের উপর ভিত্তি করে TS.43 এনটাইটেলমেন্ট ব্যবহার না করার ক্ষেত্রে লাইব্রেরিটি কোনও অ্যাপে ইন্টিগ্রেট করা যেতে পারে।

এই ধরনের ব্যবহারিক প্রয়োগের জন্য কোন API ব্যবহার করতে হবে তা নিচে বর্ণনা করা হল:

  • TS.43 অ্যাপ লাইব্রেরিতে প্রয়োগ করা TS.43 HTTP প্রোটোকল ব্যবহার করছে: ServiceEntitlement ক্লাসে API ব্যবহার করুন।
  • লাইব্রেরিতে প্রয়োগ করা EAP-AKA প্রোটোকল ব্যবহার করে নন-TS.43 অ্যাপ: EapAkaHelper ক্লাসে প্রকাশ করা API ব্যবহার করুন।

ImsServiceEntitlement অ্যাপ

ডিফল্ট হিসেবে, Android-এ প্রোডাক্ট পার্টিশনে বিশেষ অধিকারপ্রাপ্ত অ্যাপ হিসেবে ImsServiceEntitlement অ্যাপ ইনস্টল করা থাকে। অ্যাপ কনফিগার করতে, নিম্নলিখিত CarrierConfig কী ব্যবহার করুন:

কী মান
KEY_ENTITLEMENT_SERVER_URL_STRING ক্যারিয়ারের এনটাইটেলমেন্ট সার্ভার URL. https:// প্রিফিক্স অবশ্যই অন্তর্ভুক্ত করতে হবে।
KEY_FCM_SENDER_ID_STRING পরিষেবা প্রদানকারীর FCM প্রেরক আইডি।

পরিষেবা প্রদানকারীর FCM-এর প্রয়োজন না থাকলে এই ভ্যালু সেট করবেন না।
KEY_SHOW_VOWIFI_WEBVIEW_BOOL true হিসেবে সেট করুন যদি পরিষেবা প্রদানকারী ব্যবহারকারীদের VoWiFi পরিষেবায় সাইন-আপ করার জন্য ওয়েব পোর্টাল UI চায়। যেমন, নিয়ম ও শর্তাবলীতে সম্মতি দেওয়া বা জরুরি ঠিকানা লেখা।

উত্তর আমেরিকার পরিষেবা প্রদানকারীদের ক্ষেত্রে এটি সাধারণত প্রয়োজন হয়।
KEY_WFC_EMERGENCY_ADDRESS_CARRIER_APP_STRING
com.android.imsserviceentitlement/.WfcActivationActivity হিসেবে সেট করুন, যদি KEY_SHOW_VOWIFI_WEBVIEW_BOOL true হয়।
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 এনটাইটেলমেন্ট অ্যাপের মাধ্যমে নিম্নলিখিত পরিষেবা প্রদানকারী কাজ করে:

  • মার্কিন যুক্তরাষ্ট্র: CSpire, US Cellular, Cellcom
  • ফ্রান্স: Orange

IMS প্রভিশনিংয়ের জন্য অতিরিক্ত সিস্টেম UI

IMS পরিষেবা প্রভিশনিংয়ের (যেমন, VoWiFi প্রভিশন করা হলে বিজ্ঞপ্তি দেখানো) সাথে সম্পর্কিত অতিরিক্ত সিস্টেম UI এলিমেন্ট কীভাবে OEM সহায়তা করতে পারে তা এই বিভাগে বর্ণনা করা হয়েছে।

ImsServiceEntitlement অ্যাপটি ProvisioningManager.setProvisioningIntValue(KEY_VOICE_OVER_WIFI_ENABLED_OVERRIDE, value) সিস্টেম API ব্যবহার করে প্ল্যাটফর্মে VoWiFi প্রভিশনিং স্টেট সেট করে। এছাড়াও, এই API VoLTE (with KEY_VOLTE_PROVISIONING_STATUS) ও SMSoIP (with KEY_SMS_OVER_IP_ENABLED) পরিষেবার জন্য ব্যবহার করা হয়।

সিস্টেম UI তারপরে getProvisioningIntValue ব্যবহার করে বা registerProvisioningChangedCallback-এর মাধ্যমে প্রভিশনিং স্টেটের পরিবর্তন মনিটর করার জন্য একটি কলব্যাক রেজিস্টার করে প্রভিশনিং স্টেট পড়তে পারে।

টেস্টিংয়ের জন্য কনফিগারেশন ওভাররাইড করা

পরীক্ষার উদ্দেশ্যে ImsServiceEntitlement অ্যাপের আচরণ সাময়িকভাবে পরিবর্তন করতে নিম্নলিখিত পদ্ধতি ব্যবহার করুন। কীভাবে পরিষেবা প্রদানকারীর কনফিগারেশন ওভাররাইড করতে হয় সেই বিষয়ে বিস্তারিত জানতে, পরিষেবা প্রদানকারীর কনফিগারেশন ওভাররাইড করা দেখুন।

VoWiFi সাইন-আপ প্রসেস এড়িয়ে যান

VoWiFi সাইন-আপ প্রসেস এড়িয়ে যেতে, সরাসরি VoWiFi চালু করার অনুমতি দিতে, ক্যারিয়ার কনফিগারেশন ওভাররাইড করুন KEY_WFC_EMERGENCY_ADDRESS_CARRIER_APP_STRING এবং এর ভ্যালু খালি স্ট্রিং হিসেবে সেট করুন।

IMS প্রোভিশনিং এড়িয়ে যাওয়া

IMS প্রভিশনিং এড়িয়ে যেতে, IMS পরিষেবা উপলভ্য করতে এবং ব্যবহারকারীদের নেটওয়ার্ক প্রভিশনিং ছাড়াই এই ধরনের পরিষেবা চালু করতে, ক্যারিয়ার কনফিগারেশন ওভাররাইড করুন KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL এবং এর ভ্যালু false হিসেবে সেট করুন।

এনটাইটেলমেন্ট সার্ভার URL পরিবর্তন করা

এনটাইটেলমেন্ট সার্ভার URL পরিবর্তন করতে, ওভাররাইড ক্যারিয়ার কনফিগার KEY_ENTITLEMENT_SERVER_URL_STRING করুন এবং এর ভ্যালু প্রত্যাশিত URL স্ট্রিং হিসেবে সেট করুন। আপনাকে অবশ্যই https:// প্রিফিক্স যোগ করতে হবে।

পরিষেবা প্রদানকারীর কনফিগারেশন ওভাররাইড করুন

Android 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