สวัสดี! แม้ว่าผู้ส่งสารและโซเชียลเน็ตเวิร์กจะเข้ามาแทนที่วิธีการสื่อสารแบบเดิมๆ ทุกวัน แต่ก็ไม่ได้ลดทอนความนิยมของ SMS การตรวจสอบความถูกต้องบนเว็บไซต์ยอดนิยมหรือการแจ้งเตือนการทำธุรกรรมซ้ำ สิ่งเหล่านี้เกิดขึ้นและจะมีผลใช้งานต่อไป คุณเคยสงสัยบ้างไหมว่ามันทำงานอย่างไร? บ่อยครั้งที่มีการใช้โปรโตคอล SMPP เพื่อส่งข้อความจำนวนมาก ซึ่งจะกล่าวถึงด้านล่าง
มีบทความเกี่ยวกับHabréเกี่ยวกับ smpp อยู่แล้ว
โปรโตคอล SMPP เป็นโปรโตคอลการส่งข้อความแบบเพียร์ทูเพียร์ ซึ่งหมายความว่าแต่ละเซิร์ฟเวอร์เพียร์/ฮับมีสิทธิ์เท่าเทียมกัน ในกรณีที่ง่ายที่สุด รูปแบบการส่งข้อความ SMS จะมีลักษณะดังนี้:
อย่างไรก็ตาม หากผู้ให้บริการระดับชาติไม่มีเส้นทางไปยังพื้นที่ห่างไกล เขาจะขอสิ่งนี้จากคนกลาง - ฮับ SMS บางครั้งเพื่อที่จะส่ง SMS เดียว คุณต้องสร้างเครือข่ายระหว่างหลายประเทศหรือแม้แต่ทวีป
เกี่ยวกับโปรโตคอล
SMPP เป็นโปรโตคอลเลเยอร์แอปพลิเคชันที่ใช้การแลกเปลี่ยน PDU และถูกส่งผ่านเซสชัน TCP / IP หรือ X25 สำหรับการส่งข้อความ SMS และ ussd โดยทั่วไป SMPP จะใช้ในโหมดคงอยู่ ซึ่งช่วยประหยัดเวลา SMPP ใช้โมเดลการสื่อสารไคลเอ็นต์-เซิร์ฟเวอร์
รีจิม สวีซิซ
การแลกเปลี่ยนข้อความระหว่างผู้ส่งและศูนย์ SMS ผ่าน SMPP สามารถทำได้ในโหมดต่อไปนี้:
เครื่องส่ง (เครื่องส่งสัญญาณ) - ส่งข้อความไปในทิศทางเดียวทีละครั้ง
ผู้รับ - รับเฉพาะข้อความจากศูนย์ SMS
ตัวรับส่งสัญญาณ (ตัวรับส่งสัญญาณ) - แลกเปลี่ยนข้อความระหว่างศูนย์ SMS และผู้ใช้
โครงสร้าง
ความยาวข้อความ
ข้อความ SMS หนึ่งข้อความสามารถมีอักขระได้ 70 ตัวเมื่อพิมพ์ด้วยอักษรซีริลลิกและอักขระละตินไม่เกิน 157 ตัว + 3 UDH หากคุณส่ง SMS ที่มีอักขระจำนวนมาก ข้อความนั้นจะแบ่งออกเป็นหลายส่วนและรวมกันในอุปกรณ์รับ ในกรณีของการแบ่งส่วน จำนวนอักขระจะลดลงตามส่วนหัวของข้อความ ซึ่งระบุส่วนของข้อความ ดังนั้นเมื่อส่งข้อความ SMS ขนาดใหญ่ จะมีอักขระละตินได้สูงสุด 153 ตัวหรืออักขระผิดปรกติ 67 ตัว
โครงการเข้ารหัสข้อมูล
อย่างไรก็ตาม สัญลักษณ์จำเป็นต้องมีการเข้ารหัสเพื่อถ่ายทอดข้อความ ในโปรโตคอล SMPP ฟิลด์พิเศษมีหน้าที่ในการเข้ารหัส - Data Coding Scheme หรือ DCS นี่คือฟิลด์ที่ระบุวิธีการจดจำข้อความ นอกจากนี้ ฟิลด์ DCS ยังรวมถึง:
- ชุดอักขระที่กำหนดการเข้ารหัส
- คลาสข้อความ
- ขอให้ลบอัตโนมัติหลังจากอ่าน
- ข้อบ่งชี้ของการบีบอัดข้อความ
- ภาษาข้อความออกอากาศ
ตัวอักษรมาตรฐาน 7 บิต (GSM 03.38) ได้รับการพัฒนาสำหรับระบบส่งข้อความ GSM การเข้ารหัสนี้เหมาะสำหรับภาษาอังกฤษและภาษาละตินจำนวนหนึ่ง อักขระแต่ละตัวประกอบด้วย 7 บิตและถูกเข้ารหัสเป็นออคเต็ต
UTF-16 (ใน GSM UCS2) เพื่อรวมอักขระที่หายไปในตัวอักษร 7 บิต การเข้ารหัส UTF-16 ได้รับการพัฒนาซึ่งเพิ่มอักขระเพิ่มเติม (รวมถึง Cyrillic) โดยการลดขนาดข้อความจาก 160 เป็น 70 การเข้ารหัสประเภทนี้เกือบ จำลอง Unicode อย่างสมบูรณ์
ข้อมูลที่กำหนดโดยผู้ใช้ 8 บิต ซึ่งรวมถึง KOI8-R และ Windows-1251 แม้ว่าโซลูชันนี้ดูเหมือนจะประหยัดกว่าเมื่อเทียบกับ UTF-16 เดียวกัน คำถามที่สมเหตุสมผลเกิดขึ้นเกี่ยวกับความเข้ากันได้ในอุปกรณ์ต่างๆ เพราะในกรณีนี้จะต้องกำหนดค่าอุปกรณ์ทั้งสองไว้ล่วงหน้า
ชั้นเรียนข้อความ
- ข้อความ Class0 หรือแฟลชที่จัดเก็บไว้ในหน่วยความจำของโทรศัพท์ตามคำขอของผู้ใช้
- Class1 หรือที่เก็บไว้ในหน่วยความจำของโทรศัพท์
- Class1 หรือที่เก็บไว้ในหน่วยความจำของโทรศัพท์
- Class2 ต้องแน่ใจว่าข้อความถูกบันทึกไว้ในหน่วยความจำของเทอร์มินัลมือถือ มิฉะนั้นจะต้องแจ้งเตือนศูนย์ SMS เกี่ยวกับความเป็นไปไม่ได้ในการบันทึก
- Class3 - ในกรณีนี้ โทรศัพท์จะต้องส่งการแจ้งเตือนว่าสามารถจัดเก็บข้อความได้ โดยไม่คำนึงถึงจำนวนหน่วยความจำในอุปกรณ์ ข้อความประเภทนี้บอกเป็นนัยว่าข้อความถึงผู้รับแล้ว
ประเภทข้อความ
ข้อความเงียบ (SMS0) ประเภทของข้อความ SMS ที่ไม่มีเนื้อหา SMS นี้มาถึงโดยไม่มีการแจ้งเตือน และไม่ปรากฏบนหน้าจออุปกรณ์
PDU
การดำเนินการ pdu แต่ละรายการจะถูกจับคู่และประกอบด้วยคำขอและการตอบกลับ ตัวอย่างเช่น: คำสั่งที่ระบุว่ามีการสร้างการเชื่อมต่อแล้ว (bind_transmitter / bind_transmitter_resp) หรือข้อความถูกส่งไปแล้ว (deliver_sm / Deliver_sm_resp)
แต่ละแพ็กเก็ต pdu ประกอบด้วยสองส่วน - ส่วนหัวและเนื้อหา โครงสร้างส่วนหัวจะเหมือนกันสำหรับแพ็กเก็ต pdu ใดๆ: command length คือความยาวของแพ็กเก็ต, id คือชื่อของแพ็กเก็ต และคำสั่ง status ระบุว่าข้อความถูกส่งสำเร็จหรือมีข้อผิดพลาด
พารามิเตอร์ TLV เพิ่มเติม
TLV (ค่าความยาวแท็ก) หรือฟิลด์เพิ่มเติม พารามิเตอร์ดังกล่าวใช้เพื่อขยายการทำงานของโปรโตคอลและไม่จำเป็น ฟิลด์นี้จะปรากฏที่ส่วนท้ายของฟิลด์ pdu ตามตัวอย่าง การใช้ TLV dest_addr_np_information คุณสามารถจัดระเบียบการส่งข้อมูลเกี่ยวกับความสามารถในการพกพาของตัวเลขได้
ตันและนปี้
พารามิเตอร์ TON (ประเภทของตัวเลข) แจ้ง SMSC เกี่ยวกับรูปแบบการกำหนดที่อยู่และประเภทเครือข่าย
พารามิเตอร์ NPI (การระบุแผนการกำหนดหมายเลข) ที่ระบุแผนการกำหนดหมายเลข
ที่อยู่แหล่งข้อความหรือชื่ออัลฟ่า
ข้อความที่ส่งไปยังโทรศัพท์ของคุณมีสองรูปแบบ: ดิจิทัลและตัวอักษร หมายเลขดิจิทัลอาจยาว (คล้ายกับหมายเลขโทรศัพท์) หรือสั้นก็ได้ บางครั้งโอเปอเรเตอร์มีข้อจำกัดในการส่งจากชื่อที่เป็นกลาง เช่น ข้อมูล การแจ้งเตือน ฯลฯ บางครั้งผู้ให้บริการจะไม่อนุญาตให้มีการรับส่งข้อมูลหากไม่ได้ลงทะเบียนชื่อบนเครือข่ายของตน อย่างไรก็ตาม สิ่งเหล่านี้ค่อนข้างเป็นคุณลักษณะของผู้ปฏิบัติงาน
ขั้นตอนการส่ง
SMS-ส่ง - นี่คือการส่งข้อความ MO FSM (ข้อความสั้นจากเทอร์มินัลมือถือ)
รายงานการส่ง SMS — การยืนยันว่าข้อความถูกส่งโดย SMSC
ศรีเอสเอ็ม (SendRoutingInfo) - SMSC รับข้อมูลจาก HLR เกี่ยวกับตำแหน่ง MSC / VLR ของผู้สมัครสมาชิก
ทรัพยากร SRI SM — คำตอบจาก HLR เกี่ยวกับตำแหน่งสมาชิก
MT-FSM — หลังจากได้รับตำแหน่งแล้ว ระบบจะส่งข้อความโดยใช้การดำเนินการ "ส่งต่อข้อความสั้น"
ระดาษ MT-FSM — การตอบสนองจาก SMSC ว่าข้อความถูกส่งไปแล้ว
รายงานสถานะ SMS — SMSC ส่งสถานะการส่งข้อความ
สถานะการส่งข้อความ
รายงานสถานะ SMS สามารถรับได้หลายค่า:
เดลิเวอร์ด ส่งข้อความเรียบร้อยแล้ว
ปฏิเสธ — ข้อความถูกปฏิเสธโดยศูนย์ SMS
หมดอายุ — ข้อความจะถูกลบออกจากคิวการส่งหลังจากสิ้นสุด TTL (อายุข้อความ)
อุนเดลิฟ - กรณีอื่นๆ ของการไม่จัดส่ง
UNKNOWN- ไม่มีการตอบกลับเกี่ยวกับการจัดส่ง
ข้อผิดพลาดในการโอน
บางครั้งมีสาเหตุที่ทำให้ไม่สามารถส่งข้อความ SMS ไปยังสมาชิกได้ ผลที่ตามมาจากสาเหตุเหล่านี้คือการเกิดข้อผิดพลาด ข้อผิดพลาดจะถูกส่งกลับไปยัง PDUs_sms_resp ข้อผิดพลาดทั้งหมดสามารถแบ่งออกเป็นชั่วคราว (ชั่วคราว) และถาวร (ถาวร)
ตามตัวอย่าง สามารถจัดประเภท absent_subscriber เป็นแบบชั่วคราว - ผู้สมัครสมาชิกไม่ว่างหรือไม่ออนไลน์ และแบบถาวร - ไม่มีสมาชิกอยู่ ขึ้นอยู่กับข้อผิดพลาดที่เกิดขึ้น นโยบายสำหรับการส่งข้อความเหล่านี้ซ้ำจะเกิดขึ้น
ตัวอย่างเช่น หากผู้สมัครสมาชิกกำลังยุ่งอยู่กับการโทรและได้รับข้อผิดพลาดว่าเครื่อง MT ไม่ว่าง ข้อความจะถูกส่งอีกครั้งหลังจากผ่านไปสองสามนาที อย่างไรก็ตาม หากบริการรับข้อความของผู้สมัครสมาชิกถูกบล็อก การส่งอีกครั้งจะไม่สมเหตุสมผล คุณสามารถดูรายการข้อผิดพลาดได้ที่หน้า SMSC เช่น
ที่มา: will.com