SMS odgovori iz SQL baze podataka

Autoreply Database User u Ozeki SMS Gatewayu može se povezati s vašom Microsoft SQL, Oracle, MySQL, Sybase itd. bazom podataka putem connection stringa. Pokreće bilo koji SELECT upit koji unesete nakon primitka SMS poruke. Rezultati upita bit će poslani kao odlazne poruke. Upiti i tablice također se mogu mijenjati iz vaše vlastite aplikacije.

Kako poslati SMS odgovor iz SQL-a

Da biste poslali SMS odgovor iz SQL-a:

  1. Pokrenite Ozeki SMS Gateway
  2. Dodajte novog Autoreply database korisnika
  3. Kreirajte strukturu SQL tablice
  4. Postavite Autoreply database korisnika
  5. Unesite skriptu za autoreply tekst
  6. Koristite prepoznatljive brojeve i ključne riječi
  7. Pošaljite test SMS da dobijete odgovor iz SQL-a
  8. Provjerite logove Autoreply database korisnika

Video 1 - Kako poslati SMS odgovor iz SQL-a (Video tutorijal)

Ovim rješenjem možete kreirati sljedeću uslugu (Slika 1):
1.) Ozeki SMS Gateway prima SMS poruku s mobilnog telefona.
2.) Autoreply Database User u Ozeki SMS Gatewayu traži ključne riječi u SMS poruci koristeći txt datoteku.
3.) Ovisno o rezultatu pretrage, autoreply poruka će biti odabrana iz vašeg database servera s istom txt datotekom.

Važno je da imate IP SMS pružatelja usluga ili GSM modem konfiguriran na vašem Ozeki SMS Gatewayu, kako biste mogli primati SMS poruke i automatski na njih odgovarati koristeći ovaj primjer.

kako radi autoreply database user u ozeki sms gatewayu
Slika 1 - Kako radi Autoreply Database User u Ozeki SMS Gatewayu

Korak 1 - Postavljanje Autoreply Database Usera u Ozeki SMS Gatewayu

Prvo morate instalirati Autoreply Database Usera kako biste kreirali opisanu uslugu. Na 'Management' konzoli kliknite 'Add' kao što je prikazano na Slici 2.

kliknite add user or application na management konzoli
Slika 2 - Kliknite 'Add' korisnika ili aplikaciju na 'Management' konzoli

Pronađite Autoreply Database Usera i kliknite plavi 'install' link pored njega. Kao što možete vidjeti na Slici 3.

instalirajte autoreply database user s management konzole
Slika 3 - Instalirajte Autoreply Database Usera s 'Management' konzole

Korak 2 - Kreiranje strukture database tablice

Autoreply Database User će SELECT-ati odgovore na SMS poruke iz database tablice. Kreirajte sljedeću database strukturu za pohranjivanje SMS poruka (Slika 4). Ovaj primjer koristi MySQL database server, ali možete koristiti i druge baze podataka kao što su Microsoft SQL, Oracle, Sybase itd... Također možete koristiti druge tablice i rasporede tablica.


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","Nema podataka za ovu ključnu riječ."), 
		("red","Crvena je dobra boja."), 
		("blue","Plava nije najbolja opcija.");
Slika 4 - CREATE TABLE i INSERT redaka u 'autoreplymessage' tablicu

Vaše tablice možete pregledati s SELECT * FROM upitima (Slika 5). Iako ovaj primjer sadrži samo jednu tablicu.

> SELECT * FROM autoreplymessage;
id          keyword                        msg
----------  ------------------------------ -------------------------------------
 1          default                        Nema podataka za ovu ključnu riječ.
 2          red                            Crvena je dobra boja.
 3          blue                           Plava nije najbolja opcija.

(3 rows affected)
Slika 5 - Čitanje 'autoreplymessage' tablice s SELECT upitom

U slučaju da nema instaliranog database drivera s database serverom, trebate instalirati driver, jer trebat će vam connection string u sljedećem koraku. Database driver povezuje Ozeki SMS Gateway i database server. U većini slučajeva database driver dolazi instaliran s database serverom.

Korak 3 - Konfigurirajte korisnika baze podataka za automatski odgovor da koristi vašu bazu podataka

Morat ćete unijeti vrstu veze s bazom podataka i niz za povezivanje u panelu 'Postavke baze podataka' korisnika baze podataka za automatski odgovor (Slika 6). Vrsta se može odabrati iz padajućeg izbornika, dok se niz mora upisati u tekstualno polje.

postavka korisnika baze podataka za automatski odgovor za upit SMS informacija
Slika 6 - Postavka korisnika baze podataka za automatski odgovor za upit SMS informacija

Na slici 7 možete vidjeti primjer niza za povezivanje s MySQL bazom podataka. Imajte na umu da možete koristiti vlastitu vrstu niza za povezivanje (OleDB, ODBC, SQLServer, Oracle) za vlastiti poslužitelj baze podataka koji može biti Microsoft SQL, Oracle, Sybase itd... Ako koristite ODBC pogon za MySQL, samo trebate promijeniti IP adresu MySQL poslužitelja, naziv baze podataka, korisničko ime i lozinku u vlastite vrijednosti u sljedećem nizu:

Vrsta veze: ODBC
Niz za povezivanje: Driver={MySQL ODBC 5.3 Unicode Driver}; Server=127.0.0.1;Database=ozekisms;User=ozeki;Password=abc123;Option=4;

Slika 7 - Primjer niza za povezivanje za ODBC vezu s MySQL bazom podataka

Da biste pronašli niz za povezivanje s drugim poslužiteljima baza podataka, preporučuje se da pročitate Vodič za nizove za povezivanje SMS baze podataka.

Korak 4 - Napišite skriptu za automatski odgovor iz SQL baze podataka

Sada je vrijeme da napišete skriptu koja je sposobna SELECT-ati redak iz vaše tablice baze podataka ako je tablica uspješno kreirana u KORAKU 2. Atribut poruke odabranog retka bit će odgovoren na SMS poruku. Ovdje možete pronaći putanju primjer skripte: C:\Program Files\Ozeki\Ozeki10\Data\NG\config\OzekiUsername\sqlscript.txt

Jednostavan uređivač teksta može uređivati ove datoteke ili možete kreirati vlastitu txt datoteku i uređivati je vlastitom aplikacijom, što je korisno ako želite modificirati upite. Molimo navedite putanju do datoteke koristeći korisnika baze podataka za automatski odgovor klikom na 'Postavke baze podataka' i odabirom kartice 'Skripta za automatski odgovor' (Slika 8)

navedite putanju txt skripte za korisnika baze podataka za automatski odgovor
Slika 8 - Navedite putanju txt skripte za korisnika baze podataka za automatski odgovor

Korak 5 - Struktura SQL upitnih skripti

SQL skripta korisnika baze podataka za automatski odgovor sadrži parove filter-izjava, koji rade točno kao if-then struktura u programskim jezicima. Primljena SMS poruka prolazi kroz filter i ako je u redu, pokrenut će se SQL SELECT izjava. Sadržaj poruke odabranih redaka bit će proslijeđen na broj telefona. Ovaj broj je 1. parametar rezultata SELECT izjave, dok je tekst poruke 2. Filter je sposoban prepoznati brojeve telefona, fragmente teksta i ključne riječi. Ključna riječ svake poruke je prva riječ teksta. Prosljeđivanje se događa ako je adresa primatelja uključena u bazu podataka (Slika 11).

Korak 6 - Jednostavan primjer ključne riječi

Ovaj primjer će raditi na sljedećoj tablici koju možete vidjeti na slici 9.

id          keyword                        msg
----------  ------------------------------ -------------------------------------
 1          default                        Nema podataka za ovu ključnu riječ.
 2          red                            Crvena je dobra boja.
 3          blue                           Plava nije najbolja opcija.
Slika 9 - Sadržaj tablice 'autoreplymessage'

Možete pokrenuti sljedeću skriptu na slici 10 na tablici 'autoreplymessage' dodajući je u 'sqlscript.txt'. Kao podsjetnik, ključna riječ, koja je simbolizirana znakom 'k', je prva riječ u SMS poruci. Ova riječ će biti testirana filterom. Ako je provjera filtra uspješna, SELECT izjava se pokreće i skripta će se zaustaviti. Kao što možete vidjeti, možete staviti konstantne vrijednosti u SELECT izjavu. Na primjer, '$sender', koji je pošiljatelj dolazne poruke.

Elementi skripte koje možete staviti u sqlscript.txt
SELECT '$sender',msg FROM autoreplymessage WHERE keyword='red'
#Prvi filter provjerava je li riječ 'RED' bila ključna riječ.
#Ako je točno, SELECT-a 'Crvena je dobra boja.' kao poruku odgovora.
#Ako nije točno, ide na sljedeći filter.

k^BLUE
SELECT '$sender',msg FROM autoreplymessage WHERE keyword='blue'
#Drugi filter provjerava je li riječ 'BLUE' bila ključna riječ.
#Ako je točno, SELECT-a 'Plava nije najbolja opcija.' kao poruku odgovora.
#Ako nije točno, ide na sljedeći filter.

k.*
SELECT '$sender',msg FROM autoreplymessage WHERE keyword='default'
#Treći filter će prihvatiti bilo koju drugu ključnu riječ.
#SELECT-a 'Nema podataka za ovu ključnu riječ.' kao poruku odgovora.
Slika 10 - Primjer skripte koja se može staviti u sqlscript.txt

Dio filtra SQL upitne skripte radi slično kao dio filtra SMS skripte za odgovaranje, ali imajte na umu da tražite samo primjere filtera, budući da je drugi dio uvijek SQL SELECT izjava.

Korak 7 - Unaprijed definirani ključni pojmovi u Ozeki SMS Gateway

Ove vrste ključnih pojmova mogu se postaviti u skriptu. Na primjer '$sender':


SELECT '$sender',msg FROM autoreplymessage WHERE keyword='red'
Slika 11 - Šalje msg na '$sender'

Korisnik baze podataka za automatski odgovor može prepoznati sljedeće ključne pojmove:
Ključna riječVrijednost
$originatorZamijenjeno telefonskim brojem pošiljatelja.
$sender=$originator ($sender je drugi naziv za $originator.)
$recipientZamijenjeno telefonskim brojem koji je primio poruku.
$receiver=$recipient ($receiver je drugi naziv za $recipient.)
$messagedataZamijenjeno tekstom poruke.
$keywordZamijenjeno 1. riječi u poruci. Ova riječ se naziva ključna riječ.
$afterZamijenjeno preostalim tekstom nakon ključne riječi.
$senttimeZamijenjeno vremenskom oznakom koja pokazuje kada je poruka poslana.
$receivedtimeZamijenjeno vremenskom oznakom koja pokazuje kada je poruka primljena.
$messagetypeZamijenjeno vrstom poruke, koja je u većini slučajeva 'SMS:TEXT'.
$idZamijenjeno jedinstvenim nizom,
koji identificira poruku u Ozeki SMS Gateway.
$operatorZamijenjeno nazivom davatelja usluga,
koji je primio poruku u Ozeki SMS Gateway.
$1Zamijenjeno 1. riječi u poruci.
$2Zamijenjeno 2. riječi u poruci.
$3Zamijenjeno 3. riječi u poruci, itd...

Struktura skripte za automatski odgovor objašnjena je na sljedećim web stranicama:

Korak 8 - Testiranje rješenja za automatski odgovor iz baze podataka

Nakon što izvršite korake od 1 do 6, možete isprobati rješenje. Ozeki SMS Gateway će proslijediti dolazne SMS poruke vašem korisniku baze podataka za automatski odgovor. SQL skripta filtrira SMS poruku kako bi stvorila odgovarajuće skupove rezultata SELECT. Svaki redak skupa rezultata predstavljat će poruku koja će se odgovoriti ili proslijediti.

Dnevnik poruka vašeg korisnika baze podataka za automatski odgovor možete pratiti na sljedećoj putanji:
C:\Program Files\Ozeki\Ozeki10\Data\NG\Logs

Kada umetnem podatke u tablicu Ozekimessageout, nisam dobio poruku na svoj mobitel. Što bi moglo biti razlog da nisam dobio tekstualnu poruku koja je umetnuta u izlaznu tablicu koristeći moju SQL konzolu?

Prvo, isključimo problem s mobilnom mrežom. Pošaljite testni SMS izravno iz grafičkog korisničkog sučelja (GUI) Ozeki. Ako poruka uspješno stigne, čini se da je mrežna veza ispravna.

Zatim, moramo provjeriti jesu li poruke prenesene iz vaše baze podataka u Ozeki softver. Umetnite neke testne poruke u tablicu Ozekimessageout. Zatim, unutar Ozeki GUI-a, idite na odlaznu poštu povezanu s korisnikom baze podataka kojeg koristite. Ako ove testne poruke nisu u odlaznoj pošti, problem je u procesu prijenosa podataka između baze podataka i Ozeki.

Želim koristiti jednu bazu podataka za više "korisnika baze podataka". Je li to moguće?

Apsolutno! Ozeki SMS Gateway vam omogućuje održavanje zasebnih dnevnika poruka za različite svrhe korištenjem zasebnih korisnika baze podataka.

Evo korak po korak vodiča:

  • Stvorite nove tablice baze podataka: Postavite dvije nove tablice unutar vaše baze podataka. Za lakšu identifikaciju, možete ih nazvati ozekimessagein2 i ozekimessageout2. Ove tablice trebaju odražavati strukturu postojećih tablica ozekimessagein i ozekimessageout koje koristi vaš prvi korisnik baze podataka.
  • Konfigurirajte drugog korisnika baze podataka: Pristupite obrascu za konfiguraciju vašeg drugog korisnika baze podataka u Ozeki.
  • Izmijenite SQL predloške: Pronađite odjeljak za SQL predloške unutar obrasca za konfiguraciju. Ovi predlošci određuju kako se poruke spremaju u tablice baze podataka.
  • Ažurirajte nazive tablica: Unutar SQL predložaka za drugog korisnika baze podataka, ažurirajte postojeće nazive tablica (ozekimessagein i ozekimessageout) kako bi odgovarali novostvorenim tablicama (ozekimessagein2 i ozekimessageout2).
Slijedeći ove korake, uspostavit ćete zasebne dnevnike poruka za svakog korisnika baze podataka. To vam omogućuje kategorizaciju ili filtriranje poruka prema vašim specifičnim potrebama koristeći odabrane nazive tablica.

Moj Ozeki SMS Gateway se uvijek prekida s mojim MySQL poslužiteljem sa sljedećom porukom o pogrešci: MySQL poslužitelj je otišao. Što da radim?

Da biste poboljšali odziv pri korištenju Ozeki s MySQL-om, prilagodite postavku vremenskog ograničenja. Evo kako:

Konfigurirajte MySQL vremensko ograničenje:

  • Uredite svoju MySQL konfiguracijsku datoteku (npr. my.ini) i postavite parametar interactive_timeout na željeno trajanje u sekundama (npr. interactive_timeout = 28800 za 8 sati).
  • Spremite promjene i ponovno pokrenite MySQL uslugu.

Ažurirajte Ozeki niz za povezivanje:

  • Izmijenite svoj Ozeki niz za povezivanje kako biste koristili Interactive umjesto wait_timeout. Ispravan format je Driver={MySQL ODBC 5.2 ANSI Driver};Server=127.0.0.1;Database=ozeki;User=test;Password=test;Interactive=VAŠA_VRIJEDNOST_VREMENSKOG_OGRA

More information