सब कुछ जो जानना ज़रूरी है, कुछ भी नहीं जो ज़रूरी नहीं है।
SMPP कैसे काम करता है, स्टेप-बाय-स्टेप
ESME एक TCP (आदर्श रूप से TLS) कनेक्शन खोलता है और system_id और पासवर्ड के साथ bind_transceiver भेजता है। एक बार बाइंड होने के बाद, यह प्रत्येक मैसेज को submit_sm PDU के रूप में सबमिट करता है; SMSC एक submit_sm_resp के साथ पावती (acknowledge) देता है जिसमें message_id होता है। डिलीवरी रिपोर्ट उसी सॉकेट पर deliver_sm PDUs के रूप में एसिंक्रोनस रूप से आती हैं, जिन्हें message_id द्वारा मैच किया जाता है। हर 30 सेकंड में एक enquire_link हार्टबीट सेशन को जीवित रखती है, और अनबाइंड इसे साफ़ तरीके से बंद कर देता है। /answers/what-is-smpp और /answers/what-is-esme. देखें
बाइंड प्रकार और वर्ज़न
एक ESME को ट्रांसमीटर (केवल भेजने के लिए), रिसीवर (केवल प्राप्त करने के लिए), या ट्रांससीवर (एक ही कनेक्शन पर दोनों) के रूप में बाइंड किया जाता है। SMPP 3.4 पर ट्रांससीवर आधुनिक डिफॉल्ट है। SMPP 5.0 में यूनिकोड-क्लीन हेडर और सेल-ब्रॉडकास्ट सपोर्ट जोड़ा गया था लेकिन लगभग किसी ने भी इसे तैनात नहीं किया — इंस्टॉल बेस मुख्य रूप से 3.4 है। BroadNet SMPP 3.4 बाइंड्स को स्वीकार करता है; होस्ट, पोर्ट और क्रेडेंशियल्स आपके टेस्ट एक्सेस के साथ प्रदान किए जाते हैं। /answers/smpp-3-4-vs-5-0. देखें
एक REST API की तुलना में लाभ
एक बार स्थापित होने के बाद, परसिस्टेंट बाइंड की प्रति मैसेज कोई लागत नहीं लगती है, इसलिए निरंतर वॉल्यूम पर SMPP प्रति-रिक्वेस्ट HTTPS की तुलना में लगभग दसवां हिस्सा CPU और एक चौथाई बैंडविड्थ का उपयोग करता है। SMSC तक सब-100ms p99 लेटेंसी तक पहुँचने का यह एकमात्र तरीका है — क्रिटिकल पाथ पर कोई HTTP हैंडशेक नहीं होता है — और यह रीयल टाइम में DLRs को स्ट्रीम करता है। /compare/sms-api-vs-smpp. देखें
सीमाएं और सावधानियां
SMPP एक बाइनरी प्रोटोकॉल है जिसे आपको ऑपरेट करना होगा: बाइंड मैनेजमेंट, एक्सपोनेंशियल बैकऑफ़ के साथ रीकनेक्ट करना, सीक्वेंस-नंबर ट्रैकिंग, और message_id द्वारा DLR मैचिंग (कुछ SMSCs पर हेक्स के रूप में, अन्य पर डेसिमल के रूप में वापस मिलता है) सब आपकी जिम्मेदारी है। एरर हैंडलिंग संक्षिप्त है — एक विफल सबमिशन एक न्यूमेरिक command_status लौटाता है जिसे आपको डिकोड करना होगा। उन कोड्स को एक्शन में बदलने के लिए /tools/smpp-error-codes लुकअप का उपयोग करें। एक प्रोडक्शन-ग्रेड SMPP क्लाइंट हजारों लाइनों का कोडबेस होता है; इसे बनाने के बजाय खरीदना बेहतर है।
आपको REST के बजाय SMPP को कब चुनना चाहिए?
SMPP चुनें जब आप प्रति सेकंड कई सौ मैसेज का निरंतर वॉल्यूम बनाए रखते हैं या आपको निरंतर बाइंड की आवश्यकता होती है (प्रति बाइंड क्षमता आपकी अकाउंट टीम के साथ तय की जाती है), या लेटेंसी-क्रिटिकल OTP चलाते हैं जहाँ हर मिलीसेकंड मायने रखता है, या ऐसे ऑपरेटर/एग्रीगेटर इकोसिस्टम में एकीकृत होते हैं जो हर जगह SMPP का उपयोग करते हैं। अन्यथा, एक REST SMS API (BroadNet पर प्रति खाता कोई निश्चित रेट लिमिट नहीं है) चलाना सरल है और यह समान रूट्स पर डिलीवरी करता है। /developers/smpp और /products/sms-api देखें।
SMPP कौन सा पोर्ट इस्तेमाल करता है, और क्या 2026 में भी इसका उपयोग किया जाएगा?
SMPP का कोई एक आरक्षित पोर्ट नहीं है; 2775 ऐतिहासिक प्लेनटेक्स्ट डिफ़ॉल्ट है और ऑपरेटर आमतौर पर एक समर्पित पोर्ट पर TLS को एक्सपोज़ करते हैं (BroadNet आपके अकाउंट के साथ उसका TLS पोर्ट प्रदान करता है)। और हाँ — SMPP पूरी तरह से वर्तमान है: यह लगभग हर A2P इंटरकनेक्ट कॉन्ट्रैक्ट के शीर्ष पर पिन किया गया प्रोटोकॉल है, और BroadNet 1,000+ ऑपरेटर कनेक्शन के पीछे 1,000 से अधिक सक्रिय बाइंड्स पर चलता है, जो 2003 से 99.99% अपटाइम के साथ प्रतिदिन 300M+ मैसेज ले जाता है।