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

यह देखने के लिए कि किसी उपयोगकर्ता के डिवाइस पर आरसीएस की सुविधा चालू है या नहीं और वह 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);
});
यह कोड, आरबीएम के सैंपल एजेंट से लिया गया है.

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");
यह कोड, आरबीएम के सैंपल एजेंट से लिया गया है.

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')
यह कोड, आरबीएम के सैंपल एजेंट से लिया गया है.

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 प्लैटफ़ॉर्म, 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"
  ]
}

अनुरोध के जवाब में, कोई रिस्पॉन्स या गड़बड़ी का मैसेज मिलता है.

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

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

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

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

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

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

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

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

एक साथ कई खातों की पुष्टि करने की सुविधा

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

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

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

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

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

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

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

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

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

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

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

एक साथ कई नंबरों पर सुविधा की उपलब्धता की जांच करने के लिए, इस टूल का इस्तेमाल करने से पहले, यह जानकारी इकट्ठा करें:

  • एमएसआईएसडीएन वाली 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 फ़ाइल खोलें.