برای بررسی اینکه آیا دستگاه کاربر دارای RCS فعال است و میتواند با یک عامل RBM ارتباط برقرار کند، میتوانید قابلیتهای دستگاه را درخواست کنید. شناسایی ویژگیهایی که یک دستگاه در صورت وجود پشتیبانی میکند، به نماینده شما اجازه میدهد مکالمه را مطابق با قابلیتهای دستگاه تنظیم کند و از ارائه تعاملاتی که انجام آن برای کاربر دشوار یا غیرممکن است، اجتناب کند.
اگر دستگاه کاربر به هیچ وجه قادر به دریافت پیامهای RCS نیست، میتوانید از طریق سرویسهای دیگری مانند SMS/MMS با کاربر ارتباط برقرار کنید.
قابلیت های دستگاه را بررسی کنید
کد زیر یک بررسی قابلیت ارسال می کند و منتظر پاسخ می ماند. برای گزینههای قالببندی و مقدار، به 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`"
Node.js
// 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); });
جاوا
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");
پایتون
# 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')
سی شارپ
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 فهرستی با فرمت 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", "ACTION_COMPOSE", ] }
درخواست یا یک پاسخ یا یک خطا را برمی گرداند.
تنها در صورتی که MSISDN (شماره تلفن) در 31 روز گذشته به سرویس RCS متصل شده باشد، پاسخ موفقیت آمیز برگردانده می شود. این بدان معناست که دستگاه کاربر در آن بازه زمانی با سرور RCS ما بررسی شده است. دستگاه های آنلاین و دارای RCS به طور متوسط هر 1 تا 4 ساعت یکبار بررسی می شوند.
اگر کاربر سیم کارت خود را به دستگاه دیگری با قابلیت RCS منتقل کند، ارتباط دستگاه قبلی حذف میشود و سیم کارت جدیدی ایجاد میشود که قابلیتهای دستگاه را در سرویس RCS بهروزرسانی میکند.
اگر یک سیم کارت در دستگاهی قرار داده شود که RCS توسط شرکت مخابراتی یا سازنده آن غیرفعال شده باشد، یا سیم کارت استفاده نشده باقی بماند، سرویس RCS همچنان تا 31 روز تلاش میکند پیامها را به دستگاه مرتبط قبلی تحویل دهد.
در اینجا دلایل ایجاد خطاهای 404 آمده است:
کاربر از طریق RBM قابل دسترسی نیست – برای مثال، اگر دستگاه او از RCS پشتیبانی نمی کند.
کاربر دارای RCS است، اما نماینده شما در شبکه تلفن همراه او راه اندازی نشده است.
صف آفلاین
پیامها تا 31 روز در صف قرار میگیرند و پس از آنلاین شدن دستگاه تحویل داده میشوند. این بدان معناست که حتی اگر دستگاهی برای مدت طولانی (تا 31 روز) آفلاین شود، پیامهای در صف همچنان پس از اتصال مجدد تحویل داده میشوند، تا زمانی که MSISDN در 31 روز گذشته به سرویس RCS متصل شده باشد.
بررسی قابلیت انبوه
برای تخمین تعداد کاربران قابل دسترسی RBM، یک بررسی قابلیت انبوه انجام دهید. بررسیهای انبوه نشان میدهد که آیا شماره تلفن قابل دسترسی است یا خیر، اما نه ویژگیهایی که شماره تلفن پشتیبانی میکند.
برای هر بررسی قابلیت انبوه، باید 500 تا 10000 شماره تلفن منحصر به فرد ارائه دهید. برای بررسی اعداد بیشتر، چندین بررسی انجام دهید. می توانید تا 600 تماس در دقیقه برقرار کنید. از اسکریپت بررسی قابلیت انبوه برای استفاده از فایل های CSV به عنوان فرمت ورودی استفاده کنید. چکهای انبوه از حافظه پنهان قابلیتها خوانده میشود، که توسط مشتریان بهطور ارگانیک با استفاده از RCS بهروزرسانی میشود. نمایندگی ها قابلیت های هر دستگاه را مستقیما درخواست نمی کنند. به همین دلیل، نتایج ممکن است فعلی نباشند.
بررسیهای قابلیت انبوه فهرستی از اعدادی را که نماینده شما میتواند در شرکتهای مخابراتی که در آن راهاندازی میشود به دست آورد، و همچنین تخمینهایی برای تعداد کل کاربران قابل دسترسی در همه شرکتهای مخابراتی ارائه میدهد. پاسخ بررسی قابلیت انبوه را ببینید.
تعداد کل کاربران قابل دسترسی را تخمین بزنید
در حالی که پاسخهای بررسی انبوه شامل فهرستی از شمارههای تلفنی است که بلافاصله در شرکتهای مخابراتی راهاندازی شده توسط نماینده شما قابل دسترسی هستند ( reachableUsers
)، پاسخها همچنین شامل دو مقدار است که میتواند به شما کمک کند تعداد کل کاربران قابل دسترسی را در همه شرکتهای مخابراتی تخمین بزنید.
چگونه کار می کند
هنگامی که نماینده شما یک بررسی انبوه قابلیت انجام میدهد، RBM بهطور تصادفی 75٪ از آن اعداد را برای بررسی همه حاملها نمونهبرداری میکند (گزارششده در totalRandomSampleUserCount
). RBM همچنین تعداد اعداد قابل دسترسی RBM را از نمونه تصادفی، بدون توجه به وضعیت راهاندازی شرکت مخابراتی ( reachableRandomSampleUserCount
) برمیگرداند. با تقسیم reachableRandomSampleUserCount
بر totalRandomSampleUserCount
، میتوانید درصد اعدادی را تخمین بزنید که نماینده شما در صورت راهاندازی در همه شرکتهای مخابراتی میتواند به آن برسد.
برای مثال، اگر 5000 شماره تلفن را در بررسی قابلیت انبوه مشخص کنید، و RBM به طور تصادفی 75٪ از اعداد مشخص شده را نمونه برداری کند، totalRandomSampleUserCount
ممکن است 3750
باشد. اگر reachableRandomSampleUserCount
3000
باشد، 80٪ از اعداد نمونه قابل دسترسی هستند.
برای نمونه گیری تصادفی حساب کنید
آزمایش نمونه های تصادفی می تواند منجر به واریانس در درصد شود. برای در نظر گرفتن اثرات نمونهگیری تصادفی، بررسیهای انبوه قابلیت را با تعداد بیشتری شماره تلفن انجام دهید. همچنین میتوانید چندین بار با دستههای یکسانی از اعداد بررسی کنید و سپس نتایج را میانگین بگیرید تا رفتار نمونهگیری تصادفی را عادی کنید.
ارسال چک قابلیت انبوه
کد زیر یک بررسی انبوه قابلیت ارسال می کند و منتظر پاسخ می ماند. برای گزینههای قالببندی و مقدار، به users.batchGet
مراجعه کنید.
شماره تلفن باید در قالب E.164 باشد (به عنوان مثال، "12223334444") و لیست باید شامل 500 تا 10000 شماره تلفن منحصر به فرد باشد.
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", ] }'
Node.js
// 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); });
جاوا
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"));
پایتون
# 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'])
سی شارپ
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 پاسخی با فرمت JSON برمیگرداند.
{ "reachableUsers": [ "PHONE_NUMBER" ], "totalRandomSampleUserCount": "COUNT_OF_SAMPLE", "reachableRandomSampleUserCount": "REACHABLE_FROM_SAMPLE" }
میدان | توضیحات |
---|---|
reachableUsers | فهرستی از کاربران قابل دسترسی در اپراتورهای راه اندازی شده توسط نماینده. |
totalRandomSampleUserCount | تعداد نمونه تصادفی از اعداد مشخص شده. به طور معمول ~ 75٪ از اعداد مشخص شده است. |
reachableRandomSampleUserCount | تعداد اعداد نمونه تصادفی که در همه حاملها قابل دسترسی RBM هستند، صرف نظر از اینکه عامل روی کدام حامل راهاندازی شده است. این شمارش برای ارائه یک تخمین تقریبی از تعداد کل کاربران قابل دسترسی در همه شرکتهای مخابراتی استفاده میشود. |
ابزار: اسکریپت بررسی قابلیت انبوه
رااسکریپت بررسی قابلیت Buck ( برای دانلود وارد شوید )بررسی های انبوه قابلیت را با استفاده از فایل های CSV به عنوان فرمت های ورودی و خروجی انجام می دهد. اسکریپت فایل CSV MSISDN ها را تجزیه می کند و از RBM SDK برای بررسی قابلیت های هر دستگاه فهرست شده استفاده می کند.
یک ماشین مجازی با 2 CPU و 4 گیگابایت رم که اسکریپت را با 500 رشته کار میکند میتواند تقریباً به 1K QPS برسد، اما QPS کلی به دستگاه مورد استفاده، کشور دستگاهها، پیکربندی منطقهای عامل شما و نقطه پایانی API مورد استفاده بستگی دارد.
پیش نیازها
قبل از استفاده از ابزار برای انجام بررسی قابلیت انبوه، موارد زیر را دریافت کنید:
- مسیر فایل CSV با MSISDN برای انجام بررسی قابلیت ها
- مسیر کلید حساب سرویس نماینده شما در دستگاه توسعه شما
علاوه بر این، به نرم افزار زیر نیاز دارید که روی دستگاه توسعه خود نصب شده باشد:
- Apache Maven 3.3.9 یا بالاتر
- جاوا 8
راه اندازی کنید
برای راه اندازی ماشین توسعه خود برای بررسی قابلیت انبوه، موارد زیر را انجام دهید:
- دانلود و استخراج کنیداسکریپت بررسی قابلیت انبوه ( برای دانلود وارد شوید ).
- مراحل موجود در README را دنبال کنید.
یک بررسی قابلیت انبوه انجام دهید
برای اجرای چک انبوه، مراحل زیر را دنبال کنید:
- در یک ترمینال، به دایرکتوری ریشه اسکریپت بروید.
دستورات زیر را اجرا کنید:
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
وقتی اسکریپت کامل شد، فایل CSV خروجی را باز کنید تا نتایج را مشاهده کنید.