प्राप्तकर्ता का फ़ोन पहुँच में आने से पहले भी कोई एप्लिकेशन टेक्स्ट सबमिट कर सकता है। SMPP कनेक्शन उस सबमिशन को और बाद के उन ऑपरेशन को ले जाता है जो बताते हैं कि मैसेज के साथ क्या हुआ।
कनेक्शन क्या ले जाता है?
SMPP जुड़े हुए सिस्टमों के बीच संदेश सबमिशन, आने वाले संदेश और डिलीवरी रिपोर्ट ले जाता है।
आपका एप्लिकेशन किसी ऐसे गेटवे से जुड़ सकता है जो ट्रैफ़िक को आगे रूट करता है। जहाँ प्रदाता यह व्यवस्था सपोर्ट करता है, वहाँ यह सीधे किसी मैसेज सेंटर से भी जुड़ सकता है।
SMPP संदर्भ इन भूमिकाओं और ऑपरेशनों का वर्णन करता है। मैसेज सेंटर टेक्स्ट संदेशों को संग्रहीत करता है और उन्हें प्राप्तकर्ताओं की ओर आगे भेजता है।
आपके एप्लिकेशन और सेंटर के बीच का गेटवे रूटिंग का एक और चरण जोड़ता है। केवल प्रोटोकॉल के नाम से यह पता नहीं चलता कि संदेश कितने सिस्टमों से होकर गुज़रता है।
SMPP सेशन कैसे काम करता है?
आपका क्लाइंट एक कनेक्शन खोलता है। यह सेशन को प्रमाणित करता है और उसे संदेश ऑपरेशनों के लिए उपलब्ध रखता है।
प्रमाणीकरण के इस चरण को bind कहा जाता है। ट्रांसमीटर सेशन संदेश भेजता है। रिसीवर सेशन संदेश प्राप्त करता है। ट्रांससीवर सेशन दोनों दिशाओं को सपोर्ट करता है।
वही सेशन प्रकार इस्तेमाल करें जिसकी आपके वर्कफ़्लो को ज़रूरत है। जब आपको आने वाले ऑपरेशन चाहिए, तब केवल भेजने वाला कनेक्शन प्राप्त करने वाले सेशन की जगह नहीं ले सकता।
कनेक्शन टूटने पर आपके क्लाइंट को उसे बहाल करना होगा। उसे प्राप्त होने वाले ऑपरेशनों की पुष्टि भी करनी होगी। जिन अनुरोधों की प्रतिक्रिया बाकी है, उन्हें ट्रैक करें, ताकि देर से आई प्रतिक्रिया सही अनुरोध से मिलाई जा सके।
क्या सबमिशन प्रतिक्रिया डिलीवरी का प्रमाण है?
सबमिशन प्रतिक्रिया बताती है कि जुड़ी हुई सेवा ने सबमिशन स्वीकार किया या नहीं, यह नहीं कि फ़ोन को टेक्स्ट संदेश मिला।
submit_sm ऑपरेशन एक संदेश सबमिट करता है। इसका संबंधित submit_sm_resp उस अनुरोध का परिणाम बताता है।
आने वाले संदेश और डिलीवरी रसीदें deliver_sm के ज़रिए आ सकती हैं। डिलीवरी-रसीद संदर्भ रसीद ऑपरेशनों और उनकी सामग्री के बारे में बताता है।
अपने एप्लिकेशन में सबमिशन के परिणाम को डिलीवरी के परिणाम से अलग रखें। कोई संदेश स्वीकार हो सकता है और बाद में विफल हो सकता है, क्योंकि प्राप्तकर्ता पहुँच से बाहर रहता है।
अगर मैं इसकी जगह HTTP API इस्तेमाल करूँ, तो क्या बदलता है?
HTTP अनुरोध और प्रतिक्रिया ऑपरेशन उपलब्ध कराता है, और आपके एप्लिकेशन को SMPP bind प्रबंधित नहीं करना पड़ता।
आपके एप्लिकेशन को फिर भी फिर से प्रयास करने का काम संभालना होता है। उसे बाद में आने वाले डिलीवरी परिणाम भी प्रोसेस करने होते हैं। HTTP कैरियर की एसिंक्रोनस डिलीवरी को सिंक्रोनस गारंटी में नहीं बदलता।
Bird के साथ आप POST /v1/sms/messages के ज़रिए सबमिट करते हैं और लौटाए गए संदेश पहचानकर्ता को ट्रैक करते हैं। भेजने की गाइड 202 स्वीकृति प्रतिक्रिया के बारे में बताती है। SMS इवेंट बाद की डिलीवरी रिपोर्ट देते हैं।
API की ये ज़िम्मेदारियाँ किसी प्रदाता से SMPP कनेक्शन प्रबंधित करने से अलग हैं। API और गेटवे इन परतों के बारे में बताता है।
क्या SMPP इस्तेमाल करने से प्रदाता आपस में बदले जा सकते हैं?
सिर्फ़ एक ही प्रोटोकॉल इस्तेमाल करने से प्रदाता आपस में बदले जाने योग्य नहीं हो जाते। वे अलग-अलग ऑपरेशन, एन्कोडिंग और सीमाएँ सपोर्ट कर सकते हैं।
ट्रैफ़िक स्थानांतरित करने से पहले उन क्षमताओं का परीक्षण करें जिनका आपका एप्लिकेशन इस्तेमाल करता है। सफल bind से यह साबित नहीं होता कि हर ज़रूरी ऑपरेशन उस प्रदाता पर काम करता है।
गेटवे संदर्भ कार्यान्वयन के सपोर्ट और प्रदर्शन का परीक्षण करने की सलाह देता है। कनेक्शन बदलते समय अपनी डिलीवरी जाँचें बनाए रखें, और नए एंडपॉइंट को पूरा माइग्रेशन न मानें।
मुझे SMPP कब चुनना चाहिए?
SMPP तब चुनें जब किसी मौजूदा सिस्टम को स्थायी bind या SMPP-विशिष्ट इनकमिंग ऑपरेशन की ज़रूरत हो।
- जिस नए एप्लिकेशन की SMPP से जुड़ी कोई खास ज़रूरत नहीं है, उसके लिए HTTP का उपयोग करें।
- जब किसी मौजूदा सिस्टम को स्थायी bind या SMPP-विशिष्ट इनकमिंग ऑपरेशन की ज़रूरत हो, तब SMPP का उपयोग करें।
- प्रोडक्शन ट्रैफ़िक स्थानांतरित करने से पहले प्रोवाइडर का समर्थन और डिलीवरी के परिणाम जाँच लें।
संक्षेप में
आपका क्लाइंट एक सेशन संभालता है।
यह कनेक्शन को ऑथेंटिकेट करता है, और कनेक्शन टूटने पर उसे फिर से बहाल करता है।
सबमिशन और डिलीवरी अलग-अलग ऑपरेशन हैं।
सफल सबमिशन प्रतिक्रिया से यह साबित नहीं होता कि हैंडसेट तक मैसेज पहुँच गया है।
अलग-अलग प्रोवाइडर का सपोर्ट अलग होता है।
यह मानकर न चलें कि एक ही प्रोटोकॉल होने से प्रोवाइडर आपस में बदले जा सकते हैं। इसके बजाय ऑपरेशन, एन्कोडिंग और क्षमता को टेस्ट करें।
HTTP से आप SMPP सेशन प्रबंधन से बच सकते हैं।
HTTP के साथ आपको SMPP बाइंड नहीं संभालना पड़ता, फिर भी डिलीवरी इवेंट आपका एप्लिकेशन ही संभालता है।