সক্ষমতা পরীক্ষা করে

ব্যবহারকারীর ডিভাইসটি RCS-সক্ষম এবং RBM এজেন্টের সাথে যোগাযোগ করতে সক্ষম কিনা তা পরীক্ষা করতে, আপনি ডিভাইসটির সক্ষমতা সম্পর্কে জানতে চাইতে পারেন। কোনো ডিভাইস কোন কোন ফিচার সমর্থন করে (যদি করে থাকে), তা শনাক্ত করতে পারলে আপনার এজেন্ট ডিভাইসটির সক্ষমতা অনুযায়ী কথোপকথনটি সাজিয়ে নিতে পারে এবং ব্যবহারকারীর পক্ষে সম্পন্ন করা কঠিন বা অসম্ভব এমন ইন্টারঅ্যাকশন দেখানো এড়াতে পারে।

যদি কোনো ব্যবহারকারীর ডিভাইস আরসিএস বার্তা গ্রহণ করতে একেবারেই সক্ষম না হয়, তাহলে আপনি এসএমএস/এমএমএস-এর মতো অন্যান্য পরিষেবার মাধ্যমে তার সাথে যোগাযোগ করতে পারেন।

ডিভাইসের সক্ষমতা যাচাই করুন

নিম্নলিখিত কোডটি একটি সক্ষমতা যাচাই পাঠায় এবং একটি প্রতিক্রিয়ার জন্য অপেক্ষা করে। ফরম্যাটিং এবং মানের বিকল্পগুলির জন্য, getCapabilities দেখুন।

cURL

curl -X GET "https://REGION-rcsbusinessmessaging.googleapis.com/v1/phones/PHONE_NUMBER/capabilities?requestId=REQUEST_ID&agentId=AGENT_ID" \
-H "Content-Type: application/json" \
-H "User-Agent: curl/rcs-business-messaging" \
-H "`oauth2l header --json PATH_TO_SERVICE_ACCOUNT_KEY rcsbusinessmessaging`"

নোড.জেএস

// Reference to RBM API helper
const rbmApiHelper = require('@google/rcsbusinessmessaging');

// Send a capability check to the device
rbmApiHelper.checkCapability('+12223334444', function(response) {
   // Print capabilities of the device
   console.log(response);
});
এই কোডটি একটি RBM নমুনা এজেন্ট থেকে নেওয়া অংশ।

জাভা

import com.google.rbm.RbmApiHelper;


// Create an instance of the RBM API helper
RbmApiHelper rbmApiHelper = new RbmApiHelper();

// Check the capabilities of the device
boolean capability = rbmApiHelper.getCapability("+12223334444");
এই কোডটি একটি RBM নমুনা এজেন্ট থেকে নেওয়া অংশ।

পাইথন

# Reference to RBM Python client helper
from rcs_business_messaging import rbm_service

# Send the tester invite to a device
response = rbm_service.make_cap_request('+12223334444')
এই কোডটি একটি RBM নমুনা এজেন্ট থেকে নেওয়া অংশ।

সি#

using RCSBusinessMessaging;


// Create an instance of the RBM API helper
RbmApiHelper rbmApiHelper = new RbmApiHelper(credentialsFileLocation,
                                             projectId);

// Register the device as a tester
Capabilities capabilities = rbmApiHelper.GetCapability("+12223334444");
এই কোডটি একটি RBM নমুনা এজেন্ট থেকে নেওয়া অংশ।

সক্ষমতা প্রতিক্রিয়া

সক্ষমতা যাচাই চালানোর পর, RBM প্ল্যাটফর্মটি নির্দিষ্ট ডিভাইসটি যে ফিচারগুলো সমর্থন করে, তার একটি JSON-ফরম্যাটের তালিকা ফেরত দেয়।

{
  "features": [
    "RICHCARD_STANDALONE",
    "RICHCARD_CAROUSEL",
    "ACTION_CREATE_CALENDAR_EVENT",
    "ACTION_DIAL",
    "ACTION_OPEN_URL",
    "ACTION_SHARE_LOCATION",
    "ACTION_VIEW_LOCATION",
    "ACTION_OPEN_URL_IN_WEBVIEW",
    "PDF_IN_RICH_CARDS"
  ]
}

অনুরোধটি হয় একটি প্রতিক্রিয়া অথবা একটি ত্রুটি ফেরত দেয়।

একটি সফল প্রতিক্রিয়া তখনই ফেরত দেওয়া হয়, যদি MSISDN (ফোন নম্বর) গত ৩১ দিনের মধ্যে RCS পরিষেবার সাথে সংযুক্ত হয়ে থাকে। এর অর্থ হলো, ব্যবহারকারীর ডিভাইসটি ঐ সময়সীমার মধ্যে আমাদের RCS সার্ভারের সাথে চেক-ইন করেছে। অনলাইন এবং RCS-সক্ষম ডিভাইসগুলো গড়ে প্রতি ১-৪ ঘণ্টা অন্তর চেক-ইন করে।

যদি কোনো ব্যবহারকারী তাদের সিম কার্ড অন্য কোনো RCS-সক্ষম ডিভাইসে স্থানান্তর করেন, তাহলে পূর্ববর্তী ডিভাইস সংযোগটি মুছে যায় এবং একটি নতুন সংযোগ তৈরি হয়, যা RCS পরিষেবাতে ডিভাইসটির সক্ষমতা আপডেট করে।

যদি কোনো সিম কার্ড এমন কোনো ডিভাইসে রাখা হয় যেখানে ক্যারিয়ার বা প্রস্তুতকারক কর্তৃক আরসিএস (RCS) নিষ্ক্রিয় করা আছে, অথবা সিম কার্ডটি অব্যবহৃত থাকে, তবুও আরসিএস পরিষেবাটি পূর্বে সংযুক্ত ডিভাইসটিতে ৩১ দিন পর্যন্ত বার্তা পাঠানোর চেষ্টা করবে।

এইগুলি কারণে 404 ত্রুটি ঘটে:

  • ব্যবহারকারীকে RBM-এর মাধ্যমে অ্যাক্সেস করা যায় না—উদাহরণস্বরূপ, যদি তাদের ডিভাইসটি RCS সাপোর্ট না করে।

  • ব্যবহারকারীর আরসিএস (RCS) আছে, কিন্তু তাদের মোবাইল নেটওয়ার্কে আপনার এজেন্ট চালু করা হয়নি।

অফলাইন কিউইং

মেসেজগুলো সর্বোচ্চ ৩১ দিনের জন্য কিউতে জমা থাকে এবং ডিভাইসটি পুনরায় অনলাইন হলে ডেলিভার করা হয়। এর মানে হলো, কোনো ডিভাইস দীর্ঘ সময়ের জন্য (সর্বোচ্চ ৩১ দিন) অফলাইনে থাকলেও, পুনরায় সংযোগ স্থাপনের পর কিউতে থাকা মেসেজগুলো ডেলিভার হয়ে যাবে, যদি MSISDN-টি গত ৩১ দিনের মধ্যে RCS সার্ভিসের সাথে সংযুক্ত হয়ে থাকে।

বাল্ক ক্ষমতা পরীক্ষা

RBM-এর মাধ্যমে পৌঁছানো যায় এমন ব্যবহারকারীর সংখ্যা অনুমান করতে, একটি বাল্ক ক্যাপাবিলিটি চেক করুন। বাল্ক চেক থেকে জানা যায় একটি ফোন নম্বর পৌঁছানো যায় কি না, কিন্তু নম্বরটি কোন কোন ফিচার সাপোর্ট করে তা জানা যায় না।

প্রতিটি বাল্ক ক্যাপাবিলিটি চেকের জন্য, আপনাকে ৫০০–১০,০০০টি স্বতন্ত্র ফোন নম্বর প্রদান করতে হবে। আরও নম্বর চেক করতে, একাধিকবার চেক করুন। আপনি প্রতি মিনিটে সর্বোচ্চ ৬০০টি কল করতে পারবেন। ইনপুট ফরম্যাট হিসেবে CSV ফাইল ব্যবহার করতে বাল্ক ক্যাপাবিলিটি চেক স্ক্রিপ্টটি ব্যবহার করুন। বাল্ক চেকগুলো ক্যাপাবিলিটি ক্যাশে থেকে ডেটা পড়ে, যা ক্লায়েন্টরা RCS ব্যবহার করে স্বয়ংক্রিয়ভাবে আপডেট করে। এজেন্টরা সরাসরি প্রতিটি ডিভাইসের ক্যাপাবিলিটির জন্য অনুরোধ করে না। এই কারণে, ফলাফল সাম্প্রতিক নাও হতে পারে।

বাল্ক ক্যাপাবিলিটি চেক চালু করা ক্যারিয়ারগুলোতে আপনার এজেন্ট যেসব নম্বরে পৌঁছাতে পারে তার একটি তালিকা প্রদান করে, সেইসাথে সমস্ত ক্যারিয়ার জুড়ে মোট পৌঁছানো সম্ভব এমন ব্যবহারকারীর আনুমানিক সংখ্যাও জানায়। বাল্ক ক্যাপাবিলিটি চেক রেসপন্স দেখুন।

আনুমানিক মোট পৌঁছানো সম্ভব এমন ব্যবহারকারী

যদিও বাল্ক চেকের প্রতিক্রিয়াগুলিতে আপনার এজেন্টের চালু করা ক্যারিয়ারগুলিতে অবিলম্বে পৌঁছানো যায় এমন ফোন নম্বরগুলির একটি তালিকা ( reachableUsers ) অন্তর্ভুক্ত থাকে, প্রতিক্রিয়াগুলিতে এমন দুটি মানও থাকে যা আপনাকে সমস্ত ক্যারিয়ার জুড়ে মোট পৌঁছানো যায় এমন ব্যবহারকারীর সংখ্যা অনুমান করতে সহায়তা করতে পারে।

এটি কীভাবে কাজ করে

যখন আপনার এজেন্ট একটি বাল্ক ক্যাপাবিলিটি চেক করে, তখন RBM সমস্ত ক্যারিয়ার চেক করার জন্য সেই নম্বরগুলির প্রায় ৭৫% র‍্যান্ডমভাবে স্যাম্পল করে (যা totalRandomSampleUserCount এ রিপোর্ট করা হয়)। RBM ক্যারিয়ার লঞ্চ স্ট্যাটাস নির্বিশেষে, র‍্যান্ডম স্যাম্পল থেকে RBM-এর নাগালের মধ্যে থাকা নম্বরের সংখ্যাও ফেরত দেয় ( reachableRandomSampleUserCount )। reachableRandomSampleUserCount কে totalRandomSampleUserCount দিয়ে ভাগ করে, আপনি অনুমান করতে পারেন যে আপনার এজেন্ট যদি সমস্ত ক্যারিয়ারে লঞ্চ করা হতো, তাহলে কত শতাংশ নম্বরে পৌঁছাতে পারত।

উদাহরণস্বরূপ, যদি আপনি বাল্ক ক্যাপাবিলিটি চেকে ৫,০০০ ফোন নম্বর নির্দিষ্ট করেন এবং RBM নির্দিষ্ট নম্বরগুলোর প্রায় ৭৫% এলোমেলোভাবে নমুনা হিসেবে নেয়, তাহলে totalRandomSampleUserCount হতে পারে 3750 যদি reachableRandomSampleUserCount 3000 হয়, তাহলে নমুনা হিসেবে নেওয়া নম্বরগুলোর ৮০% পৌঁছানোর যোগ্য ছিল।

দৈবচয়নের জন্য নমুনা বিবেচনা করুন

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

একসাথে অনেকগুলো সক্ষমতা যাচাই পাঠান

নিম্নলিখিত কোডটি একসাথে অনেকগুলো সক্ষমতা যাচাই করে এবং একটি প্রতিক্রিয়ার জন্য অপেক্ষা করে। ফরম্যাটিং এবং ভ্যালু অপশনগুলোর জন্য users.batchGet দেখুন।

ফোন নম্বরগুলো অবশ্যই E.164 ফরম্যাটে হতে হবে (উদাহরণস্বরূপ, "+12223334444"), এবং তালিকাটিতে ৫০০ থেকে ১০,০০০টি স্বতন্ত্র ফোন নম্বর থাকতে হবে।

cURL

curl -X POST "https://REGION-rcsbusinessmessaging.googleapis.com/v1/users:batchGet?agentId=AGENT_ID \
-H "Content-Type: application/json" \
-H "User-Agent: curl/rcs-business-messaging" \
-H "`oauth2l header --json PATH_TO_SERVICE_ACCOUNT_KEY rcsbusinessmessaging`" \
-d '{
  "users": [
    "PHONE_NUMBER",
  ]
}'

নোড.জেএস

// Reference to RBM API helper
const rbmApiHelper = require('@google/rcsbusinessmessaging');

// Specify phone numbers
let phoneNumbers = ['+12223334444', '+12223334444'];

// Perform a bulk capability check
rbmApiHelper.getUsers(phone_numbers, function(response) {
   // Print the bulk capability check response
   console.log(response);
});
এই কোডটি RBM স্যাম্পল এজেন্ট ব্যবহার করে।

জাভা

import com.google.rbm.RbmApiHelper;


// Create an instance of the RBM API helper
RbmApiHelper rbmApiHelper = new RbmApiHelper();

// Perform a bulk capability check
BatchGetUsersResponse batchGetUsersResponse = rbmApiHelper.getUsers(Arrays.asList("+12223334444", "+12223334444"));
এই কোডটি RBM স্যাম্পল এজেন্ট ব্যবহার করে।

পাইথন

# Reference to RBM Python client helper
from rcs_business_messaging import rbm_service

# Perform a bulk capability check
response = rbm_service.make_batch_cap_request(['+12223334444', '+12223334444'])
এই কোডটি RBM স্যাম্পল এজেন্ট ব্যবহার করে।

সি#

using RCSBusinessMessaging;


// Create an instance of the RBM API helper
RbmApiHelper rbmApiHelper = new RbmApiHelper(credentialsFileLocation,
                                             projectId);

// Perform a bulk capability check
BatchGetUsersResponse batchGetUsersResponse = rbmApiHelper.GetUsers(new List({"+12223334444", "+12223334444"}));
এই কোডটি RBM স্যাম্পল এজেন্ট ব্যবহার করে।

বাল্ক ক্ষমতা যাচাই প্রতিক্রিয়া

একসাথে একাধিক সক্ষমতা যাচাই করার পর, RBM একটি JSON ফরম্যাটে প্রতিক্রিয়া ফেরত দেয়।

{
  "reachableUsers": [
    "PHONE_NUMBER"
  ],
  "totalRandomSampleUserCount": "COUNT_OF_SAMPLE",
  "reachableRandomSampleUserCount": "REACHABLE_FROM_SAMPLE"
}
মাঠ বর্ণনা
reachableUsers এজেন্টের চালু করা ক্যারিয়ারগুলোতে পৌঁছানো যায় এমন ব্যবহারকারীদের একটি তালিকা।
totalRandomSampleUserCount নির্দিষ্ট কিছু সংখ্যার দৈব নমুনার গণনা। সাধারণত নির্দিষ্ট সংখ্যাগুলোর প্রায় ৭৫%।
reachableRandomSampleUserCount র‍্যান্ডম স্যাম্পল থেকে নেওয়া সেইসব নম্বরের সংখ্যা গণনা করা হয়, যেগুলো এজেন্টটি কোন ক্যারিয়ারে চালু করা হয়েছে তা নির্বিশেষে সমস্ত ক্যারিয়ার জুড়ে RBM-এর মাধ্যমে পৌঁছানো যায়। এই সংখ্যাটি সমস্ত ক্যারিয়ার জুড়ে পৌঁছানো যায় এমন মোট ব্যবহারকারীর সংখ্যার একটি মোটামুটি ধারণা দিতে ব্যবহৃত হয়।
reachableUsersMap শুধুমাত্র আউটপুট। ক্যারিয়ার আইডির সাথে সেই ক্যারিয়ারে যোগাযোগযোগ্য ব্যবহারকারীদের তালিকার একটি ম্যাপ। এই ফিল্ডটি শুধুমাত্র মার্কিন ফোন নম্বরের জন্য পূরণ করা হয়।

টুল: বাল্ক ক্যাপাবিলিটি চেক স্ক্রিপ্ট

দ্যবাক ক্যাপাবিলিটি চেক স্ক্রিপ্ট ( ডাউনলোড করতে সাইন ইন করুন )ইনপুট এবং আউটপুট ফরম্যাট হিসেবে CSV ফাইল ব্যবহার করে এটি একসাথে একাধিক ডিভাইসের সক্ষমতা যাচাই করে। স্ক্রিপ্টটি MSISDN-এর CSV ফাইলটি পার্স করে এবং RBM SDK ব্যবহার করে তালিকাভুক্ত প্রতিটি ডিভাইসের সক্ষমতা যাচাই করে।

২টি সিপিইউ এবং ৪ জিবি র‍্যামের একটি ভার্চুয়াল মেশিনে ৫০০টি থ্রেড সহ স্ক্রিপ্টটি চালালে আনুমানিক ১কে কিউপিএস (QPS) পর্যন্ত পৌঁছানো সম্ভব, কিন্তু সামগ্রিক কিউপিএস নির্ভর করে ব্যবহৃত মেশিন, ডিভাইসগুলোর দেশ, আপনার এজেন্টের আঞ্চলিক কনফিগারেশন এবং ব্যবহৃত এপিআই এন্ডপয়েন্টের উপর।

পূর্বশর্ত

টুলটি ব্যবহার করে একসাথে অনেকগুলো যন্ত্রের কার্যক্ষমতা যাচাই করার আগে, নিম্নলিখিত জিনিসগুলো সংগ্রহ করুন:

  • সক্ষমতা যাচাই করার জন্য MSISDN-গুলো সহ CSV ফাইলের পথ।
  • আপনার ডেভেলপমেন্ট মেশিনে আপনার এজেন্টের সার্ভিস অ্যাকাউন্ট কী-এর পাথ

এছাড়াও, আপনার ডেভেলপমেন্ট মেশিনে নিম্নলিখিত সফ্টওয়্যারগুলি ইনস্টল করা প্রয়োজন:

সেট আপ

একসাথে একাধিক মেশিনের কার্যক্ষমতা যাচাই করার জন্য আপনার ডেভেলপমেন্ট মেশিন প্রস্তুত করতে, নিম্নলিখিত পদক্ষেপগুলো অনুসরণ করুন:

  1. ডাউনলোড এবং নিষ্কাশন করুনবাল্ক ক্যাপাবিলিটি চেক স্ক্রিপ্ট ( ডাউনলোড করতে সাইন ইন করুন )।
  2. README-তে দেওয়া ধাপগুলো অনুসরণ করুন।

একসাথে অনেকগুলো সক্ষমতা যাচাই করুন

একসাথে অনেকগুলো চেক করার জন্য এই ধাপগুলো অনুসরণ করুন:

  1. টার্মিনালে স্ক্রিপ্টটির রুট ডিরেক্টরিতে যান।
  2. নিম্নলিখিত কমান্ডগুলো চালান:

    export MAVEN_OPTS="-Xms1024m -Xmx3000m"
    mvn compile && mvn exec:java -Dexec.args="AGENT_ID INPUT_FILE OUTPUT_FILE NUM_OF_THREADS START_INDEX END_INDEX"

    আপনার চিহ্নিত করা মানগুলো দিয়ে ভেরিয়েবলগুলো প্রতিস্থাপন করুন।

    প্রতিস্থাপন করুন সাথে উদাহরণ
    AGENT_ID আরসিএস ফর বিজনেস এজেন্টের আইডি। welcome-bot
    INPUT_FILE ইনপুট CSV ফাইলের পথ। input.csv
    OUTPUT_FILE আউটপুট CSV ফাইলের পথ। output.csv
    NUM_OF_THREADS সক্ষমতা যাচাইয়ের জন্য বরাদ্দকৃত থ্রেডের সংখ্যা। 500
    START_INDEX ঐচ্ছিক। যে মানটির ভিত্তিতে যাচাই শুরু করা হবে, সেটি CSV ফাইলের অন্তর্ভুক্ত থাকবে। 5
    END_INDEX ঐচ্ছিক। যে মানটির পরে যাচাই প্রক্রিয়া শেষ হবে, সেটি CSV ফাইলে থাকবে। 500
  3. স্ক্রিপ্টটি সম্পন্ন হলে, ফলাফল দেখার জন্য আউটপুট CSV ফাইলটি খুলুন।