SMS válaszok egy SQL adatbázisból

Az Ozeki SMS Gateway Autoreply Database User felhasználója kapcsolódhat a Microsoft SQL, Oracle, MySQL, Sybase stb. adatbázisaihoz egy kapcsolati sztring segítségével. Bármely megadott SELECT lekérdezést futtat, miután fogadott egy SMS üzenetet. A lekérdezés eredményhalmazát kimenő üzenetként küldi el. A lekérdezések és táblák módosíthatók a saját alkalmazásodból is.

Hogyan küldjünk SMS választ SQL-ből

SQL-ből SMS válasz küldéséhez:

  1. Indítsd el az Ozeki SMS Gateway-t
  2. Adj hozzá egy új Autoreply adatbázis felhasználót
  3. Hozz létre SQL adatbázis tábla szerkezetet
  4. Állítsd be az Autoreply adatbázis felhasználót
  5. Add meg az automatikus válasz szöveg szkriptet
  6. Használj azonosítható számokat és kulcsszavakat
  7. Küldj teszt SMS-t, hogy választ kapj SQL-ből
  8. Ellenőrizd az Autoreply adatbázis felhasználó naplóit

1. videó - Hogyan küldjünk SMS választ SQL-ből (Videó útmutató)

A következő szolgáltatást hozhatod létre ezzel a megoldással (1. ábra):
1.) Az Ozeki SMS Gateway fogad egy SMS üzenetet egy mobiltelefonról.
2.) Az Ozeki SMS Gateway Autoreply Database User felhasználója kulcsszavakat keres az SMS üzenetben egy txt fájl segítségével.
3.) A kereséstől függően egy automatikus válaszüzenet kerül kiválasztásra az adatbázis szerveredről ugyanazzal a txt fájllal.

Fontos, hogy legyen egy IP SMS szolgáltató vagy egy GSM modem konfigurálva az Ozeki SMS Gateway-en, hogy fogadhass SMS üzeneteket és automatikusan válaszolhass rájuk ezzel a példával.

hogyan működik az ozeki sms gateway autoreply adatbázis felhasználója
1. ábra - Hogyan működik az Ozeki SMS Gateway Autoreply Database User felhasználója

1. lépés - Autoreply Database User beállítása az Ozeki SMS Gateway-ben

Először telepítened kell egy Autoreply Database User felhasználót a leírt szolgáltatás létrehozásához. A 'Management' konzolon kattints az 'Add' gombra, ahogyan a 2. ábrán látható.

kattints az add user or application gombra a management konzolon
2. ábra - Kattints az 'Add' felhasználó vagy alkalmazás gombra a 'Management' konzolon

Találd meg az Autoreply Database User-t és kattints a kék 'install' linkre mellette. Ahogyan a 3. ábrán látható.

telepítsd az autoreply database user-t a management konzolról
3. ábra - Telepítsd az Autoreply Database User-t a 'Management' konzolról

2. lépés - Adatbázis tábla szerkezet létrehozása

Az Autoreply Database User felhasználó egy adatbázis táblából fogja kiválasztani a válasz SMS üzeneteket. Hozd létre a következő adatbázis szerkezetet az SMS üzenetek tárolásához (4. ábra). Ez a példa egy MySQL adatbázis szervert használ, de használhatsz más adatbázisokat is, mint például Microsoft SQL, Oracle, Sybase stb... Más táblákat és tábla elrendezéseket is használhatsz.


CREATE TABLE autoreplymessage (
		 id int(11) NOT NULL auto_increment, 
		 keyword varchar(30) default NULL, 
		 msg text default NULL, 
		 PRIMARY KEY (id)
		 );
				
INSERT INTO autoreplymessage (keyword,msg) VALUES 
		("default","Nincs adat ehhez a kulcsszóhoz."), 
		("red","A piros jó szín."), 
		("blue","A kék nem a legjobb választás.");
4. ábra - CREATE TABLE és INSERT sorok az 'autoreplymessage' táblába

A tábláid megtekinthetők SELECT * FROM utasításokkal (5. ábra). Bár ez a példa csak egy táblát tartalmaz.

> SELECT * FROM autoreplymessage;
id          keyword                        msg
----------  ------------------------------ -------------------------------------
 1          default                        Nincs adat ehhez a kulcsszóhoz.
 2          red                            A piros jó szín.
 3          blue                           A kék nem a legjobb választás.

(3 sor érintve)
5. ábra - Olvasd az 'autoreplymessage' táblát egy SELECT utasítással

Abban az esetben, ha nincs adatbázis illesztőprogram telepítve az adatbázis szerverrel, telepítened kell egy illesztőprogramot, mert a következő lépésben szükséged lesz a kapcsolati sztringre. Az adatbázis illesztőprogram kapcsolja össze az Ozeki SMS Gateway-t és az adatbázis szervert. A legtöbb esetben az adatbázis szerverrel együtt települ egy adatbázis illesztőprogram.

3. lépés – Az automatikus válaszadatbázis felhasználó konfigurálása az adatbázis használatára

Az automatikus válaszadatbázis felhasználó 'Adatbázis beállítás' paneljén (6. ábra) meg kell adnia az adatbázis kapcsolat típusát és a kapcsolati karakterláncot. A típust a legördülő menüből választhatja ki, míg a karakterláncot a szövegmezőbe kell beírnia.

automatikus válaszadatbázis felhasználó beállítása SMS információk lekérdezéséhez
6. ábra – Automatikus válaszadatbázis felhasználó beállítása SMS információk lekérdezéséhez

A 7. ábrán egy példa karakterláncot láthat MySQL adatbázis kapcsolathoz. Ne feledje, hogy saját kapcsolati karakterlánc típust használhat (OleDB, ODBC, SQLServer, Oracle) saját adatbázis szerveréhez, ami lehet Microsoft SQL, Oracle, Sybase stb... Ha ODBC illesztőt használ MySQL-hez, csak módosítania kell a MySQL szerver IP címét, adatbázis nevét, felhasználónevet és jelszót a saját értékeire a következő karakterláncban:

Kapcsolat típusa: ODBC
Kapcsolati karakterlánc: Driver={MySQL ODBC 5.3 Unicode Driver}; Server=127.0.0.1;Database=ozekisms;User=ozeki;Password=abc123;Option=4;

7. ábra – Példa kapcsolati karakterlánc ODBC kapcsolathoz MySQL adatbázishoz

Más adatbázis szerverek kapcsolati karakterláncának megtalálásához, javasoljuk, hogy olvassa el az SMS adatbázis kapcsolati karakterláncok útmutatóját.

4. lépés – Szkript írása automatikus válaszadáshoz SQL adatbázisból

Most itt az idő, hogy megírja a szkriptfájlt, amely képes egy sort KIVÁLASZTANI az adatbázis táblából, ha a tábla sikeresen létrejött a 2. lépésben. A kiválasztott sor üzenet attribútuma válaszként kerül elküldésre az SMS üzenetre. Itt találja a példa szkript elérési útját: C:\Program Files\Ozeki\Ozeki10\Data\NG\config\OzekiUsername\sqlscript.txt

Ezeket a fájlokat egy egyszerű szövegszerkesztővel szerkesztheti, vagy létrehozhat saját txt fájlt és saját alkalmazásával szerkesztheti, ami hasznos, ha módosítani szeretné a lekérdezéseket. Kérjük, adja meg a fájl elérési útját az Automatikus válaszadatbázis felhasználóban a 'Database setup' gombra kattintva és az 'Autoreply script' lap kiválasztásával (8. ábra)

txt szkript elérési útjának megadása az automatikus válaszadatbázis felhasználónak
8. ábra – Txt szkript elérési útjának megadása az Automatikus válaszadatbázis felhasználónak

5. lépés – Az SQL lekérdezés szkriptek szerkezete

Az Automatikus válaszadatbázis felhasználó SQL szkriptje szűrő-utasítás párokat tartalmaz, amelyek pontosan úgy működnek, mint az if-then szerkezet a programozási nyelvekben. A kapott SMS üzenet átmegy a szűrőn, és ha az megfelelő, egy SQL SELECT utasítás fut le. A kiválasztott sorok üzenet tartalma továbbítódik egy telefonszámra. Ez a szám a SELECT utasítás eredményhalmazának első paramétere, míg az üzenet szövege a második. A szűrő képes telefonszámokat, szövegrészeket és kulcsszavakat azonosítani. Az egyes üzenetek kulcsszava a szöveg első szava. A továbbítás akkor történik meg, ha a címzett címe szerepel az adatbázisban (11. ábra).

6. lépés – Egy egyszerű kulcsszó példa

Ez a példa a következő táblán fog futni, amelyet a 9. ábrán láthat.

id          keyword                        msg
----------  ------------------------------ -------------------------------------
 1          default                        Nincs adat ehhez a kulcsszóhoz.
 2          red                            A piros jó szín.
 3          blue                           A kék nem a legjobb választás.
9. ábra – Az 'autoreplymessage' tábla tartalma

A következő szkriptet futtathatja a 10. ábrán látható módon az 'autoreplymessage' táblán a 'sqlscript.txt' fájlhoz hozzáadva. Emlékeztetőül, a kulcsszó, amelyet a 'k' karakter szimbolizál, az SMS üzenet első szava. Ezt a szót teszteli a szűrő. Ha egy szűrőellenőrzés sikeres, a SELECT utasítás lefut, és a szkript leáll. Amint láthatja, állandó értékeket is elhelyezhet a SELECT utasításban. Például a '$sender', amely a bejövő üzenet küldője.

Szkript elemek, amelyeket elhelyezhet a sqlscript.txt fájlban
SELECT '$sender',msg FROM autoreplymessage WHERE keyword='red'
#Az első szűrő ellenőrzi, hogy a 'RED' szó volt-e a kulcsszó.
#Ha igaz, akkor a 'Red is a good colour.' szöveget válaszként küldi.
#Ha hamis, akkor a következő szűrőhöz lép.

k^BLUE
SELECT '$sender',msg FROM autoreplymessage WHERE keyword='blue'
#A második szűrő ellenőrzi, hogy a 'BLUE' szó volt-e a kulcsszó.
#Ha igaz, akkor a 'Blue is not the best option.' szöveget válaszként küldi.
#Ha hamis, akkor a következő szűrőhöz lép.

k.*
SELECT '$sender',msg FROM autoreplymessage WHERE keyword='default'
#A harmadik szűrő bármilyen más kulcsszót elfogad.
#A 'There is no data for this keyword.' szöveget válaszként küldi.
10. ábra – Példa szkript, amely elhelyezhető a sqlscript.txt fájlban

Az SQL lekérdezés szkript szűrő része hasonlóan működik, mint az SMS válasz szkript szűrő része, de ne feledje, hogy csak szűrő példákat keressen, mivel a második rész mindig egy SQL SELECT utasítás.

7. lépés – Előre definiált kulcsszavak az Ozeki SMS Gatewayben

Az ilyen típusú kulcsszavak elhelyezhetők a szkriptben. Például a '$sender':


SELECT '$sender',msg FROM autoreplymessage WHERE keyword='red'
11. ábra - Az üzenetet elküldi a '$sender' címzettnek

Az Autoreply adatbázis felhasználó a következő kulcsszavakat ismeri fel:
KulcsszóÉrték
$originatorFelülírásra kerül a küldő telefonszámával.
$sender=$originator (A $sender a $originator másik neve.)
$recipientFelülírásra kerül az üzenet fogadójának telefonszámával.
$receiver=$recipient (A $receiver a $recipient másik neve.)
$messagedataFelülírásra kerül az üzenet szövegével.
$keywordFelülírásra kerül az üzenet első szavával. Ezt a szót kulcsszónak nevezik.
$afterFelülírásra kerül a kulcsszó utáni maradék szöveggel.
$senttimeFelülírásra kerül egy időbélyeggel, amely megmutatja, mikor került elküldésre az üzenet.
$receivedtimeFelülírásra kerül egy időbélyeggel, amely megmutatja, mikor érkezett meg az üzenet.
$messagetypeFelülírásra kerül az üzenet típusával, ami legtöbbször 'SMS:TEXT'.
$idFelülírásra kerül egy egyedi karakterlánccal,
ami azonosítja az üzenetet az Ozeki SMS Gatewayben.
$operatorFelülírásra kerül a szolgáltató nevével,
ami fogadta az üzenetet az Ozeki SMS Gatewayben.
$1Felülírásra kerül az üzenet első szavával.
$2Felülírásra kerül az üzenet második szavával.
$3Felülírásra kerül az üzenet harmadik szavával, stb...

Az automatikus válaszadó szkript szerkezetét ezeken a weboldalakon magyarázzuk:

8. lépés – Tesztelje az adatbázisból történő automatikus válaszadó megoldást

Az 1-6. lépések elvégzése után kipróbálhatja a megoldást. Az Ozeki SMS Gateway továbbítja a bejövő SMS üzeneteket az Ön Automatikus Válaszadó Adatbázis Felhasználójához. Az SQL lekérdezés szkript szűri az SMS üzeneteket, hogy megfelelő SELECT eredményhalmazokat hozzon létre. Az eredményhalmaz minden sora egy válaszul küldendő vagy továbbítandó üzenetet reprezentál.

Az Automatikus Válaszadó Adatbázis Felhasználó üzenetnaplóját a következő útvonalon követheti nyomon:
C:\Program Files\Ozeki\Ozeki10\Data\NG\Logs

Amikor adatot szúrok be az Ozekimessageout táblába, nem kapom meg az üzenetet a mobiltelefonomra. Mi lehet az oka annak, hogy nem kapom meg a szöveges üzenetet, amelyet az SQL konzolommal szúrtam be az out táblába?

Először is, zárjuk ki a mobilhálózati problémát. Küldjön egy teszt SMS-t közvetlenül az Ozeki grafikus felületéről (GUI). Ha az üzenet sikeresen megérkezik, a hálózati kapcsolat működőképesnek tűnik.

Ezután ellenőriznünk kell, hogy az üzenetek átkerülnek-e az adatbázisból az Ozeki szoftverbe. Szúrjon be néhány teszt üzenetet az Ozekimessageout táblába. Ezután az Ozeki GUI-jában navigáljon az Ön által használt adatbázis felhasználó kimenő postaládájához. Ha ezek a teszt üzenetek hiányoznak a kimenő postaládából, a probléma az adatbázis és az Ozeki közötti adatátviteli folyamatban rejlik.

Szeretnék egy adatbázist használni több "adatbázis felhasználó" számára. Ez lehetséges?

Természetesen! Az Ozeki SMS Gateway lehetővé teszi különálló üzenetnaplók fenntartását különböző célokra külön adatbázis felhasználók használatával.

Íme egy lépésről lépésre útmutató:

  • Új adatbázis táblák létrehozása: Hozzon létre két új táblát az adatbázisában. Könnyű azonosíthatóság érdekében elnevezheti őket ozekimessagein2 és ozekimessageout2 néven. Ezeknek a tábláknak ugyanazt a szerkezetet kell követniük, mint a meglévő ozekimessagein és ozekimessageout tábláknak, amelyeket az első adatbázis felhasználó használ.
  • A második adatbázis felhasználó konfigurálása: Nyissa meg a második adatbázis felhasználó konfigurációs űrlapját az Ozekiben.
  • SQL sablonok módosítása: Keresse meg az SQL sablonok részét a konfigurációs űrlapon. Ezek a sablonok határozzák meg, hogyan kerülnek mentésre az üzenetek az adatbázis táblákba.
  • Táblanevek frissítése: A második adatbázis felhasználó SQL sablonjaiban frissítse a meglévő táblaneveket (ozekimessagein és ozekimessageout) úgy, hogy egyezzenek az újonnan létrehozott táblákkal (ozekimessagein2 és ozekimessageout2).
Ezeket a lépéseket követve külön üzenetnaplókat hozhat létre minden adatbázis felhasználó számára. Ez lehetővé teszi az üzenetek kategorizálását vagy szűrését az Ön igényei szerint a választott táblanevek alapján.

Az Ozeki SMS Gateway mindig lecsatlakozik a MySQL szerveremről a következő hibaüzenettel: MySQL Server has gone away. Mit tegyek?

Az Ozeki és a MySQL együttes használatakor a válaszkészség javítása érdekében állítsa be az időtúllépési beállítást. Íme, hogyan:

MySQL időtúllépés konfigurálása:

  • Módosítsa a MySQL konfigurációs fájlját (pl. my.ini), és állítsa be az interactive_timeout paramétert a kívánt időtartamra másodpercben (pl. interactive_timeout = 28800 8 órára).
  • Mentse a változtatásokat, és indítsa újra a MySQL szolgáltatást.

Ozeki kapcsolati karakterlánc frissítése:

  • Módosítsa az Ozeki kapcsolati karakterláncát úgy, hogy Interactive-t használjon wait_timeout helyett. A helyes formátum: Driver={MySQL ODBC 5.2 ANSI Driver};Server=127.0.0.1;Database=ozeki;User=test;Password=test;Interactive=IDŐTÚLLÉPÉSI_ÉRTÉK.

  • Ne felejtse el lecserélni az IDŐTÚLLÉPÉSI_ÉRTÉK-t a kívánt időtúllépési értékre másodpercben.
Ezeket a lépéseket követve optimalizálhatja a MySQL kapcsolati időtúllépéseket az Ozeki belüli zökkenőmentes működés érdekében, különösen hasznos hosszan futó feladatok vagy nagy adathalmazok esetén.

Driver={MySQL ODBC 5.2 ANSI Driver};Server=127.0.0.1;Database=ozeki;User=test;Password=test;interactive=;Option=8;

More information