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

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

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

ডিভাইসের ক্ষমতা পরীক্ষা করুন

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

সিআরএল

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 নিষ্ক্রিয় করা থাকে, অথবা সিম কার্ডটি অব্যবহৃত থাকে, তাহলে RCS পরিষেবাটি এখনও 31 দিন পর্যন্ত পূর্ববর্তী সংশ্লিষ্ট ডিভাইসে বার্তা সরবরাহ করার চেষ্টা করবে।

404 ত্রুটির কারণ এখানে দেওয়া হল:

  • RBM ব্যবহারকারীর সাথে যোগাযোগ করতে পারবে না—যেমন, যদি তাদের ডিভাইস RCS সমর্থন না করে।

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

অফলাইন সারিবদ্ধকরণ

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

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

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

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

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

মোট ব্যবহারকারীর সংখ্যা অনুমান করুন

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

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

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

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

র‍্যান্ডম স্যাম্পলিং এর হিসাব

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

একটি বাল্ক সক্ষমতা পরীক্ষা পাঠান

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

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

সিআরএল

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 ব্যবহার করে।

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

পূর্বশর্ত

বাল্ক ক্যাপাবিলিটি চেক করার জন্য টুলটি ব্যবহার করার আগে, নিম্নলিখিতগুলি জেনে নিন:

  • 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 ব্যবসার জন্য RCS এজেন্টের আইডি। 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 ফাইলটি খুলুন।