Răspunsuri SMS dintr-o bază de date SQL
Utilizatorul Autoreply Database al Ozeki SMS Gateway se poate conecta la baza dvs. de date Microsoft SQL, Oracle, MySQL, Sybase etc. folosind un șir de conexiune. Acesta execută orice interogare SELECT pe care o furnizați, după primirea unui mesaj SMS. Setul de rezultate al interogării va fi trimis ca mesaje de ieșire. Interogările și tabelele pot fi modificate și din propria aplicație.
Cum să trimiteți un răspuns SMS din SQL
Pentru a trimite un răspuns SMS din SQL:
- Lansați Ozeki SMS Gateway
- Adăugați un nou utilizator Autoreply database
- Creați structura tabelului din baza de date SQL
- Configurați utilizatorul Autoreply database
- Furnizați scriptul de text pentru autoreply
- Folosiți numere și cuvinte cheie identificabile
- Trimiteți un SMS de test pentru a primi răspunsul din SQL
- Verificați jurnalele utilizatorului Autoreply database
Puteți crea următorul serviciu folosind această soluție (Figura 1):
1.) Un mesaj SMS este primit de Ozeki SMS Gateway de la un telefon mobil.
2.) Utilizatorul Autoreply Database al Ozeki SMS Gateway caută cuvinte cheie în mesajul SMS folosind un fișier txt.
3.) În funcție de căutare, un mesaj de autoreply va fi selectat din serverul dvs. de baze de date cu același fișier txt.
Este important să aveți un furnizor de servicii IP SMS sau un modem GSM configurat pe Ozeki SMS Gateway, pentru a putea primi mesaje SMS și a răspunde automat la ele folosind acest exemplu.
Pasul 1 - Configurați utilizatorul Autoreply Database în Ozeki SMS Gateway
Mai întâi trebuie să instalați un utilizator Autoreply Database pentru a crea serviciul explicat. În consola 'Management' vă rugăm să faceți clic pe 'Add' așa cum se vede în Figura 2.
Găsiți utilizatorul Autoreply Database și faceți clic pe link-ul albastru 'install' de lângă el. Așa cum puteți vedea în Figura 3.
Pasul 2 - Creați structura tabelului din baza de date
Utilizatorul Autoreply Database va SELECTA mesajele SMS de răspuns dintr-un tabel de baze de date. Creați următoarea structură de baze de date pentru a stoca mesajele SMS (Figura 4). Acest exemplu folosește un server de baze de date MySQL, dar puteți folosi și alte baze de date precum Microsoft SQL, Oracle, Sybase etc. Puteți folosi și alte tabele și layout-uri de tabele.
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","Nu există date pentru acest cuvânt cheie."), ("red","Roșu este o culoare bună."), ("blue","Albastru nu este cea mai bună opțiune.");Figura 4 - CREATE TABLE și INSERT rânduri în tabelul 'autoreplymessage'
Tabelele dvs. pot fi vizualizate cu instrucțiuni SELECT * FROM (Figura 5). Deși acest exemplu conține doar un tabel.
> SELECT * FROM autoreplymessage;
id keyword msg ---------- ------------------------------ ------------------------------------- 1 default Nu există date pentru acest cuvânt cheie. 2 red Roșu este o culoare bună. 3 blue Albastru nu este cea mai bună opțiune. (3 rânduri afectate)Figura 5 - Citirea tabelului 'autoreplymessage' cu o instrucțiune SELECT
În cazul în care nu este instalat niciun driver de baze de date cu serverul de baze de date, ar trebui să instalați un driver, deoarece veți avea nevoie de șirul de conexiune în pasul următor. Driverul de baze de date conectează Ozeki SMS Gateway și serverul de baze de date. În majoritatea cazurilor, un driver de baze de date este instalat împreună cu serverul de baze de date.
Pasul 3 - Configurați utilizatorul bazei de date Autoreply pentru a utiliza baza dvs. de date
Va trebui să introduceți tipul de conexiune la baza de date și șirul de conexiune în panoul 'Configurare baza de date' al utilizatorului Autoreply Database (Figura 6). Tipul poate fi selectat din caseta combobox, în timp ce șirul trebuie introdus în caseta de text.
În Figura 7 puteți vedea un exemplu de șir pentru o conexiune la baza de date MySQL.
Rețineți că puteți utiliza propriul tip de șir de conexiune (OleDB, ODBC,
SQLServer, Oracle) pentru propriul server de baze de date
care poate fi Microsoft SQL, Oracle, Sybase etc... În cazul în care utilizați un driver ODBC
pentru MySQL,
trebuie doar să modificați IP-ul serverului MySQL, numele bazei de date, numele de utilizator și
parola cu valorile dvs. în următorul șir:
Tip conexiune: ODBC
Șir conexiune: Driver={MySQL ODBC 5.3 Unicode Driver}; Server=127.0.0.1;Database=ozekisms;User=ozeki;Password=abc123;Option=4;
Pentru a găsi șirul de conexiune pentru alte servere de baze de date, vi se sugerează să citiți Ghidul șirurilor de conexiune la baza de date SMS.
Pasul 4 - Scrieți scriptul pentru răspuns automat din baza de date SQLAcum este momentul să scrieți fișierul script care este capabil să SELECTeze un rând din tabela dvs. de baze de date dacă tabela a fost creată cu succes în PASUL 2. Atributul mesaj al rândului selectat va fi răspuns la mesajul SMS. Aici puteți găsi calea scriptului exemplu: C:\Program Files\Ozeki\Ozeki10\Data\NG\config\OzekiUsername\sqlscript.txt
Un simplu editor de text poate edita aceste fișiere sau puteți crea propriul fișier txt și să-l editați cu propria aplicație, ceea ce este util dacă doriți să modificați interogările. Furnizați calea către fișier utilizând utilizatorul Autoreply Database făcând clic pe 'Configurare baza de date' și selectând fila 'Script autoreply' (Figura 8)
Scriptul SQL al utilizatorului Autoreply Database conține perechi de filtre-interogări, care funcționează exact ca structura if-then în limbajele de programare. Mesajul SMS primit trece prin filtru și dacă este ok, se va executa o interogare SELECT. Conținutul mesajului rândurilor selectate va fi trimis către un număr de telefon. Acest număr este primul parametru al setului de rezultate al interogării SELECT, în timp ce textul mesajului este al doilea. Filtrul este capabil să identifice numere de telefon, fragmente de text și cuvinte cheie. Cuvântul cheie al fiecărui mesaj este primul cuvânt din text. Trimiterea se întâmplă dacă adresa destinatarului este inclusă în baza de date (Figura 11).
Pasul 6 - Un exemplu simplu de cuvânt cheieAcest exemplu va funcționa pe următorul tabel pe care îl puteți vedea în Figura 9.
id keyword msg ---------- ------------------------------ ------------------------------------- 1 default Nu există date pentru acest cuvânt cheie. 2 red Roșu este o culoare bună. 3 blue Albastru nu este cea mai bună opțiune.Figura 9 - Conținutul tabelei 'autoreplymessage'
Puteți rula următorul script din Figura 10 pe tabela 'autoreplymessage' adăugându-l în 'sqlscript.txt'. Ca o reamintire, cuvântul cheie, care este simbolizat de caracterul 'k', este primul cuvânt din mesajul SMS. Acest cuvânt va fi testat de filtru. Dacă un test de filtru reușește, interogarea SELECT se execută și scriptul se va opri. După cum puteți vedea, puteți plasa valori constante în interogarea SELECT. De exemplu, '$sender', care este expeditorul mesajului primit.
Elemente de script pe care le puteți plasa în sqlscript.txtSELECT '$sender',msg FROM autoreplymessage WHERE keyword='red' #Primul filtru verifică dacă cuvântul 'RED' a fost cuvântul cheie. #Dacă este adevărat, SELECTează 'Roșu este o culoare bună.' ca mesaj de răspuns. #Dacă este fals, merge la următorul filtru. k^BLUE SELECT '$sender',msg FROM autoreplymessage WHERE keyword='blue' #Al doilea filtru verifică dacă cuvântul 'BLUE' a fost cuvântul cheie. #Dacă este adevărat, SELECTează 'Albastru nu este cea mai bună opțiune.' ca mesaj de răspuns. #Dacă este fals, merge la următorul filtru. k.* SELECT '$sender',msg FROM autoreplymessage WHERE keyword='default' #Al treilea filtru va accepta orice alt cuvânt cheie. #SELECTează 'Nu există date pentru acest cuvânt cheie.' ca mesaj de răspuns.Figura 10 - Exemplu de script care poate fi plasat în sqlscript.txt
Partea de filtru a scriptului de interogare SQL funcționează similar cu partea de filtru a scriptului de mesagerie SMS, dar rețineți să căutați doar exemple de filtre, deoarece a doua parte este întotdeauna o interogare SELECT SQL.
Pasul 7 - Cuvinte cheie predefinite în Ozeki SMS Gateway
Aceste tipuri de cuvinte cheie pot fi plasate în script. De exemplu '$sender':
SELECT '$sender',msg FROM autoreplymessage WHERE keyword='red'Figura 11 - Trimite msg către '$sender'
Utilizatorul bazei de date Autoreply poate recunoaște următoarele cuvinte cheie:
Cuvânt cheie | Valoare | $originator | Înlocuit cu numărul de telefon al expeditorului. |
---|---|
$sender | =$originator ($sender este un alt nume pentru $originator.) |
$recipient | Înlocuit cu numărul de telefon care a primit mesajul. |
$receiver | =$recipient ($receiver este un alt nume pentru $recipient.) |
$messagedata | Înlocuit cu textul mesajului. |
$keyword | Înlocuit cu primul cuvânt din mesaj. Acest cuvânt se numește cuvânt cheie. |
$after | Înlocuit cu textul rămas după cuvântul cheie. |
$senttime | Înlocuit cu un marcaj de timp care arată când a fost trimis mesajul. |
$receivedtime | Înlocuit cu un marcaj de timp care arată când a fost primit mesajul. |
$messagetype | Înlocuit cu tipul mesajului, care este în majoritatea cazurilor 'SMS:TEXT'. |
$id | Înlocuit cu un șir unic, care identifică mesajul în Ozeki SMS Gateway. |
$operator | Înlocuit cu numele furnizorului de servicii, care a primit mesajul în Ozeki SMS Gateway. |
$1 | Înlocuit cu primul cuvânt din mesaj. |
$2 | Înlocuit cu al doilea cuvânt din mesaj. |
$3 | Înlocuit cu al treilea cuvânt din mesaj, etc... |
Structura scriptului de autoreply este explicată pe aceste pagini web:
- Structura simplă a unui fișier de script este definită pe această pagină web.
- Exemplu 'sqlscript.txt'
Pasul 8 - Testați soluția de autoreply din baza de date
După ce ați efectuat Pașii 1 până la 6, puteți încerca soluția. Ozeki SMS Gateway va redirecționa mesajele SMS primite către Utilizatorul dvs. de bază de date Autoreply. Scriptul de interogare SQL filtrează mesajul SMS pentru a crea seturile de rezultate SELECT corespunzătoare. Fiecare rând al setului de rezultate va reprezenta un mesaj de răspuns sau de redirecționat.
Puteți urmări jurnalul de mesagerie al Utilizatorului dvs. de bază de date Autoreply la următoarea cale:
C:\Program Files\Ozeki\Ozeki10\Data\NG\Logs
Când introduc date în tabela Ozekimessageout, nu primesc mesajul pe telefonul meu mobil. Care ar putea fi cauza pentru care nu primesc mesajul text care este introdus în tabela out folosind consola mea SQL?
În primul rând, să eliminăm o problemă de rețea mobilă. Trimiteți un SMS de test direct din interfața grafică (GUI) a Ozeki. Dacă mesajul ajunge cu succes, conexiunea la rețea pare să funcționeze corect.
Apoi, trebuie să verificăm dacă mesajele sunt transferate din baza de date în software-ul Ozeki. Introduceți câteva mesaje de test în tabela Ozekimessageout. Apoi, în GUI-ul Ozeki, navigați la cutia de ieșire asociată utilizatorului de bază de date pe care îl folosiți. Dacă aceste mesaje de test lipsesc din cutia de ieșire, problema se află în procesul de transfer de date între baza de date și Ozeki.
Aș dori să folosesc o singură bază de date pentru mai mulți "utilizatori de bază de date". Este posibil acest lucru?
Absolut! Ozeki SMS Gateway vă permite să mențineți jurnale de mesaje distincte pentru diferite scopuri folosind utilizatori separați de bază de date.
Iată un ghid pas cu pas:
- Creați tabele noi în baza de date: Configurați două tabele noi în baza de date. Pentru o identificare ușoară, le puteți numi ozekimessagein2 și ozekimessageout2. Aceste tabele ar trebui să reflecte structura tabelelor existente ozekimessagein și ozekimessageout folosite de primul utilizator de bază de date.
- Configurați al doilea utilizator de bază de date: Accesați formularul de configurare pentru al doilea utilizator de bază de date în Ozeki.
- Modificați șabloanele SQL: Localizați secțiunea pentru șabloane SQL în cadrul formularului de configurare. Aceste șabloane specifică modul în care mesajele sunt salvate în tabelele de bază de date.
- Actualizați numele tabelelor: În cadrul șabloanelor SQL pentru al doilea utilizator de bază de date, actualizați numele tabelelor existente (ozekimessagein și ozekimessageout) pentru a se potrivi cu tabelele nou create (ozekimessagein2 și ozekimessageout2).
Ozeki SMS Gateway-ul meu se deconectează mereu de la serverul meu MySQL cu următorul mesaj de eroare: MySQL Server has gone away. Ce ar trebui să fac?
Pentru a îmbunătăți răspunsul atunci când utilizați Ozeki cu MySQL, ajustați setarea de timeout. Iată cum:
Configurați timeout-ul MySQL:
- Editați fișierul de configurare MySQL (de ex., my.ini) și setați parametrul interactive_timeout la durata dorită în secunde (de ex., interactive_timeout = 28800 pentru 8 ore).
- Salvați modificările și reporniți serviciul MySQL.
Actualizați șirul de conexiune Ozeki:
-
Modificați șirul de conexiune Ozeki pentru a folosi Interactive în loc de wait_timeout. Formatul corect este Driver={MySQL ODBC 5.2 ANSI Driver};Server=127.0.0.1;Database=ozeki;User=test;Password=test;Interactive=VALOAREA_TIMEOUT.
- Nu uitați să înlocuiți VALOAREA_TIMEOUT cu valoarea de timeout dorită în secunde.
Driver={MySQL ODBC 5.2 ANSI Driver};Server=127.0.0.1;Database=ozeki;User=test;Password=test;interactive=;Option=8;
More information
- SMS reply from pc to mobile
- How to write an SMS reply script
- How to send an SMS reply from SQL