Odpovědi na SMS z SQL databáze

Uživatel Autoreply Database v Ozeki SMS Gateway se může připojit k vaší databázi Microsoft SQL, Oracle, MySQL, Sybase atd. pomocí připojovacího řetězce. Spustí jakýkoli SELECT dotaz, který zadáte, po přijetí SMS zprávy. Výsledná sada dotazu bude odeslána jako odchozí zprávy. Dotazy a tabulky lze také upravovat z vaší vlastní aplikace.

Jak odeslat odpověď na SMS z SQL

Pro odeslání odpovědi na SMS z SQL:

  1. Spusťte Ozeki SMS Gateway
  2. Přidejte nového uživatele Autoreply database
  3. Vytvořte strukturu tabulky SQL databáze
  4. Nastavte uživatele Autoreply database
  5. Zadejte skript pro automatickou odpověď
  6. Použijte identifikovatelná čísla a klíčová slova
  7. Odešlete testovací SMS pro získání odpovědi z SQL
  8. Zkontrolujte protokoly uživatele Autoreply database

Video 1 - Jak odeslat odpověď na SMS z SQL (Návodné video)

Toto řešení vám umožní vytvořit následující službu (Obrázek 1):
1.) SMS zpráva je přijata Ozeki SMS Gateway z mobilního telefonu.
2.) Uživatel Autoreply Database v Ozeki SMS Gateway vyhledá klíčová slova v SMS zprávě pomocí txt souboru.
3.) V závislosti na vyhledávání bude automatická odpověď vybrána z vašeho databázového serveru pomocí stejného txt souboru.

Je důležité, abyste měli nakonfigurovaného poskytovatele IP SMS služeb nebo GSM modem ve vašem Ozeki SMS Gateway, abyste mohli přijímat SMS zprávy a automaticky na ně odpovídat pomocí tohoto příkladu.

jak funguje uživatel autoreply database v ozeki sms gateway
Obrázek 1 - Jak funguje uživatel Autoreply Database v Ozeki SMS Gateway

Krok 1 - Nastavení uživatele Autoreply Database v Ozeki SMS Gateway

Nejprve je třeba nainstalovat uživatele Autoreply Database pro vytvoření popsané služby. Na konzoli 'Management' prosím klikněte na 'Přidat', jak je vidět na Obrázku 2.

klikněte na přidat uživatele nebo aplikaci na konzoli management
Obrázek 2 - Klikněte na 'Přidat' uživatele nebo aplikaci na konzoli 'Management'

Najděte uživatele Autoreply Database a klikněte na modrý odkaz 'nainstalovat' vedle něj. Jak můžete vidět na Obrázku 3.

nainstalujte uživatele autoreply database z konzole management
Obrázek 3 - Nainstalujte uživatele Autoreply Database z konzole 'Management'

Krok 2 - Vytvoření struktury databázové tabulky

Uživatel Autoreply Database bude vybírat odpovědi na SMS zprávy z databázové tabulky. Vytvořte následující databázovou strukturu pro uložení SMS zpráv (Obrázek 4). Tento příklad používá databázový server MySQL, ale můžete použít i jiné databáze jako Microsoft SQL, Oracle, Sybase atd. Můžete použít i jiné tabulky a rozložení tabulek.


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","Pro toto klíčové slovo nejsou žádná data."), 
		("red","Červená je dobrá barva."), 
		("blue","Modrá není nejlepší volba.");
Obrázek 4 - VYTVOŘENÍ TABULKY a VLOŽENÍ řádků do tabulky 'autoreplymessage'

Vaše tabulky lze zobrazit pomocí SELECT * FROM příkazů (Obrázek 5). Ačkoli tento příklad obsahuje pouze jednu tabulku.

> SELECT * FROM autoreplymessage;
id          keyword                        msg
----------  ------------------------------ -------------------------------------
 1          default                        Pro toto klíčové slovo nejsou žádná data.
 2          red                            Červená je dobrá barva.
 3          blue                           Modrá není nejlepší volba.

(3 řádky ovlivněny)
Obrázek 5 - Čtení tabulky 'autoreplymessage' pomocí SELECT příkazu

Pokud není s databázovým serverem nainstalován databázový ovladač, měli byste ovladač nainstalovat, protože budete potřebovat připojovací řetězec v dalším kroku. Databázový ovladač spojuje Ozeki SMS Gateway a databázový server. Ve většině případů je databázový ovladač nainstalován spolu s databázovým serverem.

Krok 3 - Nakonfigurujte uživatele databáze Autoreply pro použití vaší databáze

Budete muset zadat typ připojení k databázi a připojovací řetězec v panelu 'Nastavení databáze' uživatele Autoreply Database User (Obrázek 6). Typ lze vybrat z rozbalovacího seznamu, zatímco řetězec musí být vložen do textového pole.

nastavení uživatele databáze autoreply pro dotaz na SMS informace
Obrázek 6 - Nastavení uživatele Autoreply Database User pro dotaz na SMS informace

Na obrázku 7 můžete vidět ukázkový řetězec pro připojení k MySQL databázi. Mějte na paměti, že můžete použít vlastní typ připojovacího řetězce (OleDB, ODBC, SQLServer, Oracle) pro vlastní databázový server, kterým může být Microsoft SQL, Oracle, Sybase atd... V případě, že používáte ODBC ovladač pro MySQL, stačí upravit IP adresu MySQL serveru, název databáze, uživatelské jméno a heslo na vlastní hodnoty v následujícím řetězci:

Typ připojení: ODBC
Připojovací řetězec: Driver={MySQL ODBC 5.3 Unicode Driver}; Server=127.0.0.1;Database=ozekisms;User=ozeki;Password=abc123;Option=4;

Obrázek 7 - Ukázkový připojovací řetězec pro ODBC připojení k MySQL databázi

Pro nalezení připojovacího řetězce k jiným databázovým serverům, se doporučuje přečíst si průvodce SMS Database Connection Strings.

Krok 4 - Napište skript pro automatickou odpověď z SQL databáze

Nyní je čas napsat skriptový soubor, který je schopen SELECT řádek z vaší databázové tabulky, pokud byla tabulka úspěšně vytvořena v KROKU 2. Atribut zprávy vybraného řádku bude odpovědí na SMS zprávu. Zde můžete najít cestu k příkladu skriptu: C:\Program Files\Ozeki\Ozeki10\Data\NG\config\OzekiUsername\sqlscript.txt

Tyto soubory lze upravovat pomocí jednoduchého textového editoru nebo můžete vytvořit vlastní txt soubor a upravit jej vlastní aplikací, což je užitečné, pokud chcete upravit dotazy. Zadejte cestu k souboru pomocí uživatele Autoreply Database User kliknutím na 'Nastavení databáze' a výběrem záložky 'Autoreply script' (Obrázek 8)

zadejte cestu k txt skriptu pro uživatele Autoreply Database User
Obrázek 8 - Zadejte cestu k txt skriptu pro uživatele Autoreply Database User

Krok 5 - Struktura SQL skriptů pro dotazy

SQL skript uživatele Autoreply Database User obsahuje dvojice filtr-příkaz, které fungují přesně jako struktura if-then v programovacích jazycích. Přijatá SMS zpráva projde filtrem a pokud je v pořádku, spustí se SQL SELECT příkaz. Obsah zprávy vybraných řádků bude přeposlán na telefonní číslo. Toto číslo je 1. parametrem výsledné sady SELECT příkazu, zatímco text zprávy je 2. Filtr je schopen identifikovat telefonní čísla, fragmenty textu a klíčová slova. Klíčové slovo každé zprávy je první slovo textu. Přeposlání proběhne, pokud je adresa příjemce zahrnuta v databázi (Obrázek 11).

Krok 6 - Jednoduchý příklad s klíčovým slovem

Tento příklad bude fungovat na následující tabulce, kterou můžete vidět na obrázku 9.

id          keyword                        msg
----------  ------------------------------ -------------------------------------
 1          default                        Pro toto klíčové slovo nejsou žádná data.
 2          red                            Červená je dobrá barva.
 3          blue                           Modrá není nejlepší volba.
Obrázek 9 - Obsah tabulky 'autoreplymessage'

Následující skript na obrázku 10 můžete spustit na tabulce 'autoreplymessage' jeho přidáním do 'sqlscript.txt'. Připomínáme, že klíčové slovo, které je symbolizováno znakem 'k', je první slovo v SMS zprávě. Toto slovo bude testováno filtrem. Pokud je kontrola filtru úspěšná, spustí se SELECT příkaz a skript se zastaví. Jak vidíte, můžete vložit konstantní hodnoty do SELECT příkazu. Například '$sender', což je odesílatel příchozí zprávy.

Prvky skriptu, které můžete vložit do sqlscript.txt
SELECT '$sender',msg FROM autoreplymessage WHERE keyword='red'
#První filtr kontroluje, zda bylo klíčové slovo 'RED'.
#Pokud ano, vybere 'Červená je dobrá barva.' jako odpověď.
#Pokud ne, přejde k dalšímu filtru.

k^BLUE
SELECT '$sender',msg FROM autoreplymessage WHERE keyword='blue'
#Druhý filtr kontroluje, zda bylo klíčové slovo 'BLUE'.
#Pokud ano, vybere 'Modrá není nejlepší volba.' jako odpověď.
#Pokud ne, přejde k dalšímu filtru.

k.*
SELECT '$sender',msg FROM autoreplymessage WHERE keyword='default'
#Třetí filtr přijme jakékoli jiné klíčové slovo.
#Vybere 'Pro toto klíčové slovo nejsou žádná data.' jako odpověď.
Obrázek 10 - Příklad skriptu, který lze vložit do sqlscript.txt

Filtrovací část SQL skriptu funguje podobně jako filtrovací část SMS messaging skriptu, ale mějte na paměti, že hledáte pouze příklady filtrů, protože druhá část je vždy SQL SELECT příkaz.

Krok 7 - Předdefinovaná klíčová slova v Ozeki SMS Gateway

Tyto typy klíčových slov lze umístit do skriptu. Například '$sender':


SELECT '$sender',msg FROM autoreplymessage WHERE keyword='red'
Obrázek 11 - Odešle zprávu na '$sender'

Uživatel databáze automatických odpovědí může rozpoznat následující klíčová slova:
Klíčové slovoHodnota
$originatorNahrazeno telefonním číslem odesílatele.
$sender=$originator ($sender je jiný název pro $originator.)
$recipientNahrazeno telefonním číslem, které zprávu přijalo.
$receiver=$recipient ($receiver je jiný název pro $recipient.)
$messagedataNahrazeno textem zprávy.
$keywordNahrazeno 1. slovem ve zprávě. Toto slovo se nazývá klíčové slovo.
$afterNahrazeno zbývajícím textem za klíčovým slovem.
$senttimeNahrazeno časovým razítkem, které ukazuje, kdy byla zpráva odeslána.
$receivedtimeNahrazeno časovým razítkem, které ukazuje, kdy byla zpráva přijata.
$messagetypeNahrazeno typem zprávy, což je ve většině případů 'SMS:TEXT'.
$idNahrazeno jedinečným řetězcem,
který identifikuje zprávu v Ozeki SMS Gateway.
$operatorNahrazeno názvem poskytovatele služeb,
který přijal zprávu v Ozeki SMS Gateway.
$1Nahrazeno 1. slovem ve zprávě.
$2Nahrazeno 2. slovem ve zprávě.
$3Nahrazeno 3. slovem ve zprávě, atd...

Struktura skriptu pro automatické odpovědi je vysvětlena na těchto webových stránkách:

Krok 8 - Otestování řešení automatických odpovědí z databáze

Po provedení kroků 1 až 6 můžete vyzkoušet řešení. Ozeki SMS Gateway bude přeposílat příchozí SMS zprávy vašemu uživateli databáze automatických odpovědí. Skript SQL dotazu filtruje SMS zprávu, aby vytvořil správné výsledné sady SELECT. Každý řádek výsledné sady bude představovat zprávu, na kterou má být odpovězeno nebo přeposláno.

Protokol zpráv vašeho uživatele databáze automatických odpovědí můžete sledovat na následující cestě:
C:\Program Files\Ozeki\Ozeki10\Data\NG\Logs

Když vložím data do tabulky Ozekimessageout, nedostanu zprávu na svůj mobilní telefon. Co by mohlo být příčinou, že nedostanu textovou zprávu, která je vložena do výstupní tabulky pomocí mé SQL konzole?

Nejprve vylučme problém s mobilní sítí. Odešlete testovací SMS přímo z grafického uživatelského rozhraní (GUI) Ozeki. Pokud zpráva dorazí úspěšně, připojení k síti funguje správně.

Dále musíme ověřit, zda jsou zprávy přenášeny z vaší databáze do softwaru Ozeki. Vložte nějaké testovací zprávy do tabulky Ozekimessageout. Poté v GUI Ozeki přejděte do odchozí pošty spojené s databázovým uživatelem, kterého používáte. Pokud tyto testovací zprávy v odchozí poště chybí, problém spočívá v procesu přenosu dat mezi databází a Ozeki.

Chtěl bych použít jednu databázi pro více "databázových uživatelů". Je to možné?

Absolutně! Ozeki SMS Gateway vám umožňuje udržovat samostatné protokoly zpráv pro různé účely pomocí samostatných databázových uživatelů.

Zde je návod krok za krokem:

  • Vytvořte nové databázové tabulky: Nastavte dvě nové tabulky ve vaší databázi. Pro snadnou identifikaci je můžete pojmenovat ozekimessagein2 a ozekimessageout2. Tyto tabulky by měly kopírovat strukturu stávajících tabulek ozekimessagein a ozekimessageout používaných vaším prvním databázovým uživatelem.
  • Nakonfigurujte druhého databázového uživatele: Otevřete konfigurační formulář pro vašeho druhého databázového uživatele v Ozeki.
  • Upravte SQL šablony: Najděte sekci pro SQL šablony v konfiguračním formuláři. Tyto šablony určují, jak jsou zprávy ukládány do databázových tabulek.
  • Aktualizujte názvy tabulek: V SQL šablonách pro druhého databázového uživatele aktualizujte stávající názvy tabulek (ozekimessagein a ozekimessageout) tak, aby odpovídaly nově vytvořeným tabulkám (ozekimessagein2 a ozekimessageout2).
Podle těchto kroků vytvoříte samostatné protokoly zpráv pro každého databázového uživatele. To vám umožní kategorizovat nebo filtrovat zprávy podle vašich specifických potřeb pomocí zvolených názvů tabulek.

Moje Ozeki SMS Gateway se vždy odpojí od mého MySQL serveru s následující chybovou zprávou: MySQL Server has gone away. Co bych měl udělat?

Pro zlepšení odezvy při používání Ozeki s MySQL upravte nastavení časového limitu. Zde je návod:

Konfigurace časového limitu MySQL:

  • Upravte svůj konfigurační soubor MySQL (např. my.ini) a nastavte parametr interactive_timeout na požadovanou dobu v sekundách (např. interactive_timeout = 28800 pro 8 hodin).
  • Uložte změny a restartujte službu MySQL.

Aktualizujte připojovací řetězec Ozeki:

  • Upravte svůj připojovací řetězec Ozeki tak, aby používal Interactive místo wait_timeout. Správný formát je Driver={MySQL ODBC 5.2 ANSI Driver};Server=127.0.0.1;Database=ozeki;User=test;Password=test;Interactive=VAŠE_HODNOTA_ČASOVÉHO_LIMITU.

  • Nezapomeňte nahradit VAŠE_HODNOTA_ČASOVÉHO_LIMITU požadovaným časovým limitem v sekundách.
Podle těchto kroků optimalizujete časové limity připojení MySQL pro plynulejší provoz v Ozeki, což je zvláště užitečné pro dlouhotrvající úlohy nebo velké datové sady.

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

More information