आपका सेंड रिक्वेस्ट प्राप्तकर्ता के फ़ोन पर कुछ भी पहुँचने से पहले सफल हो सकता है। बाद में एक कैरियर रिपोर्ट एक और परिणाम देती है, जिसे आपके एप्लिकेशन को रिक्वेस्ट स्वीकृति से अलग संभालना होगा।
डिलीवरी रसीद मुझे क्या बताती है?
रसीद नेटवर्क के दृष्टिकोण से डिलीवरी की सफलता या डिलीवरी की समस्या की रिपोर्ट करती है।
SMS का डिलीवरी परिणाम तब भी आ सकता है जब फ़ोन बिना पढ़ा हुआ दराज़ में पड़ा हो। यह सिद्ध नहीं करता कि प्राप्तकर्ता ने भेजने वाले की पहचान देखी। यह यह भी सिद्ध नहीं करता कि उन्होंने पूरा टेक्स्ट पढ़ा।
नेटवर्क रसीदें सेंड रिक्वेस्ट के रिस्पॉन्स से अलग भेजता है। यह कुछ रिपोर्ट दबा भी सकता है। SMPP रसीद संदर्भ कैरियर कनेक्शन के लिए इन नियंत्रणों का दस्तावेज़ीकरण करता है।
Bird कौन-सी कैरियर रसीदें उजागर करता है?
आपको पहचाने गए डिलीवरी परिणामों के लिए सार्वजनिक इवेंट मिलते हैं। बफ़र्ड रसीदें आंतरिक रहती हैं।
बफ़र्ड रसीद बताती है कि कैरियर मैसेज को होल्ड कर रहा है। Bird इसे सार्वजनिक मैसेज स्टेटस बदले बिना अपने आंतरिक इवेंट लॉग में रिकॉर्ड करता है। आपको सार्वजनिक टाइमलाइन या आपके webhooks में कोई अपडेट नहीं दिखता।
| कैरियर रसीद स्टेटस | Bird इवेंट |
|---|---|
delivered | sms.delivered |
expired | sms.expired |
rejected | sms.rejected |
delivery_failed पुनर्प्राप्त करने योग्य कारण के साथ | sms.undelivered |
delivery_failed स्थायी या अनमैप्ड कारण के साथ | sms.failed |
buffered | कोई सार्वजनिक इवेंट नहीं |
अपरिचित कैरियर स्टेटस कोई इवेंट उत्पन्न नहीं करता। इसलिए सार्वजनिक अपडेट का न होना यह सिद्ध नहीं करता कि कैरियर ने कोई रसीद नहीं भेजी।
एक विफलता स्टेटस अलग-अलग इवेंट क्यों उत्पन्न करता है?
Bird कैरियर के विफलता कारण का उपयोग यह तय करने के लिए करता है कि अंतर्निहित समस्या हल हो सकती है या नहीं।
| कैरियर कारण | Bird error code | वर्गीकरण |
|---|---|---|
unavailable_subscriber | unreachable | पुनर्प्राप्त करने योग्य |
received_network_error | provider_unavailable | पुनर्प्राप्त करने योग्य |
capacity_limit_reached | provider_unavailable | पुनर्प्राप्त करने योग्य |
unknown_subscriber | invalid_destination | स्थायी |
opted_out | recipient_opted_out | स्थायी |
carrier_rejected | content_rejected | स्थायी |
पुनर्प्राप्त करने योग्य विफलता sms.undelivered उत्पन्न करती है। मैसेज फिर भी अंतिम होता है: Bird स्वचालित रूप से फिर से प्रयास नहीं करता। प्राप्तकर्ता तक पहुँचने के लिए अंतर्निहित समस्या हल होने के बाद एक और सेंड की आवश्यकता होती है।
स्थायी विफलता sms.failed उत्पन्न करती है। अनमैप्ड कारण भी error code unknown के साथ वही इवेंट उत्पन्न करता है। इस परिणाम का अर्थ है कि Bird कैरियर के कारण को वर्गीकृत नहीं कर सका। यह स्वतंत्र रूप से यह सिद्ध नहीं करता कि गंतव्य स्थायी रूप से अगम्य है।
क्या मैं सेट कर सकता/सकती हूँ कि कैरियर कब प्रयास करना बंद करे?
आप Bird के सेंड endpoint के ज़रिए कैरियर की डिलीवरी समय-सीमा सेट नहीं कर सकते।
Bird किसी भी दिए गए validity_period को HTTP 422 SMSUnsupportedFeature के साथ अस्वीकार करता है। वह फ़ील्ड नियंत्रित करता कि कैरियर टेक्स्ट डिलीवर करने का प्रयास कितनी देर तक जारी रखे।
संबंधित रिस्पॉन्स फ़ील्ड नहीं लौटाया जाता। Bird तब sms.expired उत्पन्न करता है जब कैरियर समाप्ति की रिपोर्ट करता है। आपका एप्लिकेशन अनुपस्थित फ़ील्ड से कैरियर की प्रतीक्षा अवधि का अनुमान नहीं लगा सकता।
मुझे अपने एप्लिकेशन में रसीदों को कैसे संभालना चाहिए?
आपको डिलीवरी परिणामों को रिक्वेस्ट स्वीकृति और प्राप्तकर्ता द्वारा की गई किसी भी कार्रवाई से अलग ट्रैक करना चाहिए।
अंतिम डिलीवरी परिणाम के बिना किसी मैसेज को पेंडिंग मानें। विफलता इवेंट के साथ error code पढ़ें ताकि आप उसका कारण जाँच सकें। अपरिचित कोड अपने लॉग में संरक्षित रखें क्योंकि error-code सेट विस्तार योग्य है।
डिलीवरी मेट्रिक के लिए delivered इवेंट का उपयोग करें। सत्यापन कोड या पुष्टि फ़्लो के लिए, सफलता तब रिकॉर्ड करें जब प्राप्तकर्ता कार्रवाई पूरी करे। अकेली डिलीवरी रसीद वह माप प्रदान नहीं कर सकती।
SMS इवेंट सार्वजनिक इवेंट पेलोड और मैसेज टाइमलाइन का दस्तावेज़ीकरण करता है।
संक्षेप में
डिलीवरी पढ़ा जाना सिद्ध नहीं करती।
रसीद नेटवर्क के डिलीवरी परिणाम की रिपोर्ट करती है, इसकी पुष्टि किए बिना कि किसी व्यक्ति ने टेक्स्ट देखा।
कुछ रसीदों का कोई सार्वजनिक इवेंट नहीं होता।
Bird बफ़र्ड रसीदों को सार्वजनिक स्टेटस, टाइमलाइन या webhook स्ट्रीम बदले बिना आंतरिक रूप से रिकॉर्ड करता है।
कारण विफलता इवेंट निर्धारित करता है।
पुनर्प्राप्त करने योग्य कैरियर कारण sms.undelivered उत्पन्न करते हैं; स्थायी या अनमैप्ड कारण sms.failed उत्पन्न करते हैं।
पुनर्प्राप्त करने योग्य कारण दोबारा भेजना ट्रिगर नहीं करता।
अनडिलीवर्ड मैसेज अंतिम होता है, इसलिए दोबारा प्रयास के लिए एक अलग सेंड की आवश्यकता होती है।