Adatok elhelyezése az SMPP SM mezőben
Az SMPP (Short Message Peer-to-Peer) protokollban a Short Message (SM) hasznos adat az SMS üzenet tényleges szövege (vagy bináris adata). Ennek a tartalomnak a helyes értelmezéséhez a PDU-ban található data_coding mező kulcsfontosságú, mivel jelzi az üzenet kódolási formátumát.
Gyakori SMPP kódolások
A data_coding
mező 1 bájtos, és azt jelzi az SMSC-nek, hogyan értelmezze az üzenet hasznos adatát.
Hex | Decimális | Kódolás | Leírás |
---|---|---|---|
0x00 | 0 | GSM 7 bites alapértelmezett | Standard SMS karakterkészlet |
0x01 | 1 | ASCII | 8 bites ASCII (Latin-1 részhalmaz) |
0x03 | 3 | Latin-1 (ISO 8859-1) | Nyugat-európai karakterkészlet |
0x08 | 8 | UCS2 | Unicode (16 bites, big-endian) |
0x04 | 4 | Bináris | Nyers 8 bites bináris adat |
Példák kódolt üzenetekre
1. GSM 7 bites (data_coding = 0x00)
Standard SMS kódolás. Hatékony (legfeljebb 160 karakter egyetlen üzenetben).
Szöveg: "Hello" GSM 7 bites csomagolt: C8 32 9B FD 06
2. UCS2 (data_coding = 0x08)
Nem latin írásrendszerekhez használatos (pl. arab, kínai, emojik). Legfeljebb 70 karaktert támogat üzenetenként.
Szöveg: "مرحبا" UCS2 Hex: 0645 0631 062D 0628 0627 Bájtok (hex): 06 45 06 31 06 2D 06 28 06 27
3. ASCII (data_coding = 0x01)
Csak alap latin karakterek, kevésbé helytakarékos, mint a GSM 7 bites.
Szöveg: "Hello" ASCII Hex: 48 65 6C 6C 6F
SMPP PDU példa UCS2 kódolással
Íme egy SMPP submit_sm
PDU, amely Unicode üzenetet hordoz:
0000004B // Parancs hossza (75 bájt) 00000004 // Parancs azonosító (submit_sm) 00000000 // Parancs állapot 00000001 // Sorszám 74657374 // service_type: "test" 01 // source_addr_ton: Nemzetközi 01 // source_addr_npi: ISDN 31323334 // source_addr: "1234" (ASCII) 00 01 // dest_addr_ton 01 // dest_addr_npi 35363738 // destination_addr: "5678" 00 00 // esm_class 00 // protocol_id 00 // priority_flag 00 // schedule_delivery_time 00 // validity_period 00 // registered_delivery 00 // replace_if_present_flag 08 // data_coding: UCS2 00 // sm_default_msg_id 0A // sm_length: 10 bájt 06450631 // Üzenet UCS2-ben (pl. "مر") 062D0628
Kódolás és összefűzés
A hosszú üzenetek részekre oszthatók UDH (User Data Header) segítségével. Ez csökkenti a maximális hasznos adat méretét:
- GSM 7 bites: 160 → 153 karakter részegenként
- UCS2: 70 → 67 karakter részegenként
Példa UDH-ra üzenet részhez:
05 00 03 CC 02 01 // 05: fejléc hossza // 00 03: Összefűzés IEI // CC: Üzenet hivatkozás // 02: összes rész // 01: aktuális rész
Összefoglalás
Az SMPP rugalmas kódolási lehetőségeket kínál a data_coding
mezőn keresztül. A megfelelő kódolás biztosítja a kompatibilitást a globális hálózatokon, különösen többnyelvű szöveg vagy bináris adatok kezelésekor. A fejlesztőknek meg kell egyezniük a kódolási típusokat a tartalommal és a várható címzettekkel, hogy elkerüljék az üzenet sérülését.
Hivatkozások
- SMPP 3.4 specifikáció
- GSM 03.38 karakterkészlet
- Unicode szabvány
More information
- How to configure the SMPP Service Type field
- How to configure the SMPP Phone Number fields
- How to configure the SMPP ESM Class field
- How to configure the SMPP PID field
- How to configure the SMPP Prioirity field
- How to configure the SMPP Scheduled Time field
- How to configure the SMPP Validity Period field
- How to configure the SMPP Registered Delivery field
- How to configure the SMPP Replace if Present field
- How to configure the sm_default_msg_id field
- How to configure the SMPP DCS field
- How to calculate the SMPP SM Length field
- How to put data into the SMPP SM field