SMSC क्या है?

SMSC एक नेटवर्क सेवा है जो टेक्स्ट संदेशों को संग्रहीत करती है और उन्हें डिलीवरी के लिए आगे भेजती है।

भेजने वाले ने टेक्स्ट पहले भेजा हो, तब भी वह फ़ोन के दोबारा जुड़ने के बाद पहुँच सकता है।

स्टोर एंड फ़ॉरवर्ड का क्या मतलब है?

मैसेज सेंटर किसी टेक्स्ट को फ़ोन तक पहुँचाने की कोशिश से पहले उसे सहेज लेता है।

नेटवर्क के स्वीकार कर लेने से यह साबित नहीं होता कि फ़ोन को टेक्स्ट मिल गया। अगर फ़ोन बंद है या पहुँच से बाहर है, तो मैसेज प्रतीक्षा में रह सकता है। फ़ोन के दोबारा जुड़ने पर डिलीवरी का एक और प्रयास संभव होता है। उस प्रयास के लिए मैसेज का पात्र बने रहना ज़रूरी है।

3GPP स्पेसिफ़िकेशन 23.040 में SMS में सेंटर की भूमिका का वर्णन है।

कोई मैसेज कितनी देर प्रतीक्षा कर सकता है?

जब तक मैसेज की डिलीवरी विंडो खुली रहती है, नेटवर्क डिलीवरी के और प्रयास कर सकता है। इस विंडो को उसकी वैधता अवधि कहते हैं।

SMS स्टैंडर्ड भेजने वालों को वैधता अवधि देने की अनुमति देता है। आप इसे अपने प्रोवाइडर के API के ज़रिए सेट कर सकते हैं या नहीं, यह प्रोवाइडर तय करता है।

वह विंडो बंद होने पर डिलीवरी एक्सपायरी के साथ ख़त्म हो सकती है। एक्सपायरी रिपोर्ट का मतलब यह नहीं है कि शुरुआती भेजने का अनुरोध विफल हुआ था।

समय-संवेदी फ़्लो में आपके एप्लिकेशन को अपनी समय-सीमा फिर भी ख़ुद लागू करनी होगी। अगर कोई सत्यापन कोड दस मिनट के लिए वैध है और चार घंटे बाद पहुँचता है, तो आपके सर्वर को उसे अस्वीकार करना होगा। देर से पहुँचा टेक्स्ट उस कार्रवाई की अवधि नहीं बढ़ा सकता जिसके बारे में वह है।

मेरे एप्लिकेशन के सापेक्ष सेंटर कहाँ होता है?

आपका एप्लिकेशन कैरियर कनेक्शन ख़ुद संभालने के बजाय किसी मैसेजिंग प्रोवाइडर के ज़रिए मैसेज सेंटर तक पहुँच सकता है।

प्रोवाइडर SMPP का उपयोग करके टेक्स्ट सीधे या अन्य रूटिंग सेवाओं के ज़रिए मैसेज सेंटर तक पहुँचाते हैं। SMPP संदर्भ में इन कनेक्शनों का वर्णन है।

आपका प्रोवाइडर किसी अनुरोध को अगली नेटवर्क सेवा द्वारा स्वीकार किए जाने से पहले ही उसकी पुष्टि कर सकता है। इसके बाद मैसेज सेंटर फ़ोन तक पहुँचने से पहले ही टेक्स्ट को स्वीकार कर सकता है। हर पुष्टि यात्रा के एक चरण के बारे में बताती है।

स्वीकार किया गया लेकिन डिलीवर नहीं हुआ बताता है कि ये चरण किसी एप्लिकेशन में कैसे दिखाई देते हैं।

Bird के ज़रिए मैं क्या देख सकता हूँ?

आप खुद किसी मैसेज सेंटर से जुड़े बिना कैरियर को सौंपे जाने और रिपोर्ट की गई डिलीवरी की जाँच कर सकते हैं।

मैसेज प्रतिक्रिया का sent_at दर्ज करता है कि Bird ने मैसेज कैरियर को कब सौंपा। delivered_at पुष्टि की गई डिलीवरी दर्ज करता है। दोनों फ़ील्ड में एक टाइमस्टैम्प या null होता है। डिलीवरी समय न होने का मतलब यह नहीं है कि फ़ोन ने टेक्स्ट अस्वीकार कर दिया।

Bird का सेंड एंडपॉइंट validity_period को HTTP 422 SMSUnsupportedFeature के साथ अस्वीकार करता है। आप उस फ़ील्ड के ज़रिए कैरियर की रिटेंशन अवधि सेट नहीं कर सकते। प्रतिक्रिया में वह फ़ील्ड वापस नहीं आता।

जब कैरियर समाप्ति की रिपोर्ट करता है, तब Bird sms.expired भेजता है। बफ़र की गई रसीद, यानी कैरियर ने टेक्स्ट रोक रखा है, से कोई सार्वजनिक स्टेटस नहीं बदलता। डिलीवरी रसीदें बताती हैं कि कौन-सी नेटवर्क रिपोर्ट आपके एप्लिकेशन तक पहुँचती हैं।

इससे भेजने के वर्कफ़्लो में क्या बदलता है?

आपके एप्लिकेशन को डिलीवरी को बाद में होने वाली एक घटना के रूप में संभालना होगा, जिसका नतीजा सबमिशन से अलग होता है।

लंबित नतीजे को विफलता से अलग रखें। सत्यापन कोड और अन्य समय-संवेदनशील कार्रवाइयों की समय-सीमा अपने एप्लिकेशन में लागू करें। डिलीवरी रसीद को डिलीवरी के बारे में नेटवर्क की रिपोर्ट के रूप में इस्तेमाल करें। इससे यह साबित नहीं होता कि किसी ने टेक्स्ट पढ़ा।

संक्षेप में

  1. स्वीकृति और डिलीवरी अलग-अलग हैं।

    प्राप्तकर्ता का फ़ोन पहुँच में आने से पहले ही मैसेज सेंटर टेक्स्ट को स्वीकार कर सकता है।

  2. संग्रहण से डिलीवरी का एक और मौका मिलता है।

    फ़ोन के दोबारा जुड़ने के बाद प्रतीक्षा में रखा टेक्स्ट पहुँच सकता है, बशर्ते डिलीवरी की समय-सीमा अभी खुली हो।

  3. डिलीवरी की समय-सीमा सीमित होती है।

    प्रतीक्षा अवधि खत्म होने पर नेटवर्क समाप्ति की रिपोर्ट दे सकता है।

  4. आपके इंटीग्रेशन को सीधे जुड़ने की ज़रूरत नहीं है।

    मैसेजिंग प्रदाता आपके ऐप्लिकेशन और कैरियर नेटवर्क के बीच का कनेक्शन संभाल सकता है।

उसी नेटवर्क पर बनाएँ।

एक टेस्ट API key आपको तुरंत मिल जाती है। भुगतान विधि जोड़ने और सेंडर सत्यापित करने पर प्रोडक्शन अनलॉक होता है।

आपका अगला आइडिया। जुड़ने के लिए तैयार।