क्षमता की जांच

यह देखने के लिए कि किसी उपयोगकर्ता का डिवाइस आरसीएस की सुविधा के साथ काम करता है या नहीं और वह 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`"

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);
});
यह कोड, RBM के सैंपल एजेंट से लिया गया है.

Java

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 के सैंपल एजेंट से लिया गया है.

Python

# 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 के सैंपल एजेंट से लिया गया है.

C#

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 (फ़ोन नंबर) पिछले 31 दिनों में आरसीएस सेवा से कनेक्ट हुआ है, तो सिर्फ़ उस मामले में, डिवाइस की क्षमताओं की जांच करने का जवाब मिलता है. इसका मतलब है कि उपयोगकर्ता के डिवाइस ने उस समयावधि में हमारे आरसीएस सर्वर से कनेक्ट किया है. ऑनलाइन और आरसीएस की सुविधा के साथ काम करने वाले डिवाइस, औसतन हर एक से चार घंटे में कनेक्ट होते हैं.

अगर कोई उपयोगकर्ता अपना सिम कार्ड, आरसीएस की सुविधा के साथ काम करने वाले किसी दूसरे डिवाइस में डालता है, तो पहले डिवाइस के साथ सिम कार्ड का कनेक्शन हट जाता है. साथ ही, नया कनेक्शन बन जाता है. इससे आरसीएस सेवा में डिवाइस की क्षमताओं की जानकारी अपडेट हो जाती है.

अगर किसी डिवाइस में ऐसा सिम कार्ड डाला जाता है जिसके लिए कैरियर या मैन्युफ़ैक्चरर ने आरसीएस की सुविधा बंद कर दी है या सिम कार्ड का इस्तेमाल नहीं किया जाता है, तो भी आरसीएस सेवा, पहले से कनेक्ट किए गए डिवाइस पर 31 दिनों तक मैसेज भेजने की कोशिश करती रहेगी.

404 कोड वाली गड़बड़ियां इन वजहों से होती हैं:

  • RBM के ज़रिए उपयोगकर्ता से संपर्क नहीं किया जा सकता. उदाहरण के लिए, अगर उसके डिवाइस पर आरसीएस की सुविधा काम नहीं करती है.

  • उपयोगकर्ता के पास आरसीएस की सुविधा है, लेकिन आपके एजेंट को उसके मोबाइल नेटवर्क पर लॉन्च नहीं किया गया है.

ऑफ़लाइन क्यूइंग

मैसेज 31 दिनों तक क्यू में रहते हैं और डिवाइस के वापस ऑनलाइन आने पर डिलीवर हो जाते हैं. इसका मतलब है कि अगर कोई डिवाइस लंबे समय (31 दिनों तक) के लिए ऑफ़लाइन रहता है, तो भी क्यू में मौजूद मैसेज, वापस कनेक्ट होने पर डिलीवर हो जाएंगे. हालांकि, इसके लिए ज़रूरी है कि MSISDN पिछले 31 दिनों में आरसीएस सेवा से कनेक्ट हुआ हो.

एक साथ कई डिवाइसों की क्षमताओं की जांच करना

RBM के ज़रिए संपर्क किए जा सकने वाले उपयोगकर्ताओं की संख्या का अनुमान लगाने के लिए, एक साथ कई डिवाइसों की क्षमताओं की जांच करें. एक साथ कई डिवाइसों की क्षमताओं की जांच करने से यह पता चलता है कि किसी फ़ोन नंबर से संपर्क किया जा सकता है या नहीं. हालांकि, इससे यह पता नहीं चलता कि कोई फ़ोन नंबर किन सुविधाओं के साथ काम करता है.

एक साथ कई डिवाइसों की क्षमताओं की जांच करने के लिए, आपको 500 से 10,000 यूनीक फ़ोन नंबर देने होंगे. ज़्यादा नंबरों की जांच करने के लिए, एक साथ कई डिवाइसों की क्षमताओं की जांच करने का अनुरोध कई बार सबमिट करें. हर मिनट में ज़्यादा से ज़्यादा 600 कॉल किए जा सकते हैं. इनपुट फ़ॉर्मैट के तौर पर CSV फ़ाइलों का इस्तेमाल करने के लिए, एक साथ कई डिवाइसों की क्षमताओं की जांच करने वाली स्क्रिप्ट का इस्तेमाल करें. एक साथ कई डिवाइसों की क्षमताओं की जांच करने के लिए, क्षमताओं के कैश से डेटा पढ़ा जाता है. यह कैश, आरसीएस का इस्तेमाल करने वाले क्लाइंट अपने-आप अपडेट करते हैं. एजेंट, हर डिवाइस की क्षमताओं के बारे में सीधे तौर पर अनुरोध नहीं करते. इस वजह से, नतीजे मौजूदा नहीं हो सकते.

एक साथ कई डिवाइसों की क्षमताओं की जांच करने पर, उन नंबरों की सूची मिलती है जिनसे आपका एजेंट, उन कैरियर पर संपर्क कर सकता है जहां उसे लॉन्च किया गया है. इसके अलावा, सभी कैरियर पर संपर्क किए जा सकने वाले उपयोगकर्ताओं की कुल संख्या का अनुमान भी मिलता है. एक साथ कई डिवाइसों की क्षमताओं की जांच करने के जवाब के बारे में जानें.

संपर्क किए जा सकने वाले उपयोगकर्ताओं की कुल संख्या का अनुमान लगाना

एक साथ कई डिवाइसों की क्षमताओं की जांच करने के जवाब में, उन फ़ोन नंबरों की सूची शामिल होती है जिनसे आपके एजेंट को लॉन्च करने वाले कैरियर पर तुरंत संपर्क किया जा सकता है (reachableUsers). इसके अलावा, जवाब में दो ऐसी वैल्यू भी शामिल होती हैं जिनसे सभी कैरियर पर संपर्क किए जा सकने वाले उपयोगकर्ताओं की कुल संख्या का अनुमान लगाया जा सकता है.

यह कैसे काम करता है

जब आपका एजेंट, एक साथ कई डिवाइसों की क्षमताओं की जांच करता है, तो RBM उन नंबरों में से ~75% नंबरों का रैंडम सैंपल लेता है, ताकि सभी कैरियर की जांच की जा सके. इसकी जानकारी totalRandomSampleUserCount में दिखती है. RBM, रैंडम सैंपल में से उन नंबरों की संख्या भी दिखाता है जिनसे RBM के ज़रिए संपर्क किया जा सकता है. यह जानकारी, कैरियर के लॉन्च स्टेटस (reachableRandomSampleUserCount) के बावजूद दिखती है. reachableRandomSampleUserCount को totalRandomSampleUserCount से भाग देकर, यह अनुमान लगाया जा सकता है कि अगर आपका एजेंट सभी कैरियर पर लॉन्च किया जाता, तो वह कितने नंबरों से संपर्क कर पाता.

उदाहरण के लिए, अगर एक साथ कई डिवाइसों की क्षमताओं की जांच करने के लिए 5,000 फ़ोन नंबर दिए जाते हैं और RBM, दिए गए नंबरों में से ~75% नंबरों का रैंडम सैंपल लेता है, तो totalRandomSampleUserCount की वैल्यू 3750 हो सकती है. अगर reachableRandomSampleUserCount की वैल्यू 3000 है, तो सैंपल लिए गए 80% नंबरों से संपर्क किया जा सकता है.

रैंडम सैंपलिंग के बारे में जानकारी

रैंडम सैंपल की जांच करने पर, प्रतिशत में अंतर आ सकता है. रैंडम सैंपलिंग के असर को समझने के लिए, ज़्यादा फ़ोन नंबरों के साथ एक साथ कई डिवाइसों की क्षमताओं की जांच करें. इसके अलावा, नंबरों के एक ही बैच के साथ कई बार जांच की जा सकती है. इसके बाद, रैंडम सैंपलिंग के असर को कम करने के लिए, नतीजों का औसत निकाला जा सकता है.

एक साथ कई डिवाइसों की क्षमताओं की जांच करने का अनुरोध भेजना

यहां दिया गया कोड, एक साथ कई डिवाइसों की क्षमताओं की जांच करने का अनुरोध भेजता है और जवाब का इंतज़ार करता है. फ़ॉर्मैटिंग और वैल्यू के विकल्पों के लिए, देखें users.batchGet.

फ़ोन नंबर E.164 फ़ॉर्मैट में होने चाहिए. उदाहरण के लिए, "+12223334444". साथ ही, सूची में 500 से 10,000 यूनीक फ़ोन नंबर होने चाहिए.

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);
});
इस कोड में, RBM के सैंपल एजेंट का इस्तेमाल किया गया है.

Java

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 के सैंपल एजेंट का इस्तेमाल किया गया है.

Python

# 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 के सैंपल एजेंट का इस्तेमाल किया गया है.

C#

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 दिए गए नंबरों के रैंडम सैंपल की संख्या. आम तौर पर, दिए गए नंबरों का ~75%.
reachableRandomSampleUserCount रैंडम सैंपल में मौजूद उन नंबरों की संख्या जिनसे RBM के ज़रिए सभी कैरियर पर संपर्क किया जा सकता है. भले ही, एजेंट को किन कैरियर पर लॉन्च किया गया हो. इस संख्या का इस्तेमाल, सभी कैरियर पर संपर्क किए जा सकने वाले उपयोगकर्ताओं की कुल संख्या का अनुमान लगाने के लिए किया जाता है.
reachableUsersMap सिर्फ़ आउटपुट के लिए. कैरियर आईडी से उस कैरियर पर संपर्क किए जा सकने वाले उपयोगकर्ताओं की सूची का मैप. यह फ़ील्ड, सिर्फ़ अमेरिका के फ़ोन नंबरों के लिए भरा जाता है.

टूल: एक साथ कई डिवाइसों की क्षमताओं की जांच करने वाली स्क्रिप्ट

The Buck Capability Check Script (Sign in to download) एक साथ कई डिवाइसों की क्षमताओं की जांच करने के लिए, इनपुट और आउटपुट फ़ॉर्मैट के तौर पर CSV फ़ाइलों का इस्तेमाल करती है. यह स्क्रिप्ट, MSISDN की CSV फ़ाइल को पार्स करती है और सूची में शामिल हर डिवाइस की क्षमताओं की जांच करने के लिए, RBM SDK का इस्तेमाल करती है.

दो सीपीयू और चार जीबी रैम वाली वर्चुअल मशीन, 500 थ्रेड के साथ स्क्रिप्ट चलाकर, करीब 1K QPS तक पहुंच सकती है. हालांकि, कुल QPS, इस्तेमाल की गई मशीन, डिवाइसों के देश, आपके एजेंट के रीजनल कॉन्फ़िगरेशन, और इस्तेमाल किए गए एपीआई एंडपॉइंट पर निर्भर करता है.

ज़रूरी शर्तें

एक साथ कई डिवाइसों की क्षमताओं की जांच करने के लिए, टूल का इस्तेमाल करने से पहले, यह जानकारी पाएं:

  • MSISDN वाली CSV फ़ाइल का पाथ, ताकि क्षमताओं की जांच की जा सके
  • डेवलपमेंट मशीन पर, आपके एजेंट के सेवा खाते की कुंजी का पाथ

इसके अलावा, आपकी डेवलपमेंट मशीन पर यह सॉफ़्टवेयर इंस्टॉल होना चाहिए:

सेट अप करना

एक साथ कई डिवाइसों की क्षमताओं की जांच करने के लिए, अपनी डेवलपमेंट मशीन को सेट अप करने के लिए, यह तरीका अपनाएं:

  1. Bulk Capability Check Script (Sign in to download).
  2. रीडमी में दिए गए निर्देशों का पालन करें.

एक साथ कई डिवाइसों की क्षमताओं की जांच करना

एक साथ कई डिवाइसों की क्षमताओं की जांच करने के लिए, यह तरीका अपनाएं:

  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 for Business एजेंट का आईडी. 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 फ़ाइल खोलें.