SMS odgovori iz SQL baze podataka

Autoreply Database User u Ozeki SMS Gateway-u može se povezati sa vašom Microsoft SQL, Oracle, MySQL, Sybase, itd... bazom podataka pomoću connection string-a. Pokreće bilo koji SELECT upit koji dostavite, nakon primanja SMS poruke. Rezultati upita će biti poslati kao odlazne poruke. Upiti i tabele takođe mogu biti izmenjeni iz vaše vlastite aplikacije.

Kako poslati SMS odgovor iz SQL

Da biste poslali SMS odgovor iz SQL:

  1. Pokrenite Ozeki SMS Gateway
  2. Dodajte novog Autoreply database korisnika
  3. Kreirajte SQL strukturu tabele baze podataka
  4. Podesite Autoreply database korisnika
  5. Obezbedite skriptu za autoreply tekst
  6. Koristite prepoznatljive brojeve i ključne reči
  7. Pošaljite test SMS da dobijete odgovor iz SQL
  8. Proverite logove Autoreply database korisnika

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

Možete kreirati sledeću uslugu koristeći ovo rešenje (Slika 1):
1.) SMS poruka je primljena od strane Ozeki SMS Gateway-a sa mobilnog telefona.
2.) Ozeki SMS Gateway-ov Autoreply Database User traži ključne reči u SMS poruci koristeći txt fajl.
3.) U zavisnosti od pretrage, autoreply poruka će biti izabrana iz vašeg database servera sa istim txt fajlom.

Važno je da imate IP SMS provajdera usluga ili GSM modem konfigurisan na vašem Ozeki SMS Gateway-u, kako biste mogli da primate SMS poruke i automatski odgovarate na njih koristeći ovaj primer.

kako radi ozeki sms gateway-ov autoreply database user
Slika 1 - Kako radi Ozeki SMS Gateway-ov Autoreply Database User

Korak 1 - Podesite Autoreply Database User u Ozeki SMS Gateway-u

Prvo morate da instalirate Autoreply Database User-a da biste kreirali objašnjenu uslugu. Na 'Management' konzoli molimo vas da kliknete '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 User-a i kliknite na plavi 'install' link pored njega. Kao što možete videti na Slici 3.

instalirajte autoreply database user sa management konzole
Slika 3 - Instalirajte Autoreply Database User sa 'Management' konzole

Korak 2 - Kreirajte strukturu tabele baze podataka

Autoreply Database User će SELECT-ovati odgovore SMS poruka iz tabele baze podataka. Kreirajte sledeću strukturu baze podataka za čuvanje SMS poruka (Slika 4). Ovaj primer koristi MySQL database server, ali možete koristiti i druge baze podataka kao što su Microsoft SQL, Oracle, Sybase, itd... Takođe možete koristiti i druge tabele i rasporede tabela.


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 reč."), 
		("red","Crvena je dobra boja."), 
		("blue","Plava nije najbolja opcija.");
Slika 4 - CREATE TABLE i INSERT redova u 'autoreplymessage' tabelu

Vaše tabele mogu biti pregledane sa SELECT * FROM upitima (Slika 5). Iako ovaj primer sadrži samo jednu tabelu.

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

(3 reda izmenjeno)
Slika 5 - Čitanje 'autoreplymessage' tabele sa SELECT upitom

U slučaju da nije instaliran drajver za bazu podataka sa database serverom, trebalo bi da instalirate drajver, jer će vam trebati connection string u sledećem koraku. Database drajver povezuje Ozeki SMS Gateway i database server. U većini slučajeva database drajver je instaliran sa database serverom.

Корак 3 - Конфигуришите корисника базе података за аутоматски одговор да користи вашу базу података

Мораћете да унесете тип везе са базом података и везу са базом података у панелу 'Подешавање базе података' корисника базе података за аутоматски одговор (Слика 6). Тип можете изабрати из комбо бокса, док везу морате унети у текстуално поље.

подешавање корисника базе података за аутоматски одговор за упите СМС информација
Слика 6 - Подешавање корисника базе података за аутоматски одговор за упите СМС информација

На слици 7 можете видети пример везе за MySQL базу података. Имајте на уму да можете користити своју врсту везе (OleDB, ODBC, SQLServer, Oracle) за свој сервер базе података који може бити Microsoft SQL, Oracle, Sybase итд... У случају да користите ODBC драјвер за MySQL, само треба да измените IP адресу MySQL сервера, назив базе података, корисничко име и лозинку у своје вредности у следећој вези:

Тип везе: ODBC
Веза са базом података: Driver={MySQL ODBC 5.3 Unicode Driver}; Server=127.0.0.1;Database=ozekisms;User=ozeki;Password=abc123;Option=4;

Слика 7 - Пример везе за ODBC везу са MySQL базом података

Да бисте пронашли везе за друге сервере базе података, предлаже се да прочитате водич за везе базе података за СМС.

Корак 4 - Напишите скрипту за аутоматски одговор из SQL базе података

Сада је време да напишете скриптни фајл који може да ИЗАБЕРЕ ред из ваше табеле базе података ако је табела успешно креирана у КОРКУ 2. Атрибут поруке изабраног реда ће бити послат као одговор на СМС поруку. Овде можете пронаћи путању примера скрипте: C:\Program Files\Ozeki\Ozeki10\Data\NG\config\OzekiUsername\sqlscript.txt

Ове фајлове можете уредити једноставним текстуалним едитором или можете направити свој txt фајл и уредити га својом апликацијом, што је корисно ако желите да измените упите. Молимо да наведете путању до фајла користећи корисника базе података за аутоматски одговор кликом на 'Подешавање базе података' и избором таб странице 'Скрипта за аутоматски одговор' (Слика 8)

наведите путању txt скрипте за корисника базе података за аутоматски одговор
Слика 8 - Наведите путању txt скрипте за корисника базе података за аутоматски одговор

Корак 5 - Структура SQL упитних скрипти

SQL скрипта корисника базе података за аутоматски одговор садржи парове филтер-изјава, који раде потпуно као if-then структура у програмским језицима. Примљена СМС порука пролази кроз филтер и ако је у реду, извршиће се SQL SELECT изјава. Садржај поруке изабраних редова ће бити прослеђен на број телефона. Овај број је 1. параметар резултата SELECT изјаве, док је текст поруке 2. Филтер може да идентификује бројеве телефона, делове текста и кључне речи. Кључна реч сваке поруке је прва реч текста. Прослеђивање се дешава ако је адреса примаоца укључена у базу података (Слика 11).

Корак 6 - Једноставан пример кључне речи

Овај пример ће радити на следећој табели коју можете видети на слици 9.

id          keyword                        msg
----------  ------------------------------ -------------------------------------
 1          default                        Нема података за ову кључну реч.
 2          red                            Црвена је добра боја.
 3          blue                           Плава није најбоља опција.
Слика 9 - Садржај табеле 'autoreplymessage'

Можете покренути следећу скрипту на слици 10 на табели 'autoreplymessage' додавањем у 'sqlscript.txt'. Подсетимо да је кључна реч, која је симболизована са 'k', прва реч у СМС поруци. Ова реч ће бити тестирана филтером. Ако је провера филтера успешна, SELECT изјава се извршава и скрипта ће се зауставити. Као што видите, можете ставити константне вредности у SELECT изјаву. На пример, '$sender', који је пошиљалац долазне поруке.

Елементи скрипте које можете ставити у sqlscript.txt
SELECT '$sender',msg FROM autoreplymessage WHERE keyword='red'
#Први филтер проверава да ли је реч 'RED' била кључна реч.
#Ако је тачно, бира 'Црвена је добра боја.' као поруку за одговор.
#Ако није тачно, прелази на следећи филтер.

k^BLUE
SELECT '$sender',msg FROM autoreplymessage WHERE keyword='blue'
#Други филтер проверава да ли је реч 'BLUE' била кључна реч.
#Ако је тачно, бира 'Плава није најбоља опција.' као поруку за одговор.
#Ако није тачно, прелази на следећи филтер.

k.*
SELECT '$sender',msg FROM autoreplymessage WHERE keyword='default'
#Трећи филтер ће прихватити било коју другу кључну реч.
#Бира 'Нема података за ову кључну реч.' као поруку за одговор.
Слика 10 - Пример скрипте која се може ставити у sqlscript.txt

Филтер део SQL упитне скрипте ради слично као филтер део СМС скрипте за одговор, али имајте на уму да тражите само примере филтера, јер је други део увек SQL SELECT изјава.

Корак 7 - Преддефинисане кључне речи у Ozeki SMS Gateway

Ове врсте кључних речи могу се поставити у скрипту. На пример '$sender' :


SELECT '$sender',msg FROM autoreplymessage WHERE keyword='red'
Слика 11 - Шаље поруку на '$sender'

Корисник аутоматског одговора базе података може препознати следеће кључне речи:
Кључна речВредност
$originatorЗамењено телефонским бројем пошиљаоца.
$sender=$originator ($sender је други назив за $originator.)
$recipientЗамењено телефонским бројем који је примио поруку.
$receiver=$recipient ($receiver је други назив за $recipient.)
$messagedataЗамењено текстом поруке.
$keywordЗамењено првом речи у поруци. Ова реч се назива кључна реч.
$afterЗамењено преосталим текстом након кључне речи.
$senttimeЗамењено временском ознаком која показује када је порука послата.
$receivedtimeЗамењено временском ознаком која показује када је порука примљена.
$messagetypeЗамењено врстом поруке, која је у већини случајева 'SMS:TEXT'.
$idЗамењено јединственим стрингом,
који идентификује поруку у Ozeki SMS Gateway.
$operatorЗамењено именом провајдера услуга,
који је примио поруку у Ozeki SMS Gateway.
$1Замењено првом речи у поруци.
$2Замењено другом речи у поруци.
$3Замењено трећом речи у поруци, итд...

Структура скрипта за аутоматски одговор је објашњена на следећим веб страницама: Корак 8 - Тестирање решења за аутоматски одговор из базе података

Након обављања корака 1 до 6, можете испробати решење. Ozeki SMS Gateway ће проследити долазне SMS поруке вашем кориснику аутоматског одговора базе података. SQL скрипт за упит филтрира SMS поруку да би креирао одговарајуће резултате SELECT упита. Сваки ред резултата ће представљати поруку која треба да буде одговорена или прослеђена.

Можете пратити дневник порука вашег корисника аутоматског одговора базе података на следећој путањи:
C:\Program Files\Ozeki\Ozeki10\Data\NG\Logs

Када убацим податке у Ozekimessageout табелу, не добијам поруку на свој мобилни телефон. Шта би могло бити узрок што не добијам текстуалну поруку која је убачена у out табелу користећи моју SQL конзолу?

Прво, елиминишимо проблем са мобилном мрежом. Пошаљите тест SMS директно из графичког корисничког интерфејса (GUI) Ozeki-ја. Ако порука успешно стигне, мрежна веза изгледа да функционише исправно.

Затим, морамо проверити да ли се поруке преносе из ваше базе података у Ozeki софтвер. Убаците неке тест поруке у Ozekimessageout табелу. Затим, у Ozeki GUI-ју, идите до outbox-а повезаног са корисником базе података који користите. Ако ове тест поруке недостају у outbox-у, проблем је у процесу преноса података између базе података и Ozeki-ја.

Желим да користим једну базу података за више "корисника базе података". Да ли је то могуће?

Апсолутно! Ozeki SMS Gateway вам омогућава да одржавате одвојене дневнике порука за различите намене користећи одвојене кориснике базе података.

Ево упутства корак по корак:

  • Креирајте нове табеле у бази података: Подесите две нове табеле у вашој бази података. За лакшу идентификацију, можете их назвати ozekimessagein2 и ozekimessageout2. Ове табеле треба да имају исту структуру као постојеће ozekimessagein и ozekimessageout табеле које користи ваш први корисник базе података.
  • Конфигуришите другог корисника базе података: Приступите формулару за конфигурацију за ваш други корисник базе података у Ozeki-ју.
  • Измените SQL шаблоне: Пронађите одељак за SQL шаблоне унутар формулара за конфигурацију. Ови шаблони одређују како се поруке чувају у табелама базе података.
  • Ажурирајте имена табела: Унутар SQL шаблона за другог корисника базе података, ажурирајте постојећа имена табела (ozekimessagein и ozekimessageout) да одговарају новокреираним табелама (ozekimessagein2 и ozekimessageout2).
Пратећи ове кораке, успоставићете одвојене дневнике порука за сваког корисника базе података. Ово вам омогућава да категоришете или филтрирате поруке на основу ваших специфичних потреба користећи изабрана имена табела.

Мој Ozeki SMS Gateway се увек дисконектује од мог MySQL сервера са следећом поруком о грешци: MySQL Server has gone away. Шта да радим?

Да бисте побољшали реакцију при коришћењу Ozeki-ја са MySQL-ом, подесите тајмаут. Ево како:

Конфигуришите MySQL тајмаут:

  • Уредите вашу MySQL конфигурациону датотеку (нпр. my.ini) и поставите параметар interactive_timeout на жељени временски период у секундама (нпр. interactive_timeout = 28800 за 8 сати).
  • Сачувајте измене и рестартујте MySQL сервис.

Ажурирајте Ozeki connection string:

  • Измените ваш Ozeki connection string да користи Interactive уместо wait_timeout. Исправан формат је Driver={MySQL ODBC 5.2 ANSI Driver};Server=127.0.0.1;Database=ozeki;User=test;Password=test;Interactive=ВАША_ВРЕДНОСТ_ТАЈМАУТА.

  • Запамтите да замените ВАША_ВРЕДНОСТ_ТАЈМАУТА са жељеним тајмаутом у секундама.
Пратећи ове кораке, оптимизоваћете MySQL тајмауте за гладак рад у Ozeki-ју, што је посебно корисно за дуготрајне задатке или велике скупове података.

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

More information