[ viss02 @ 16.08.2016. 21:29 ] @
Hocu da napisem skriptu koja ce se izvrsavati svakih 10tak minuta i prosledjivati sms koji je u inbox-u na drugi broj. napisao sam skriptu koja generalno radi, ali problem je sto ne znam kako da napravim proveru da li necega ima u inbox-u i hoce li se poslati 'mucak' ili poruka sa sadrzajem.

Code:
# skupljanje podataka
:local broj
:set broj [/tool sms inbox get 0 phone]

:local text
:set text [/tool sms inbox get 0 message]

# formiranje teksta za slanje
:local textzaslanje
:set textzaslanje ("Poruka sa broja: ". $broj . "\r\n" . $text);

# slanje poruke
/tool sms send usb3 channel=0 smsc=+381650000900 message=$textzaslanje phone-number=+381****

# brisanje inbox-a
/tool sms inbox remove 0


Ukoliko je inbox prazan, skripta posalje poruku "Poruka sa broja: " i to je to...
[ bmarkovic06 @ 18.08.2016. 10:35 ] @
Nisam radio sa sms-om na mikrotiku pa ne znam kako izgleda print inboxa. Ima li neki podatak da je uvek isti? Jer mozes postaviti jedan if koji ce proveravati ima li sta u inbox-u.


:if ( [/tool sms inbox find pa nesto, neki podatak ] = "") i onda ako ima to nesto radis do={ pa dalje deo skripte koji uzima tekst i broj ili else za prekid skripte
[ bmarkovic06 @ 18.08.2016. 10:56 ] @
Evo gledam kod mene na mikrotiku, mozes da uzmes znak + od broj kao podatak, jer ako si dobio poruku ona uglavnom dolazi sa nekog broja koji pocinje kao +xxx.



:if ( [/tool sms inbox find phone="+" ] = "") , mada misli, da je ovo nacin da pronadjes tacan podatak ne samo ako sadrzi pa eksperimentisi sa -- (where) pa trazi podatak.
[ viss02 @ 21.08.2016. 18:46 ] @
napisao sam skriptu, gledao sam samo da li je tekst poruke duzi od 1 karaktera :)

Code:
# skupljanje podataka
:local broj
:set broj [/tool sms inbox get 0 phone]

:local text
:set text [/tool sms inbox get 0 message]

:local duzina
:set duzina [:len $text]

:if ( $duzina>1 ) do={
    #:log info "nekoliko"
    
    # formiranje teksta za slanje
    :local textzaslanje
    :set textzaslanje ("Poruka sa broja: ".  $broj . "\r\n" . $text);
    
    #slanje poruke
    /tool sms send usb3 channel=0 smsc=+381650000900 message=$textzaslanje phone-number=+381xxxxx

    #brisanje inbox-a
    /tool sms inbox remove 0
    }


Kada je pokrenem iz konzole radi savrseno. Kada je scheduler pokrene ne radi :(

Code:
/system scheduler
add interval=10m name=sms_forward on-event="/system script run sms" policy=\
    ftp,reboot,read,write,policy,test,password,sniff,sensitive start-date=\
    aug/16/2016 start-time=20:50:00

[ bmarkovic06 @ 22.08.2016. 09:58 ] @
Nemoj tako pokretati iz schedulera, nego on event = sms

Znaci u polje on event samo stavis naziv skripte, ne treba ti ovo /system script run
[ viss02 @ 22.08.2016. 18:58 ] @
Code:
add interval=10m name=sms_forward on-event=sms policy=\
    ftp,reboot,read,write,policy,test,password,sniff,sensitive start-date=\
    aug/16/2016 start-time=20:50:00


Neće. Ne radi čak ni kada kliknem na skriptu pa Run Script. Brojač se povećava ali ne dolazi do slanja poruke niti do brisanja postojećih iz inbox-a.

Kada u konzoli ukucam "sys script run sms" radi bez problema.
[ Aleksandar Đokić @ 23.08.2016. 04:08 ] @
Da ne fali nesto u policy?
[ bmarkovic06 @ 23.08.2016. 15:44 ] @
I ja to kontam, jer nema logike da radi iz konzole a ovako ne.


Jel imas standardnog administratora ili si dodao novog usera sa limitiranim perm?
[ viss02 @ 23.08.2016. 21:23 ] @
policy - sve je stiklirano.

Jedini sam admin i imam full pristup. Nasao sam na mt forumu da su isto neki ljudi imali problem da skripta nece da radi ako se ne pokrene iz konzole i to su resavali pisanjem novog koda ili nisu resili nikako.
[ bmarkovic06 @ 24.08.2016. 10:18 ] @
Probaj dal ce iz netwatcha da se izvrsi skripta.

Uzmes npr da pingujes lokalnu adresu mikrotika i ako je UP da ti izvrsi skriptu.

I onda lepo ako prodje skripta ti napravis scheduler koji pali i gasi netwatch pravilo svakih 10 min i to ce da ti radi :D. Jeste petljanje ali mozda proradi.
[ viss02 @ 25.08.2016. 14:40 ] @
Probao sam, isto se desava kao i kada se pokrene iz scheduler-a.
Povecava se Run Count ali ne radi.

Mozda je neki bug u softveru, mozda bih trebao da rasturim skriptu pa da proveravam deo po deo koje parce koda nece da se izvrsi kada se ne pokrene kroz cmd.
Danas se stvar lomi. Ili odustajem ili pravim neki crontab koji treba preko ssh da se nakaci na mt i da pokrene skriptu iz konzole.
[ bmarkovic06 @ 28.08.2016. 19:24 ] @
Mislio sam da izvrsis komplet skriptu, ne samo da pozoves izvrsavanje.