प्राप्तकर्ता के फ़ोन पर कुछ पहुँचने से पहले ही आपका भेजने का अनुरोध सफल हो सकता है। बाद में आने वाली कैरियर रिपोर्ट एक अलग परिणाम देती है, जिसे आपके एप्लिकेशन को अनुरोध स्वीकार होने से अलग संभालना होगा।
डिलीवरी रसीद मुझे क्या बताती है?
रसीद नेटवर्क की ओर से बताती है कि डिलीवरी सफल रही या उसमें कोई समस्या आई।
SMS डिलीवरी परिणाम तब भी आ सकता है जब फ़ोन बिना पढ़े किसी दराज़ में पड़ा हो। इससे यह साबित नहीं होता कि प्राप्तकर्ता ने भेजने वाले की पहचान देखी। इससे यह भी तय नहीं होता कि उन्होंने पूरा टेक्स्ट पढ़ा।
नेटवर्क रसीदें भेजने के अनुरोध पर अपनी प्रतिक्रिया से अलग भेजता है। वह कुछ रिपोर्टों को रोक भी सकता है। SMPP रसीद संदर्भ कैरियर कनेक्शनों के लिए इन नियंत्रणों का विवरण देता है।
Bird कौन-सी कैरियर रसीदें दिखाता है?
पहचाने गए डिलीवरी परिणामों के लिए आपको सार्वजनिक इवेंट मिलते हैं। बफ़र की गई रसीदें आंतरिक रहती हैं।
बफ़र की गई रसीद बताती है कि कैरियर ने संदेश रोक रखा है। Bird इसे सार्वजनिक संदेश स्थिति बदले बिना अपने आंतरिक इवेंट लॉग में दर्ज करता है। सार्वजनिक टाइमलाइन या आपके वेबहुक में आपको कोई अपडेट नहीं दिखता।
| कैरियर रसीद स्थिति | Bird इवेंट |
|---|---|
delivered | sms.delivered |
expired | sms.expired |
rejected | sms.rejected |
सुधारे जा सकने वाले कारण के साथ delivery_failed | sms.undelivered |
स्थायी या अमैप्ड कारण के साथ delivery_failed | sms.failed |
buffered | कोई सार्वजनिक इवेंट नहीं |
कैरियर का अपरिचित स्टेटस कोई इवेंट नहीं बनाता। इसलिए सार्वजनिक अपडेट न मिलने से यह साबित नहीं होता कि कैरियर ने कोई रसीद नहीं भेजी।
एक ही विफलता स्टेटस अलग-अलग इवेंट क्यों बनाता है?
Bird कैरियर के विफलता कारण से तय करता है कि मूल समस्या दूर हो सकती है या नहीं।
| कैरियर का कारण | Bird त्रुटि कोड | वर्गीकरण |
|---|---|---|
unavailable_subscriber | unreachable | सुधारा जा सकने वाला |
received_network_error | provider_unavailable | सुधारा जा सकने वाला |
capacity_limit_reached | provider_unavailable | सुधारा जा सकने वाला |
unknown_subscriber | invalid_destination | स्थायी |
opted_out | recipient_opted_out | स्थायी |
carrier_rejected | sender_unregistered, content_rejected या blocked_by_carrier | स्थायी |
सुधारी जा सकने वाली विफलता से sms.undelivered बनता है। फिर भी संदेश अंतिम रहता है: Bird उसके लिए अपने-आप फिर से प्रयास नहीं करता। प्राप्तकर्ता तक पहुँचने के लिए मूल समस्या दूर होने के बाद आपको संदेश फिर से भेजना होगा।
स्थायी विफलता से sms.failed बनता है।
SMS पंपिंग एक धोखाधड़ी है, जिसमें हमलावर आपके प्रोडक्ट से अपने नियंत्रण वाले नंबरों पर सशुल्क संदेश भिजवाता है। जब धोखाधड़ी सुरक्षा संदिग्ध पंपिंग को रोकती है, तो Bird blocked_by_fraud_protection रिपोर्ट करता है।
किसी अन्यथा अमैप्ड कारण से sms.failed बनता है, जिसका त्रुटि कोड unknown होता है। इस परिणाम का अर्थ है कि Bird कैरियर के कारण को वर्गीकृत नहीं कर सका। यह अपने आप में साबित नहीं करता कि गंतव्य तक स्थायी रूप से नहीं पहुँचा जा सकता।
क्या मैं तय कर सकता हूँ कि कैरियर कब प्रयास करना बंद करे?
आप validity_period से डिलीवरी की समय-सीमा तय कर सकते हैं। यह 60 से 1,72,800 सेकंड (दो दिन) तक हो सकती है, और उस समय से गिनी जाती है जब Bird संदेश स्वीकार करता है।
उस समय-सीमा के बाद Bird संदेश कैरियर को नहीं सौंपता। जहाँ रूट इसका समर्थन करता है, वहाँ Bird बचा हुआ समय कैरियर को संदेश की वैधता अवधि के रूप में भेजता है। दस मिनट तक वैध सत्यापन कोड के लिए आप इसे 600 पर सेट कर सकते हैं, ताकि जो टेक्स्ट दस मिनट के भीतर कैरियर तक नहीं पहुँचा, वह भेजा ही न जाए।
जो संदेश कैरियर तक पहुँचने से पहले समय-सीमा चूक जाता है, वह rejected या failed पर समाप्त होता है। Bird केवल तब sms.expired बनाता है, जब कोई कैरियर समय-सीमा समाप्त होने की रिपोर्ट देता है।
यदि आप यह फ़ील्ड छोड़ देते हैं, तो messaging_profile_id में मैसेजिंग प्रोफ़ाइल की वैधता अवधि लागू होती है, और यदि दोनों में से कोई इसे सेट नहीं करता, तो कैरियर के अपने नियम लागू होते हैं। संदेश की प्रतिक्रिया बताती है कि कौन-सा validity_period लागू हुआ।
मुझे अपने एप्लिकेशन में रसीदों को कैसे संभालना चाहिए?
डिलीवरी परिणामों को अनुरोध की स्वीकृति से और प्राप्तकर्ता की किसी भी कार्रवाई से अलग ट्रैक करें।
जिस संदेश का अंतिम डिलीवरी परिणाम नहीं आया है, उसे लंबित मानें। विफलता इवेंट के साथ त्रुटि कोड पढ़ें, ताकि आप उसके कारण की जाँच कर सकें। अनजान कोड अपने लॉग में सुरक्षित रखें, क्योंकि त्रुटि कोडों का सेट बढ़ाया जा सकता है।
डिलीवरी मीट्रिक के लिए delivered इवेंट का उपयोग करें। सत्यापन कोड या पुष्टि फ़्लो में सफलता तब दर्ज करें, जब प्राप्तकर्ता कार्रवाई पूरी कर ले। केवल डिलीवरी रसीद से यह माप नहीं मिल सकता।
SMS इवेंट में सार्वजनिक इवेंट पेलोड और संदेश टाइमलाइन का विवरण है।
संक्षेप में
डिलीवरी से यह साबित नहीं होता कि संदेश पढ़ा गया।
रसीद नेटवर्क की डिलीवरी का परिणाम बताती है, पर इसकी पुष्टि नहीं करती कि किसी व्यक्ति ने टेक्स्ट देखा।
कुछ रसीदों के लिए कोई सार्वजनिक इवेंट नहीं होता।
Bird बफ़र की गई रसीदों को आंतरिक रूप से दर्ज करता है, और सार्वजनिक स्टेटस, टाइमलाइन या वेबहुक स्ट्रीम में कोई बदलाव नहीं करता।
कारण से तय होता है कि कौन-सा विफलता इवेंट बनेगा।
सुधारे जा सकने वाले कैरियर कारणों से sms.undelivered बनता है; स्थायी या अमैप्ड कारणों से sms.failed बनता है।
सुधारे जा सकने वाले कारण से संदेश अपने-आप दोबारा नहीं भेजा जाता।
जो संदेश डिलीवर नहीं हुआ, वह अंतिम होता है, इसलिए एक और प्रयास के लिए आपको अलग से भेजना होगा।