यह देखने के लिए कि किसी उपयोगकर्ता का डिवाइस आरसीएस की सुविधा के साथ काम करता है या नहीं और वह 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" ] }
अनुरोध के जवाब में, कोई रिस्पॉन्स या गड़बड़ी दिखती है.
अगर MSISDN (फ़ोन नंबर) पिछले 31 दिनों में आरसीएस सेवा से कनेक्ट हुआ है, तो सिर्फ़ उस मामले में, सही जवाब मिलता है. इसका मतलब है कि उपयोगकर्ता के डिवाइस ने उस समयावधि में हमारे आरसीएस सर्वर से कनेक्ट किया है. ऑनलाइन और आरसीएस की सुविधा वाले डिवाइस, औसतन हर एक से चार घंटे में कनेक्ट होते हैं.
अगर कोई उपयोगकर्ता अपना सिम कार्ड, आरसीएस की सुविधा वाले किसी दूसरे डिवाइस में डालता है, तो पहले डिवाइस का कनेक्शन हट जाता है और नया कनेक्शन बन जाता है. इससे आरसीएस सेवा में डिवाइस की क्षमताओं की जानकारी अपडेट हो जाती है.
अगर किसी डिवाइस में ऐसा सिम कार्ड डाला जाता है जिसके लिए, मोबाइल और इंटरनेट सेवा देने वाली कंपनी या डिवाइस बनाने वाली कंपनी ने आरसीएस की सुविधा बंद कर दी है या सिम कार्ड का इस्तेमाल नहीं किया जाता है, तो भी आरसीएस सेवा, पहले से कनेक्ट किए गए डिवाइस पर 31 दिनों तक मैसेज भेजने की कोशिश करती रहेगी.
404 कोड वाली गड़बड़ियां इन वजहों से होती हैं:
RBM के ज़रिए उपयोगकर्ता से संपर्क नहीं किया जा सकता. उदाहरण के लिए, अगर उसके डिवाइस पर आरसीएस की सुविधा काम नहीं करती है.
उपयोगकर्ता के पास आरसीएस की सुविधा है, लेकिन आपका एजेंट उसके मोबाइल नेटवर्क पर लॉन्च नहीं किया गया है.
ऑफ़लाइन क्यूइंग
मैसेज 31 दिनों तक क्यू में रहते हैं और डिवाइस के ऑनलाइन होने पर डिलीवर हो जाते हैं. इसका मतलब है कि अगर कोई डिवाइस लंबे समय (31 दिनों तक) के लिए ऑफ़लाइन रहता है, तो भी कनेक्ट होने पर क्यू में मौजूद मैसेज डिलीवर हो जाएंगे. हालांकि, इसके लिए ज़रूरी है कि MSISDN पिछले 31 दिनों में आरसीएस सेवा से कनेक्ट हुआ हो.
डिवाइस की क्षमताओं की एक साथ जांच करना
RCS for Business के ऐसे उपयोगकर्ताओं की संख्या का अनुमान लगाने के लिए जिनसे संपर्क किया जा सकता है, डिवाइस की क्षमताओं की एक साथ जांच करें. एक साथ की जाने वाली जांचों से यह पता चलता है कि किसी फ़ोन नंबर से संपर्क किया जा सकता है या नहीं. हालांकि, इससे यह पता नहीं चलता कि कोई फ़ोन नंबर किन सुविधाओं के साथ काम करता है.
डिवाइस की क्षमताओं की एक साथ जांच करने के लिए, आपको एक ही भौगोलिक इलाके के 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); });
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"));
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'])
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, JSON फ़ॉर्मैट में जवाब दिखाता है.
{
"reachableUsers": [
"PHONE_NUMBER"
],
"totalRandomSampleUserCount": "COUNT_OF_SAMPLE",
"reachableRandomSampleUserCount": "REACHABLE_FROM_SAMPLE"
}| फ़ील्ड | ब्यौरा |
|---|---|
reachableUsers
|
उन उपयोगकर्ताओं की सूची जिनसे एजेंट को लॉन्च करने वाली मोबाइल और इंटरनेट सेवा देने वाली कंपनियों के नेटवर्क पर संपर्क किया जा सकता है. |
totalRandomSampleUserCount
|
दिए गए नंबरों के रैंडम सैंपल की संख्या. आम तौर पर, दिए गए नंबरों का ~75%. |
reachableRandomSampleUserCount
|
रैंडम सैंपल में शामिल उन नंबरों की संख्या जिनसे RBM के ज़रिए, सभी मोबाइल और इंटरनेट सेवा देने वाली कंपनियों के नेटवर्क पर संपर्क किया जा सकता है. यह जानकारी, इस बात पर निर्भर नहीं करती कि एजेंट को किन मोबाइल और इंटरनेट सेवा देने वाली कंपनियों के नेटवर्क पर लॉन्च किया गया है. इस संख्या का इस्तेमाल, सभी मोबाइल और इंटरनेट सेवा देने वाली कंपनियों के नेटवर्क पर, ऐसे उपयोगकर्ताओं की कुल संख्या का अनुमान लगाने के लिए किया जाता है जिनसे संपर्क किया जा सकता है. |
reachableUsersMap
|
सिर्फ़ आउटपुट के लिए. मोबाइल और इंटरनेट सेवा देने वाली कंपनी के आईडी से, उस कंपनी के नेटवर्क पर, ऐसे उपयोगकर्ताओं की सूची का मैप जिनसे संपर्क किया जा सकता है. यह फ़ील्ड, सिर्फ़ अमेरिका के फ़ोन नंबरों के लिए भरा जाता है. |
टूल: डिवाइस की क्षमताओं की एक साथ जांच करने वाली स्क्रिप्ट
डिवाइस की क्षमताओं की एक साथ जांच करने वाली स्क्रिप्ट डिवाइस की क्षमताओं की एक साथ जांच करने वाली स्क्रिप्ट (डाउनलोड करने के लिए साइन इन करें) , इनपुट और आउटपुट फ़ॉर्मैट के तौर पर CSV फ़ाइलों का इस्तेमाल करके, डिवाइस की क्षमताओं की एक साथ जांच करती है. यह स्क्रिप्ट, MSISDN की CSV फ़ाइल को पार्स करती है और सूची में शामिल हर डिवाइस की क्षमताओं की जांच करने के लिए, RBM SDK का इस्तेमाल करती है.
दो सीपीयू और चार जीबी रैम वाली वर्चुअल मशीन, 500 थ्रेड के साथ स्क्रिप्ट चलाकर, करीब 1K QPS तक पहुंच सकती है. हालांकि, कुल QPS, इस्तेमाल की गई मशीन, डिवाइसों के देश, आपके एजेंट के इलाके के हिसाब से कॉन्फ़िगरेशन, और इस्तेमाल किए गए एपीआई एंडपॉइंट पर निर्भर करता है.
ज़रूरी शर्तें
डिवाइस की क्षमताओं की एक साथ जांच करने के लिए, टूल का इस्तेमाल करने से पहले, यह जानकारी पाएं:
- MSISDN वाली CSV फ़ाइल का पाथ, ताकि डिवाइस की क्षमताओं की जांच की जा सके
- डेवलपमेंट मशीन पर, आपके एजेंट के सेवा खाते की कुंजी का पाथ
इसके अलावा, आपकी डेवलपमेंट मशीन पर यह सॉफ़्टवेयर इंस्टॉल होना चाहिए:
- Apache Maven 3.3.9 या इससे नया वर्शन
- Java 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 for Business एजेंट का आईडी. welcome-botINPUT_FILE इनपुट CSV फ़ाइल का पाथ. input.csvOUTPUT_FILE आउटपुट CSV फ़ाइल का पाथ. output.csvNUM_OF_THREADS डिवाइस की क्षमताओं की जांच के लिए, थ्रेड की संख्या. 500START_INDEX ज़रूरी नहीं. CSV फ़ाइल में वह वैल्यू जिससे जांच शुरू करनी है. 5END_INDEX ज़रूरी नहीं. CSV फ़ाइल में वह वैल्यू जिसके बाद जांच बंद करनी है. 500स्क्रिप्ट पूरी होने के बाद, नतीजे देखने के लिए आउटपुट CSV फ़ाइल खोलें.