SMS-SUBMIT संदेश के लिए ऑनलाइन PDU एनकोडर
संदेश को उस हेक्स स्ट्रिंग में बदलें जिसकी GSM मोडेम PDU मोड में अपेक्षा करता है। एनकोडर GSM-7 सेप्टेट पैक करता, ज़रूरत हो तो UCS-2 पर जाता और संदेश बँटे तो UDH जोड़ता है।
SMS-SUBMIT PDU बनाएँ
फ़ॉर्म उदाहरण के साथ खुलता है। टेक्स्ट, नंबर और पैरामीटर बदलें और ‘एनकोड’ दबाएँ। नतीजा इस पेज का JavaScript इसी डिवाइस पर बनाता है।
PDU एनकोडर
इंटरनेट की ज़रूरत नहीं| भाग | UDH | इस भाग का टेक्स्ट |
|---|
हर ब्लॉक ----- PDU n/total ----- पंक्ति से शुरू होता है। PDU मोड में हर ब्लॉक का हेक्स स्ट्रिंग अलग से भेजें।
लिखा कुछ भी कहीं नहीं भेजा जाता। लोकल फ़ाइल या साइट की ऑफ़लाइन प्रतिलिपि से भी चलता है।
PDU मोड क्या है
PDU मोड सिर्फ़ स्ट्रिंग नहीं, पूरा प्रोटोकॉल फ़्रेम मोडेम को सौंपता है।
SMS सिर्फ़ टेक्स्ट नहीं है। संदेश के चारों ओर सर्विस सेंटर का पता, प्राप्तकर्ता, एनकोडिंग संकेत, वैधता और लंबाई हैं। टेक्स्ट मोड (AT+CMGF=1) में मोडेम ये फ़ील्ड भरता है और सिर्फ़ वही दिखाता है जो पढ़ा जा सकता है। PDU मोड (AT+CMGF=0) में पूरा फ़्रेम हेक्स में देना पड़ता है, इसलिए हर फ़ील्ड हमारे हाथ में रहता है।
फ़्रेम 3GPP TS 23.040 और अक्षर समूह व 7-बिट पैकिंग TS 23.038 तय करते हैं। एनकोडर दोनों मानता है: नंबर से गैर-अंकीय अक्षर हटाता है, BCD जोड़े पलटता है, पता प्रकार ऑक्टेट सेट करता है, GSM-7 या UCS-2 चुनता है, सेप्टेट क्रम से पैक करता है और संदेश बँटे तो हेडर संकेत लगाता है।
टेक्स्ट अजीब क्यों दिखता है।7-बिट अक्षर 8-बिट ऑक्टेट में भरे जाते हैं, इसलिए एक सेप्टेट दो बाइट में फैल सकता है। GSM-7 PDU हर अक्षर के एक बाइट का क्रम नहीं है और हाथ से बदलने पर आसानी से बिगड़ता है।
पहला ऑक्टेट क्यों ज़रूरी है।सर्विस सेंटर के बाद का ऑक्टेट संदेश प्रकार, रिपोर्ट माँग और कनेक्शन संकेत रखता है। एनकोडर 0x01 से शुरू कर कनेक्शन पर 0x40, वैधता पर 0x10 और रिपोर्ट माँग पर 0x20 जोड़ता है।
SMS-SUBMIT फ़ील्ड का ढाँचा
नतीजा बाएँ से पढ़ें तो फ़ील्ड इसी क्रम में आते हैं।
| फ़ील्ड | ऑक्टेट | क्या रखता है | एनकोडर का मान |
|---|---|---|---|
| SCA | 1 + n | सर्विस सेंटर का पता और पता प्रकार ऑक्टेट | ख़ाली हो तो 00; वरना लंबाई ऑक्टेट, पता प्रकार और BCD अंक |
| पहला ऑक्टेट | 1 | संदेश प्रकार, वैधता रूप, रिपोर्ट माँग, हेडर संकेत | SMS-SUBMIT के लिए 01, ज़रूरत हो तो 40, 10, 20 जोड़ें |
| MR | 1 | डिवाइस का बढ़ता संदेश संदर्भ | कनेक्शन संदर्भ का 1-ऑक्टेट हिस्सा; न सेट हो तो 00 |
| प्राप्तकर्ता | 2 + n | नंबर की लंबाई, पता प्रकार, BCD अंक | घरेलू नंबर पर 81, इनपुट + से शुरू हो तो 91 |
| PID | 1 | प्रोटोकॉल पहचानकर्ता | 00, सामान्य छोटा संदेश |
| DCS | 1 | संदेश का अक्षर समूह और क्लास | GSM-7 00, UCS-2 08, फ़्लैश SMS 10 या 18 |
| VP | 0, 1, 7 | वैधता: सापेक्ष, विस्तारित, निरपेक्ष | 0 घंटे पर छोड़ें; वरना दायरे के अनुसार इकाई बढ़ता सापेक्ष ऑक्टेट (5 मिनट, 30 मिनट, 1 दिन, 1 हफ़्ता) |
| UDL | 1 | उपयोगकर्ता डेटा की लंबाई | GSM-7 में सेप्टेट की संख्या (UDH सहित), UCS-2 में ऑक्टेट |
| UD | n | वैकल्पिक UDH और पैक किया टेक्स्ट | क्रम में UDH के बाद 7-बिट पैकिंग, या UCS-2 ऊपरी बाइट से |
सापेक्ष वैधता एक ऑक्टेट है: 12 घंटे तक 5 मिनट की इकाई में 0–143, 24 घंटे तक 30 मिनट में 144–169, 30 दिन तक 1 दिन में 170–196, उससे आगे 1 हफ़्ते में 197–255; सब सर्विस सेंटर को संदेश मिलने के समय से गिने जाते हैं। औज़ार 0–8760 घंटे (लगभग 1 वर्ष) लेता है।
GSM-7, UCS-2 और कनेक्टेड SMS
एक PDU 140 ऑक्टेट रखता है। कितने अक्षर आएँगे, यह अक्षर समूह और UDH पर निर्भर है।
| एनकोडिंग | एक PDU | 8-बिट UDH | 16-बिट UDH |
|---|---|---|---|
| GSM-7 | 160 सेप्टेट | 153 सेप्टेट | 152 सेप्टेट |
| UCS-2 | 70 इकाई | 67 इकाई | 66 इकाई |
6-बाइट UDH 48 बिट लेता है और GSM-7 में 7 सेप्टेट बनता है। 16-बिट संदर्भ एक ऑक्टेट यानी एक स्लॉट और लेता है। इसलिए एक भाग की सीमा 160 नहीं, 153 या 152 है।
GSM-7 में आधार GSM अक्षर समूह के लातिनी अक्षर, अंक और चिह्न आते हैं। ये दस अक्षर दो सेप्टेट लेते हैं: €, ^, {, }, [, ], ~, |, बैकस्लैश और फ़ॉर्म फ़ीड। एनकोडर हर एक से पहले एस्केप 1B लगाता है और दो भागों के बीच जोड़ा नहीं काटता। दोनों तालिकाओं में न होने वाला अक्षर UCS-2 ज़रूरी कर देता है: अक्षर पर 2 ऑक्टेट, सीमा 70।
डिकोडिंग का उदाहरण
यह नतीजा पेज के साथ भेजी गई रिग्रेशन टेस्ट फ़ाइल से है। इनपुट तय है और अपेक्षित हेक्स स्ट्रिंग TS 23.038 / TS 23.040 के स्वतंत्र कार्यान्वयन से ली गई है।
| इनपुट | एनकोडिंग | PDU |
|---|---|---|
| Hello SMSDeliverer.com! | GSM-7, घरेलू नंबर, सर्विस सेंटर नहीं | 000100098121436587F9000017C8329BFD064D9B5362999DB697E565B96BFC6E8700 |
| € | GSM-7, विस्तारित अक्षर | 000100098121436587F90000029B32 |
| 您好,世界! | UCS-2 | 000100098121436587F900080C60A8597DFF0C4E16754CFF01 |
टेस्ट फ़ाइल assets/js/tests/pdu-vectors.json है। इसमें पुराने बिल्ड की पंक्तियाँ भी हैं और विफल दिखने वाले वेक्टर तथा दोष की व्याख्या साथ है। टेस्ट पास होने तक कोई बदलाव नहीं करते।
टेक्स्ट मोड की जगह PDU मोड कब
टेक्स्ट मोड पढ़ने में आसान है। PDU मोड वही है जो असल में भेजा जा रहा है, उसे नियंत्रित करता है।
लंबा संदेश
कनेक्टेड SMS UDH से जुड़े PDU का क्रम है। भाग, क्रम और संदर्भ सिर्फ़ PDU मोड में दिखते हैं।
जोड़ना
गेटवे, टेस्ट बेड या AT+CMGS को फ़्रेम सौंपने वाली कतार बनाएँ तो मोडेम द्वारा स्ट्रिंग समझने का नतीजा नहीं, सटीक ऑक्टेट चाहिए।
जाँच
न पढ़ा जाने वाला टेक्स्ट, ग़ायब उच्चारण चिह्न और टूटा बँटवारा आम तौर पर ग़लत DCS या ख़राब UDH है। दोनों यहाँ दिखते हैं।
दोनों मोड एक ही नेटवर्क पर पहुँचते और एक ही शुल्क लेते हैं। फ़र्क़ है कि फ़्रेम कहाँ बनता है: मोडेम के अंदर, या उस कार्यक्रम में जिसे आप देख सकते हैं। अक्षर समूह, वैधता या रिपोर्ट माँग संदेश में लानी हो तो PDU मोड सबसे छोटा रास्ता है। टेक्स्ट मोड तेज़ जाँच के लिए रहता है और इस साइट का डिकोडर मिला फ़्रेम जैसा है वैसा पढ़ता है।
स्वचालन चाहिए तो
यह पेज देखने का औज़ार है। SMS Deliverer कतार के हर संदेश पर वही प्रक्रिया करता है।
Windows ऐप लंबे संदेश बाँटता, GSM-7 या UCS-2 चुनता, UDH संदर्भ सेट करता, विफल भाग दोबारा भेजता और डिलीवरी रिपोर्ट संपर्क के पास रखता है। वही एनकोडिंग रास्ता एक संदेश पर भी और हज़ारों पर भी लागू होता है और भेजना आपके मोडेम की सिम से होता है।
GSM मोडेम की व्याख्या हार्डवेयर और Windows सॉफ़्टवेयर पेज भेजना व रिपोर्ट संभालता है। PDU डिकोडर मोडेम या फ़ोन से निकला फ़्रेम पढ़ता है।
एनकोडर के नतीजे में
- GSM-7 पैकिंग और विस्तारित अक्षर के जोड़े
- सरोगेट जोड़ा बचाता UCS-2
- 8-बिट और 16-बिट कनेक्शन संदर्भ
- घरेलू और अंतरराष्ट्रीय रूप के प्राप्तकर्ता
- सापेक्ष वैधता और फ़्लैश क्लास
2026-11 जाँच। मुफ़्त ट्रायल से पूरा भेजने का रास्ता परखें। इस औज़ार पर लाइसेंस या इंस्टॉल की ज़रूरत नहीं।
खरीदारों के आम सवाल
एनकोडर मुफ़्त है? खाता चाहिए?
मुफ़्त और बिना खाते के। यह पेज सिर्फ़ HTML और JavaScript से बना है और साइट की ऑफ़लाइन प्रतिलिपि से भी चलता है।
PDU 00 से क्यों शुरू होता है?
पहला ऑक्टेट सर्विस सेंटर के पते की लंबाई है। 00 का अर्थ है कि PDU में सर्विस सेंटर नहीं और डिवाइस या मोडेम सिम में लिखा मान इस्तेमाल करेगा। फ़्रेम में लाना हो तो सर्विस सेंटर का नंबर भरें।
लंबा संदेश कई PDU क्यों बनाता है?
एक PDU 140 ऑक्टेट रखता है। GSM-7 में 160 सेप्टेट, 6-बाइट UDH पर 153, UCS-2 में 70 इकाई और वही हेडर पर 67। टेक्स्ट अक्षर सीमा पर बँटता है और हर भाग पर क्रम संख्या लगती है।
नतीजा AT+CMGS से भेजा जा सकता है?
हाँ। AT+CMGF=0 से मोडेम को PDU मोड में रखें और सर्विस सेंटर फ़ील्ड के बाद फ़्रेम के ऑक्टेट की संख्या दें। भाग क्रम से एक-एक भेजें तो डिवाइस UDH के संदर्भ और क्रम संख्या से उन्हें फिर जोड़ देता है।