Hogyan kapjunk SMS-t az SMPP API segítségével
A Short Message Peer-to-Peer (SMPP) protokoll egy hatékony, iparági szabvány protokoll, amelyet az SMS-üzenetek küldésére és fogadására terveztek External Short Message Entities (ESME-k) és Short Message Service Centers (SMSC-k) között. A fejlesztők és vállalkozások számára, akik az SMPP API-t használják az Ozeki SMS Gateway elsődleges platformjaként, elengedhetetlen a protokoll alacsony szintű működésének megértése a robusztus SMS megoldások építéséhez. Ez a cikk átfogó útmutatást nyújt az SMS-üzenetek fogadásához az SMPP API használatával, összpontosítva a protokollszintű interakciókra és azokra a specifikus Protocol Data Units (PDU-k)ra, amelyek szükségesek az SMPP API klienskapcsolat létrehozásához, karbantartásához és használatához az Ozeki SMS Gateway-vel.
Bevezetés az SMPP API és az Ozeki SMS Gateway használatába
Az SMPP API-t széles körben használják a távközlési iparban a tömeges SMS-küldés hatékonysága miatt TCP/IP kapcsolaton keresztül. Az Ozeki SMS Gateway, egy sokoldalú SMPP szoftver, egyszerre működik SMPP kliensként és szerverként, így ideális platformot nyújt az SMS-üzenetek küldéséhez és fogadásához. Az SMPP protokoll (3.3 és 3.4 verziók, valamint az 5.0 támogatása az Ozeki 10 SMS Gateway-ben) implementálásával az Ozeki zökkenőmentes kapcsolatot biztosít az SMSC-kkel, támogatva olyan alkalmazásokat, mint a marketingkampányok, kétlépcsős azonosítás és értesítőrendszerek. Ez a cikk az SMS-üzenetek fogadására összpontosít, részletezve az SMPP PDU-kat, amelyek szükségesek a kapcsolat létrehozásához, karbantartásához és az üzenetek fogadásához.
Az SMPP PDU-k megértése
Az SMPP a Protocol Data Units (PDU-k) cseréjén keresztül működik az SMPP kliens (pl. Ozeki SMS Gateway) és az SMPP szerver (pl. egy SMSC) között. Minden PDU egy strukturált üzenet, amely specifikus utasításokat vagy adatokat hordoz, például hitelesítési adatokat, SMS tartalmat vagy kapcsolatállapot-lekérdezéseket. Az SMS-üzenetek fogadásához az SMPP API-val a kliensnek létre kell hoznia egy kapcsolatot, karbantartania azt, és feldolgoznia a bejövő üzeneteket. A kulcsfontosságú PDU-k a következők:
- bind_transceiver: Kapcsolatot létesít mind az SMS küldéséhez, mind fogadásához.
- enquire_link: A kapcsolat állapotának ellenőrzésével tartja fenn azt.
- deliver_sm: Bejövő SMS-üzeneteket szállít az SMSC-től a klienshez.
- unbind: Lezárja az SMPP munkamenetet.
Az alábbiakban részletesen megvizsgáljuk mindegyik PDU-t, beleértve a szerkezetüket, konfigurációjukat az Ozeki SMS Gateway-ben, és szerepüket az SMS-üzenetek fogadásában az SMPP API segítségével.
Az SMPP API klienskapcsolat beállítása
Az SMS-üzenetek fogadásához az első lépés egy stabil SMPP API klienskapcsolat létrehozása az SMSC-vel. Az Ozeki SMS Gateway egyszerűsíti ezt a folyamatot intuitív felületével, de a fejlett felhasználók számára elengedhetetlen a mögöttes protokollszintű műveletek megértése.
1. Az SMPP kliens konfigurálása az Ozeki SMS Gateway-ben
Az SMPP API klienskapcsolat beállításához az Ozeki SMS Gateway-ben kövesse az alábbi lépéseket:
- Bejelentkezés a Kezelői Konzolra: Lépjen be az Ozeki SMS Gateway webes felületére az adminisztrátori fiókkal (alapértelmezett felhasználónév: "admin").
- Új kapcsolat hozzáadása: Navigáljon a "Connections" panelre, kattintson az "Add new connection" gombra, és válassza ki az "SMPP client" opciót az "IP SMS Connections" részben.
- SMPP beállítások konfigurálása: Adja meg a következő adatokat, amelyeket általában az SMS szolgáltatója biztosít:
- Host Name: Az SMSC IP-címe vagy hosztneve (pl. "192.168.1.1").
- Port Number: A TCP/IP port az SMPP kommunikációhoz (alapértelmezett 9500, de ellenőrizze a szolgáltatónál).
- Username (System ID): Az Ön azonosítója az SMSC-nél.
- Password: A System ID-hez tartozó jelszó.
- SMPP Version: Válassza a v3.4-et a transceiver támogatásért (ajánlott küldéshez és fogadáshoz).
- System Type: Opcionális, gyakran "SMPP", ahogy a szolgáltató megadja.
- Sender Address: Az alapértelmezett telefonszám a kimenő SMS-ekhez (pl. "+1234567890").
- Address Range: Opcionális, több telefonszámról érkező üzenetek fogadásához használható.
- Bind Mode: Válassza a "Transceiver" lehetőséget, hogy egyszerre engedélyezze az SMS küldését és fogadását egyetlen kapcsolaton keresztül.
- Advanced Settings: Engedélyezze a "Connect automatically on startup" opciót a zökkenőmentes újrakapcsolódáshoz, és jelölje be a "Send keepalive packets" lehetőséget a kapcsolat fenntartásához.
- Enable Logging: Az "Advanced" lapon engedélyezze a "Log Communication Events" opciót az SMPP PDU-k rögzítéséhez hibakeresés céljából.
- Save and Connect: Kattintson az "OK" gombra a konfiguráció mentéséhez, majd a "Connect" gombra a kapcsolat kezdeményezéséhez.
Ezek a beállítások előkészítik az Ozeki SMS Gateway-t az SMPP API kapcsolat létrehozására a bind_transceiver PDU segítségével.
2. A bind_transceiver PDU
A bind_transceiver PDU az első PDU, amelyet az SMPP kliens küld az SMSC-hez a hitelesítés és a kapcsolat létrehozása érdekében. Lehetővé teszi az SMS-üzenetek küldését és fogadását egyetlen TCP/IP kapcsolaton keresztül, így ideális a legtöbb SMPP API alkalmazáshoz.
A bind_transceiver PDU szerkezete
Command Length: 4 bájt (a PDU teljes hossza) Command ID: 0x00000009 (bind_transceiver) Command Status: 0x00000000 (0-ra állítva a kéréseknél) Sequence Number: Egyedi azonosító a PDU-hoz System ID: Felhasználónév a hitelesítéshez (pl. "smppuser") Password: Jelszó a hitelesítéshez (pl. "password123") System Type: Opcionális, gyakran "SMPP" Interface Version: SMPP verzió (pl. 0x34 a v3.4-hez) Address Range: Opcionális, specifikus számokról érkező üzenetek fogadásához
Példa bind_transceiver PDU-ra (hexadecimális):
0000002F 00000009 00000000 00000001 736D70707573657200 70617373776F726431323300 534D505000 34 00
Magyarázat:
- Command Length (0000002F): A PDU teljes hossza (47 bájt).
- Command ID (00000009): Azonosítja a PDU-t bind_transceiver-ként.
- Command Status (00000000): 0-ra állítva a kérésnél.
- Sequence Number (00000001): Egyedi azonosító a PDU nyomon követéséhez.
- System ID (736D70707573657200): ASCII a "smppuser" számára, null lezáróval.
- Password (70617373776F726431323300): ASCII a "password123" számára, null lezáróval.
- System Type (534D505000): ASCII az "SMPP" számára, null lezáróval.
- Interface Version (34): Az SMPP v3.4-et jelöli.
- Address Range (00): Null, mivel opcionális.
A bind_transceiver PDU fogadása után az SMSC érvényesíti a hitelesítő adatokat. Ha sikeres, a válasz egy bind_transceiver_resp PDU lesz 0x00000000 parancsállapottal, ami a sikeres kapcsolatot jelzi. Az Ozeki SMS Gateway naplózza ezt az interakciót, amely a "Communication Events" naplóban tekinthető meg.
Az SMPP API kapcsolat karbantartása
Miután a kapcsolat létrejött, fenn kell tartani a folyamatos SMS fogadás érdekében. Az SMPP protokoll a enquire_link PDU-t használja a kapcsolat állapotának ellenőrzésére és az inaktivitás miatti leválasztás megelőzésére.
Az enquire_link PDU
A enquire_link PDU egy könnyű üzenet, amelyet az SMPP kliens periodikusan küld az SMSC-nek a kapcsolat aktív állapotának megerősítésére. Ez különösen fontos a hosszú életű kapcsolatok fenntartásához, mivel a proxy szerverek vagy SMSC-k megszakíthatják az inaktív kapcsolatokat.
Az enquire_link PDU szerkezete
Command Length: 0x00000010 (16 bájt) Command ID: 0x00000015 (enquire_link) Command Status: 0x00000000 (0-ra állítva a kéréseknél) Sequence Number: Egyedi azonosító a PDU-hoz
Példa enquire_link PDU-ra (hexadecimális):
00000010 00000015 00000000 00000002
Magyarázat:
- Command Length (00000010): Teljes hossz (16 bájt).
- Command ID (00000015): Azonosítja a PDU-t enquire_link-ként.
- Command Status (00000000): 0-ra állítva a kérésnél.
- Sequence Number (00000002): Egyedi azonosító a PDU nyomon követéséhez.
Az SMSC válasza egy enquire_link_resp PDU lesz, amely megerősíti a kapcsolat állapotát. Az Ozeki SMS Gateway-ben a "Send keepalive packets" opció engedélyezése a "Communication" lapon biztosítja, hogy a enquire_link PDU-k automatikusan rendszeres időközönként (pl. 30 másodpercenként) legyenek elküldve. Ez a beállítás kritikus a stabil SMPP API kapcsolat fenntartásához, különösen szakaszos SMS fogadás esetén.
SMS-üzenetek fogadása az SMPP API-val
Miután a kapcsolat létrejött és fennmaradt, az SMPP API kliens fogadhat SMS-üzeneteket a deliver_sm PDU segítségével. Ezt a PDU-t az SMSC küldi a kliensnek, ha egy bejövő SMS vagy kézbesítési jelentés elérhető.
A deliver_sm PDU
A deliver_sm PDU egy bejövő SMS-üzenet vagy kézbesítési jelentés tartalmát hordozza. Az SMS fogadásához a PDU tartalmazza a feladó telefonszámát, a címzett számát (a szolgáltató által hozzárendelt virtuális számot) és az üzenet szövegét.
A deliver_sm PDU szerkezete
Command Length: Változó (az üzenet hosszától függ) Command ID: 0x00000005 (deliver_sm) Command Status: 0x00000000 (0-ra állítva a kéréseknél) Sequence Number: Egyedi azonosító a PDU-hoz Service Type: Opcionális, gyakran null Source Address TON: A feladó szám típusa Source Address NPI: A feladó számozási terve Source Address: A feladó telefonszáma (pl. "+1234567890") Destination Address TON: A címzett szám típusa Destination Address NPI: A címzett számozási terve Destination Address: A címzett telefonszáma (pl. virtuális szám) ESM Class: Az üzenet típusa (pl. 0x04 SMS-hez) Data Coding: Karakterkódolás (pl. 0x00 GSM 7-bit-hez) Short Message: Az üzenet szövege (legfeljebb 160 karakter GSM esetén)
Példa deliver_sm PDU-ra (hexadecimális):
0000005F 00000005 00000000 00000003 00 01 01 2B3132333435363738393000 01 01 2B3938373635343332313000 00 00 00 00 00 48656C6C6F2C207468697320697320616E20534D5321
Magyarázat:
- Command Length (0000005F): Teljes hossz (95 bájt).
- Command ID (00000005): Azonosítja a PDU-t deliver_sm-ként.
- Command Status (00000000): 0-ra állítva a kérésnél.
- Sequence Number (00000003): Egyedi azonosító a PDU nyomon követéséhez.
- Service Type (00): Null, mivel opcionális.
- Source Address TON (01): Nemzetközi szám.
- Source Address NPI (01): ISDN/telefon számozási terv.
- Source Address (2B3132333435363738393000): ASCII a "+1234567890" számára.
- Destination Address TON (01): Nemzetközi szám.
- Destination Address NPI (01): ISDN/telefon számozási terv.
- Destination Address (2B3938373635343332313000): ASCII a "+9876543210" számára.
- ESM Class (00): Szabványos SMS-t jelez.
- Data Coding (00): GSM 7-bit kódolás.
- Short Message (48656C6C6F2C207468697320697320616E20534D5321): ASCII a "Hello, this is an SMS!" számára.
A deliver_sm PDU fogadása után az Ozeki SMS Gateway feldolgozza az üzenetet, és továbbítja azt a konfigurált alkalmazásnak vagy adatbázisnak. A kliensnek válaszolnia kell egy deliver_sm_resp PDU-val a nyugtázás érdekében, ami biztosítja a megbízható kézbesítést. Az Ozeki-ben ez a válasz automatikusan kezelődik, és az üzenet naplózásra kerül a "Messages" panelen, vagy az adatbázisban tárolódik, ha konfigurálva van.
Az Ozeki SMS Gateway konfigurálása SMS fogadásra
Annak érdekében, hogy az Ozeki SMS Gateway képes legyen SMS-üzeneteket fogadni:
- Virtuális szám beállítása: Együttműködés az SMS szolgáltatóval egy virtuális szám (IMSI) hozzárendeléséhez az SMS fogadásához. Ezt a számot az "Address Range" mezőben kell megadni a konfiguráció során.
- Adatbázis integráció: Az Ozeki konfigurálása a bejövő üzenetek adatbázisban történő tárolására az SQL SELECT utasítás módosításával a "Database user" konfigurációban (pl. "SELECT id, sender, receiver, msg, msgtype FROM ozekimessagein").
- Naplózás: Az SMPP PDU naplózás engedélyezése a bejövő deliver_sm PDU-k nyomon követéséhez hibakeresés céljából.
A konfiguráció után a bejövő SMS-üzenetek automatikusan továbbításra kerülnek a megadott alkalmazásnak vagy adatbázisnak, így az Ozeki SMS Gateway robusztus platformot nyújt az SMPP API-alapú SMS fogadáshoz.
Az SMPP API kapcsolat megszüntetése
Ha az SMPP API munkamenetre már nincs szükség, a kliens egy unbind PDU-t küld a kapcsolat szabályos lezárásához.
Az unbind PDU
Az unbind PDU jelezi az SMSC-nek, hogy zárja le az SMPP munkamenetet.
Az unbind PDU szerkezete
Command Length: 0x00000010 (16 bájt) Command ID: 0x00000006 (unbind) Command Status: 0x00000000 (0-ra állítva a kéréseknél) Sequence Number: Egyedi azonosító a PDU-hoz
Példa unbind PDU-ra (hexadecimális):
00000010 00000006 00000000 00000004
Magyarázat:
- Command Length (00000010): Teljes hossz (16 bájt).
- Command ID (00000006): Azonosítja a PDU-t unbind-ként.
- Command Status (00000000): 0-ra állítva a kérésnél.
- Sequence Number (00000004): Egyedi azonosító a PDU nyomon követéséhez.
Az SMSC válasza egy unbind_resp PDU lesz, amely megerősíti a munkamenet lezárását. Az Ozeki SMS Gateway-ben ezt a "Disconnect" gombra kattintva kezdeményezheti a "Connections" panelen.
Ajánlott eljárások az SMPP API felhasználók számára
Az SMPP API implementáció optimalizálásához az Ozeki SMS Gateway-ben az SMS fogadásához:
- Keepalive csomagok engedélyezése: Győződjön meg arról, hogy a "Send keepalive packets" opció engedélyezve van a stabil kapcsolat fenntartásához.
- Naplók monitorozása: Rendszeresen ellenőrizze az SMPP PDU naplókat a bind_transceiver, enquire_link vagy deliver_sm PDU-kkal kapcsolatos problémák elhárításához.
- Transceiver mód használata: A transceiver mód előnyben részesítése a hatékonyság érdekében, mivel támogatja az SMS küldését és fogadását egyetlen kapcsolaton keresztül.
- Biztonságos kapcsolatok: Ha a szolgáltató támogatja, használjon SMPPS-t (SMPP SSL/TLS felett) titkosított kommunikációhoz.
- Kézbesítési jelentések kezelése: Az Ozeki konfigurálása a deliver_sm PDU-k feldolgozására, amelyek kézbesítési jelentéseket tartalmaznak az üzenet állapotának nyomon követéséhez.
Összegzés
Az SMS-üzenetek fogadása az SMPP API-val az Ozeki SMS Gateway segítségével magában foglalja a kapcsolat létrehozását a bind_transceiver PDU-val, annak karbantartását a enquire_link PDU-kkal, valamint a bejövő üzenetek feldolgozását a deliver_sm PDU-k segítségével. Ezen PDU-k megértésével és az Ozeki SMS Gateway megfelelő konfigurálásával a fejlesztők megbízható, nagy teljesítményű SMS alkalmazásokat építhetnek. Az SMPP API rugalmassága és az Ozeki robusztus implementációja kiváló választást nyújt azoknak a vállalkozásoknak, amelyek skálázható SMS megoldásokat igényelnek. További részletekért tekintse meg az Ozeki SMS Gateway dokumentációját, vagy lépjen kapcsolatba az SMS szolgáltatójával a specifikus konfigurációs paraméterekért.
More information
- SMPP API kliens kapcsolat beállítása az SMSC-vel
- SMPP API szerver beállítása több alkalmazás SMS küldéséhez és fogadásához
- A megfelelő SMPP API szolgáltató kiválasztása vállalkozásához
- SMS küldése SMPP API-val protokoll szinten
- SMS küldése SMPP API-val Python használatával
- SMS küldése SMPP API-val Javascript használatával
- SMS küldése SMPP API-val Java használatával
- SMS küldése SMPP API-val PHP használatával
- Hogyan küldjünk SMS-t az SMPP API-n keresztül C# használatával
- SMS küldése SMPP API-val C/Cpp használatával
- SMS fogadása SMPP API-val
- SMS kézbesítési jelentés fogadása SMPP API-val
- SMPP API GYIK