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 SQLDa biste poslali SMS odgovor iz SQL:
- Pokrenite Ozeki SMS Gateway
- Dodajte novog Autoreply database korisnika
- Kreirajte SQL strukturu tabele baze podataka
- Podesite Autoreply database korisnika
- Obezbedite skriptu za autoreply tekst
- Koristite prepoznatljive brojeve i ključne reči
- Pošaljite test SMS da dobijete odgovor iz SQL
- Proverite logove Autoreply database korisnika
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.
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.
Pronađite Autoreply Database User-a i kliknite na plavi 'install' link pored njega. Kao što možete videti na Slici 3.
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). Тип можете изабрати из комбо бокса, док везу морате унети у текстуално поље.
На слици 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;
Да бисте пронашли везе за друге сервере базе података, предлаже се да прочитате водич за везе базе података за СМС.
Корак 4 - Напишите скрипту за аутоматски одговор из SQL базе податакаСада је време да напишете скриптни фајл који може да ИЗАБЕРЕ ред из ваше табеле базе података ако је табела успешно креирана у КОРКУ 2. Атрибут поруке изабраног реда ће бити послат као одговор на СМС поруку. Овде можете пронаћи путању примера скрипте: C:\Program Files\Ozeki\Ozeki10\Data\NG\config\OzekiUsername\sqlscript.txt
Ове фајлове можете уредити једноставним текстуалним едитором или можете направити свој txt фајл и уредити га својом апликацијом, што је корисно ако желите да измените упите. Молимо да наведете путању до фајла користећи корисника базе података за аутоматски одговор кликом на 'Подешавање базе података' и избором таб странице 'Скрипта за аутоматски одговор' (Слика 8)
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.txtSELECT '$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
Прво, елиминишимо проблем са мобилном мрежом. Пошаљите тест 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-ја са 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=ВАША_ВРЕДНОСТ_ТАЈМАУТА.
- Запамтите да замените ВАША_ВРЕДНОСТ_ТАЈМАУТА са жељеним тајмаутом у секундама.
Driver={MySQL ODBC 5.2 ANSI Driver};Server=127.0.0.1;Database=ozeki;User=test;Password=test;interactive=;Option=8;
More information
- SMS odgovor sa računara na mobilni
- Kako nAPIsati skriptu za SMS odgovor
- Kako poslati SMS odgovor iz SQL