Instalace a Nastavení
Vytvořit tabulku fronta:
CREATE TABLE `QUEUE` (
`ID` int(11) NOT NULL auto_increment,
`PHONE` varchar(15) NOT NULL default '',
`MSG` text NOT NULL,
`SCRIPT` varchar(200) default NULL,
`SENDTIME` timestamp(14) NOT NULL,
`TRY` smallint(6) default '0',
`ERRORNUM` smallint(6) default '0',
`STATUS` smallint(6) default '0',
`PARAM` text,
PRIMARY KEY (`ID`),
KEY `SENDTIME` (`SENDTIME`,`STATUS`)
);
Vaše tabulka může mít odlišnou strukturu (název si také můžete zvolit sami) ale jsou nutné následující pole (nutné dodržet název)
ID - jako jednoznačný identifikátor každého záznamu
PHONE - pro číslo SMS zprávy
MSG - text vlastní zprávy
SCRIPT - brána přes kterou bude zpráva odeslána
PARAM - další parametry brány (doručenka, flash, identifikace, ...)
Význam volitelných (doporučených) sloupců:
SENDTIME - kdy se má zpráva odeslat
TRY - počet pokusů odeslané zprávy, lze využít pro maximální počet pokusů při odesílání
ERRORNUM - číslo chyby při odesílání, seznam chyb najdete na konci tohoto dokumentu
STATUS - stav zprávy, například 0 připravena k odeslání, 1 odeslaná
Specifikovat SQL příkazy
Jedná se o sql příkazy na vybrání zpráv k odeslaní (select.sql), příkazy po úspěšném odeslání zprávy (sentok.sql) a při chybě (error.sql)
Příklady těchto příkazů:
select.sql - očekává 4 hodnoty id, phone, msg, script a pamam
Select ID, phone, msg, script, param from QUEUE Where sendtime <= now() and status = 0 and TRY < 3
tzn. vyberou se zprávy, které mají status 0 počet pokusů menší jak 3 a jejichž čas je menší než současný
sentok.sql - očekává jeden parametr - ID právě odeslané zprávy:
Update QUEUE SET STATUS = 1 where ID = ?
error.sql - očekává dva parametry - číslo chyby a ID zprávy
Update QUEUE SET TRY=TRY+1, ERRORNUM = ? WHERE ID = ?
Tyto 3 sql soubory musí být uloženy v domácím adresáři (v adresáři, kde je dserver.jar)
Setup.ini - přístup k databázi a další nastavení
jdbc.name=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost/SMSdb
jdbc.user=admin
jdbc.password=mykey
Tyto údaje získáte v instrukcích k vašemu jdbc driveru. Příklad zde uvedený je pro mysql, a databázi SMSdb (obsahující tabulku queue), která je uložena na lokálním stroji.
refresh=30 #jak často se má kontrolovat přítomnost nových zpráv ve frontě (údaj v sekundách)
runSMTPServer=false # zda se má spouštět smtp server
Log_Screen=true # vypisovat log i na obrazovku
Pokud používáte proxy k připojení na internet, vyplnit ještě tyto údaje:
proxy_name=localhost
proxy_port=3128
proxy_realm=WinProxy
proxy_user=jmeno
proxy_pwd=heslo
Gates.ini - nastavení parametrů bran - zejména jména a hesla
V současnosti jsou podporovány tyto brány:
Oskar - volná brána Oskara
Mobilbonus, SMScz, Smsmidlet, Mobilem - toto jsou placené brány našich partnerů, které umějí odesílat na všechny operátory, více info.
Pro placené brány je nutné zadat vaše registrační jméno a heslo, tyto údaje jsou náplní tohoto souboru.
např.
MobilBonus_Login=kubik
MobilBonus_Password=heslo
Mobilem_Login=kubik
Mobilem_Password=druheheslo
tzn. názevskriptu, podtržítko a Login pro zadání jmén nebo Password pro zadání hesla.
Operators.ini - přiřazení bran operátorům
Tento soubor je na rozdíl od předchozích uložen v adresáři Scripts, zde si nastavíte jakou odesílací bránu chcete použít pro jednotivlé operátory například:
Eurotel=Smscz
Oskar=Oskar
T-Mobile=SmsMidlet
Tyto údaje se použijí v případě, že není vyplněn script v tabulce fronty, přidání dalších operátorů můžete provést v souboru prefixes.ini
A to je vše...
Program z konzole spustíte takto:
windows: java -cp "c:\jaybird\firebirdsql-full.jar;.\;c:\jserver\dserver.jar" dserver.Service
kde c:/jaybird/firebirdql.jar nahraďte vaším jdbc driverem
linux: java -cp "/opt/firebirdsql-full.jar:./:/opt/jserver/dserver.jar" dserver.Service
Veškeré události (chyby, odesílání...) jsou ukládány do souboru dserver.log (případně i na obrazovku)
Zprovoznění jako služby (NT service) pod windows
K provozování služby je použit takzvaný wrapper, uložený v adresáři service. Stačí když upravíte soubor wrapper.conf a to řádek:
wrapper.java.classpath.4=
kde uveďte plnou cestu k vašemu jdbc driveru, příp.
wrapper.java.command=
kde uveďte cestu k java interpretu (java.exe)
Spuštěním Installservice-NT.bat, nainstalujete službu do systému, spuštění, ukončení služby potom provádíte klasicky ve správci služeb jako každou jinou službu. Odinstalování provedete UninstallService-NT.bat
Vyzkoušet wrapper můžete spuštěním přes konzoly -> start.bat
Zprovoznění jako daemona na Linuxu
K provozování služby je použit takzvaný wrapper, uložený v adresáři daemon. Stačí když upravíte soubor wrapper.conf a to řádek:
wrapper.java.classpath.4=
kde uveďte plnou cestu k vašemu jdbc driveru, příp.
wrapper.java.command=
kde uveďte cestu k java interpretu JVM
Spouštěcí skript je jserver, což je klasický daemon script.
jserver console spustí v konzole, jserver start spuštěním jako service, dále stop, restart, příp. dump