Разборка SMS и отправка на e-mail

Здесь выкладываем скрипты
Правила форума
Уважаемые Пользователи форума, обратите внимание!
Ни при каких обстоятельствах, Администрация форума, не несёт ответственности за какой-либо, прямой или косвенный, ущерб причиненный в результате использования материалов, взятых на этом Сайте или на любом другом сайте, на который имеется гиперссылка с данного Сайта. Возникновение неисправностей, потерю программ или данных в Ваших устройствах, даже если Администрация будет явно поставлена в известность о возможности такого ущерба.
Просим Вас быть предельно осторожными и внимательными, в использовании материалов раздела. Учитывать не только Ваши пожелания, но и границы возможностей вашего оборудования.
Ответить
pepelxl
Сообщения: 161
Зарегистрирован: 23 июл 2013, 18:47

Смотря что вы называете терминал. Если то что под кнопочкой terminal в winbox, то ответ нет. Если у вас более изощрённые способы подключения, то может и можно.


Аватара пользователя
podarok66
Модератор
Сообщения: 4361
Зарегистрирован: 11 фев 2012, 18:49
Откуда: МО

В CLI Микротика точно нет русской локали и не было никогда. А так как ось закрытая, сомневаюсь, что когда-нибудь будет.


Мануалы изучил и нигде не ошибся? Фаервол отключил? Очереди погасил? Витая пара проверена? ... Тогда Netinstal'ом железку прошей и настрой ее заново. Что, все равно не фурычит? Тогда к нам. Если не подскажем, хоть посочувствуем...
DyadyaGenya
Сообщения: 31
Зарегистрирован: 08 май 2023, 01:29

pepelxl писал(а): 15 июн 2023, 15:57 Смотря что вы называете терминал. Если то что под кнопочкой terminal в winbox, то ответ нет. Если у вас более изощрённые способы подключения, то может и можно.
То, что под кнопочкой. А извращаться по ssh или ещё как-то интереса нет


DyadyaGenya
Сообщения: 31
Зарегистрирован: 08 май 2023, 01:29

podarok66 писал(а): 15 июн 2023, 23:00 В CLI Микротика точно нет русской локали и не было никогда. А так как ось закрытая, сомневаюсь, что когда-нибудь будет.
Что-то кроме символов ascii может вывести?


Аватара пользователя
podarok66
Модератор
Сообщения: 4361
Зарегистрирован: 11 фев 2012, 18:49
Откуда: МО

DyadyaGenya писал(а): 16 июн 2023, 16:37
podarok66 писал(а): 15 июн 2023, 23:00 В CLI Микротика точно нет русской локали и не было никогда. А так как ось закрытая, сомневаюсь, что когда-нибудь будет.
Что-то кроме символов ascii может вывести?
Еще раз повторю для тормозящих в пятницу - ось закрытая. Совсем. И никогда ее не откроют. Потому что это хлеб с маслом для разрабов. Поэтому вопросы типа "А что она умеет ещё недокументированного?" ни к чему не приведут. Если вы уверены с своём скиле зануды-переговорщика, ну тогда попробуйте на официальном форуме разрабов потеребить. Хотя я сомневаюсь, что выйдет что-то... Они свой хлебушек берегут для себя любимых :-)

Я думаю, ничего более не выведет CLI. Но это моё личное мнение, оно часто ошибочно бывает.


Мануалы изучил и нигде не ошибся? Фаервол отключил? Очереди погасил? Витая пара проверена? ... Тогда Netinstal'ом железку прошей и настрой ее заново. Что, все равно не фурычит? Тогда к нам. Если не подскажем, хоть посочувствуем...
aleksandr.konko
Сообщения: 3
Зарегистрирован: 11 фев 2024, 15:46

Добрый день.

Я запустил ваш скрипт. Подскажите, в какую сторону копать, что исправить?

В глобальную переменную попало это:

 extractSmsModem
;(eval / (eval /localdo=;(eval / (eval /localname=$t;value=f=;r=) (eval /ifcondition=(= $1 lte);do=;(eval (eval /setname=(-> $t r);value=(-> (eval (eval /interface lte at-chatas-value=true;input=$3;number=$2;wait=true)) output)))) (eval /ifcondition=(= $1 ppp-client);do=;(eval (eval /setname=(-> $t r);value=(-> (eval (eval /interface ppp-client at-chatas-value=$3;input=$3;number=$2)) output)))) (eval /ifcondition=(!= (~ (-> $t r) ( . (^|
)OK( $ |
))) true);do=;(eval (eval /setname=(-> $t f);value=true));else=;(eval (eval /setname=(-> $t f);value=false))) (eval /returnvalue=$t));name=$chat) (eval /localname=$nameFind;value=(eval (eval /toarrayvalue=))) (eval /foreachcounter=$i;do=;(eval / (eval /ifcondition=(= (eval (eval /interface lte getnumber=$i;value-name=disabled)) false);do=;(eval / (eval /localname=$tmp) (eval /docommand=;(eval (eval /setname=$tmp;value=(eval (<%% bad command name monitor (line 23 column 31) monitor;$i;once;as-value))));on-error=;(eval (eval /setname=$tmp;value=(eval (eval /interface lte infoas-value=$i;number=$i;once=$i))))) (eval /setname=$nameFind;value=(, $nameFind manufacturer=(-> $tmp manufacturer);model=(-> $tmp model);name=(eval (eval /interface lte getnumber=$i;value-name=name));revision=(-> $tmp revision);type=lte)))));in=(eval (eval /interface lte find))) (eval /foreachcounter=$i;do=;(eval / (eval /ifcondition=(= (eval (eval /interface ppp-client getnumber=$i;value-name=disabled)) false);do=;(eval / (eval /localname=$manufacturer) (eval /setname=$nameFind;value=(, $nameFind name=(eval (eval /interface ppp-client getnumber=$i;value-name=name));type=ppp-client)))));in=(eval (eval /interface ppp-client find))) (eval /ifcondition=(= (eval (eval /lenvalue=$nameFind)) 0);do=;(eval (eval /returnvalue=No found Modem))) (eval /localname=$output;value=(eval (<%% (eval /parsevalue=( . ({ " errorStr " =[:tostr " " ]; " arr " =[:toarray " " ]}))) ))) (eval /foreachcounter=$m;do=;(eval / (eval /localname=$tmp) (eval /localname=$tmp2) (eval /localname=$stStart) (eval /localname=$stEnd) (eval /localname=$mode) (eval /docommand=;(eval / (eval /setname=$tmp;value=(eval (<%% $chat (> $chat);(-> $m type);(-> $m name);ATE0))) (eval /setname=$tmp;value=(eval (<%% $chat (> $chat);(-> $m type);(-> $m name);ATV1))) (eval /setname=$tmp;value=(eval (<%% $chat (> $chat);(-> $m type);(-> $m name);AT+CMGF?))) (eval /ifcondition=(-> $tmp f);do=;(eval (eval /setname=$tmp2;value=( . wrong answer to AT+CMGF

)) (<%% bad command name throw (line 51 column 65) throw))) (eval /setname=$stStart;value=(eval (eval /findin=(-> $tmp r);key=+CMGF))) (eval /ifcondition=(!= (eval (eval /typeofvalue=$stStart)) num);do=;(eval (eval /setname=$tmp2;value=( . wrong answer to AT+CMGF

)) (<%% bad command name throw (line 53 column 81) throw))) (eval /setname=$stEnd;value=(eval (eval /findfrom=$stStart;in=(-> $tmp r);key=( .

)))) (eval /ifcondition=(!= (eval (eval /typeofvalue=$stEnd)) num);do=;(eval (eval /setname=$tmp2;value=( . wrong answer to AT+CMGF

)) (<%% bad command name throw (line 55 column 79) throw))) (eval /setname=$tmp2;value=(eval (eval /pickbegin=(+ $stStart 7);counter=(-> $tmp r)))) (eval /ifcondition=(= $tmp2 0);do=;(eval (eval /setname=$mode;value=false));else=;(eval (eval /setname=$mode;value=true))) (eval /ifcondition=$mode;do=;(eval (eval /setname=$tmp;value=(eval (<%% $chat (> $chat);(-> $m type);(-> $m name);AT+CMGF=0))))) (eval /ifcondition=(-> $tmp f);do=;(eval (eval /setname=$tmp2;value=( . wrong answer to AT+CMGF=0

)) (<%% bad command name throw (line 60 column 67) throw))) (eval /localname=$curStruct;value=index=(eval (eval /toarrayvalue=));pdu=(eval (eval /toarrayvalue=))) (eval /setname=$tmp;value=(eval (<%% $chat (> $chat);(-> $m type);(-> $m name);AT+CMGL=4))) (eval /ifcondition=(! (-> $tmp f));do=;(eval / (eval /localname=$flagend;value=true) (eval /setname=$stStart;value=(eval (eval /findin=(-> $tmp r);key=+CMGL))) (eval /ifcondition=(!= (eval (eval /typeofvalue=$stStart)) num);do=;(eval (eval /setname=$flagend;value=false))) (eval /setname=$stStart) (eval /whilecondition=$flagend;do=;(eval / (eval /setname=$stStart;value=(eval (eval /findfrom=$stStart;in=(-> $tmp r);key=+CMGL))) (eval /ifcondition=(!= (eval (eval /typeofvalue=$stStart)) num);do=;(eval (eval /setname=$tmp2;value=( . wrong answer to AT+CMGL

)) (<%% bad command name throw (line 80 column 81) throw))) (eval /setname=$stEnd;value=(eval (eval /findfrom=$stStart;in=(-> $tmp r);key=( .

)))) (eval /ifcondition=(!= (eval (eval /typeofvalue=$stEnd)) num);do=;(eval (eval /setname=$tmp2;value=( . wrong answer to AT+CMGL

)) (<%% bad command name throw (line 82 column 79) throw))) (eval /setname=$tmp2;value=(eval (eval /pickbegin=$stStart;counter=(-> $tmp r);end=$stEnd))) (eval /localname=$stat;value=(eval (eval /tonumvalue=(eval (eval /pickbegin=(+ (eval (eval /findin=$tmp2;key=,)) 1);counter=$tmp2))))) (eval /ifcondition=(|| (= $stat 0) (= $stat 1));do=;(eval / (eval /setname=$stStart;value=(eval (eval /findin=$tmp2;key=,,))) (eval /ifcondition=(!= (eval (eval /typeofvalue=$stStart)) num);do=;(eval (eval /setname=$stStart;value=(+ (eval (eval /findin=$tmp2;key=( . , " " ,))) 4)));else=;(eval (eval /setname=$stStart;value=(+ $stStart 2)))) (eval /localname=$length;value=(eval (eval /tonumvalue=(eval (eval /pickbegin=$stStart;counter=$tmp2;end=(eval (eval /lenvalue=$tmp2))))))) (eval /localname=$index;value=(eval (eval /tonumvalue=(eval (eval /pickbegin=(+ (eval (eval /findin=$tmp2;key= )) 1);counter=$tmp2;end=(eval (eval /findin=$tmp2;key=,))))))) (eval /setname=$stStart;value=(+ $stEnd 2)) (eval /localname=$coretka;value=true) (eval /whilecondition=$coretka;do=;(eval / (eval /ifcondition=(|| (= (eval (eval /pickbegin=$stStart;counter=(-> $tmp r)))
) (= (eval (eval /pickbegin=$stStart;counter=(-> $tmp r)))
));do=;(eval / (eval /setname=$stStart;value=(+ $stStart 1)));else=;(eval (eval /setname=$coretka;value=false))))) (eval /setname=$stEnd;value=(eval (eval /findfrom=$stStart;in=(-> $tmp r);key=( .

)))) (eval /ifcondition=(!= (eval (eval /typeofvalue=$stEnd)) num);do=;(eval (eval /setname=$tmp2;value=( . wrong answer to AT+CMGL

)) (<%% bad command name throw (line 97 column 79) throw))) (eval /setname=$tmp2;value=(eval (eval /pickbegin=$stStart;counter=(-> $tmp r);end=$stEnd))) (eval /setname=$length;value=(* (+ $length 1 (eval (eval /tonumvalue=( . 0x (eval (eval /pickbegin=0;counter=$tmp2;end=2)))))) 2)) (eval /ifcondition=(!= $length (eval (eval /lenvalue=$tmp2)));do=;(eval (eval /setname=$tmp2;value=( . wrong length in CMGL

)) (<%% bad command name throw (line 100 column 74) throw))) (eval /setname=(-> $curStruct pdu);value=(, (-> $curStruct pdu) mode=sms;name=(-> $m name);pdu=$tmp2)) (eval /setname=(-> $curStruct index);value=(, (-> $curStruct index) $index)))) (eval /setname=$tmp2;value=(eval (eval /pickbegin=$stEnd;counter=(-> $tmp r);end=(eval (eval /lenvalue=(-> $tmp r)))))) (eval /ifcondition=(&& (!= (~ $tmp2 ( . \ +CMGL)) true) (= (~ $tmp2 ( . (^|
)OK( $ |
))) true));do=;(eval (eval /setname=$flagend;value=false))))));else=;(eval (eval /localname=$simFill) (eval /docommand=;(eval / (eval /setname=$tmp;value=(eval (<%% $chat (> $chat);(-> $m type);(-> $m name);AT+CMGD=?))) (eval /ifcondition=(-> $tmp f);do=;(eval (<%% bad command name throw (line 110 column 23) throw))) (eval /setname=$stStart;value=(eval (eval /findin=(-> $tmp r);key=+CMGD))) (eval /ifcondition=(!= (eval (eval /typeofvalue=$stStart)) num);do=;(eval (<%% bad command name throw (line 112 column 39) throw))) (eval /setname=$stEnd;value=(eval (eval /findfrom=$stStart;in=(-> $tmp r);key=( .

)))) (eval /ifcondition=(!= (eval (eval /typeofvalue=$stEnd)) num);do=;(eval (<%% bad command name throw (line 114 column 37) throw))) (eval /setname=$tmp2;value=(eval (eval /pickbegin=$stStart;counter=(-> $tmp r);end=$stEnd))) (eval /setname=$stStart;value=(eval (eval /findin=$tmp2;key=())) (eval /ifcondition=(!= (eval (eval /typeofvalue=$stStart)) num);do=;(eval (<%% bad command name throw (line 117 column 39) throw))) (eval /setname=$stEnd;value=(eval (eval /findin=$tmp2;key=)))) (eval /ifcondition=(!= (eval (eval /typeofvalue=$stEnd)) num);do=;(eval (<%% bad command name throw (line 119 column 37) throw))) (eval /setname=$simFill;value=(eval (eval /toarrayvalue=(eval (eval /pickbegin=(+ $stStart 1);counter=$tmp2;end=$stEnd))))));on-error=;(eval (eval /setname=$tmp2;value=( . wrong answer to AT+CMGD=?

)) (<%% bad command name throw (line 121 column 57) throw))) (eval /foreachcounter=$i;do=;(eval (eval /docommand=;(eval / (eval /setname=$tmp;value=(eval (<%% $chat (> $chat);(-> $m type);(-> $m name);( . AT+CMGR= (eval (eval /tostrvalue=$i)))))) (eval /ifcondition=(-> $tmp f);do=;(eval (<%% bad command name throw (line 124 column 23) throw))) (eval /setname=$stStart;value=(eval (eval /findin=(-> $tmp r);key=+CMGR))) (eval /ifcondition=(!= (eval (eval /typeofvalue=$stStart)) num);do=;(eval (<%% bad command name throw (line 126 column 39) throw))) (eval /setname=$stEnd;value=(eval (eval /findfrom=$stStart;in=(-> $tmp r);key=( .

)))) (eval /ifcondition=(!= (eval (eval /typeofvalue=$stEnd)) num);do=;(eval (<%% bad command name throw (line 128 column 37) throw))) (eval /setname=$tmp2;value=(eval (eval /pickbegin=$stStart;counter=(-> $tmp r);end=$stEnd))) (eval /localname=$stat;value=(eval (eval /tonumvalue=(eval (eval /pickbegin=(+ (eval (eval /findin=$tmp2;key= )) 1);counter=$tmp2))))) (eval /ifcondition=(|| (= $stat 0) (= $stat 1));do=;(eval / (eval /setname=$stStart;value=(eval (eval /findin=$tmp2;key=,,))) (eval /ifcondition=(!= (eval (eval /typeofvalue=$stStart)) num);do=;(eval (eval /setname=$stStart;value=(+ (eval (eval /findin=$tmp2;key=( . , " " ,))) 4)));else=;(eval (eval /setname=$stStart;value=(+ $stStart 2)))) (eval /localname=$length;value=(eval (eval /tonumvalue=(eval (eval /pickbegin=$stStart;counter=$tmp2;end=(eval (eval /lenvalue=$tmp2))))))) (eval /setname=$stStart;value=(+ $stEnd 2)) (eval /localname=$coretka;value=true) (eval /whilecondition=$coretka;do=;(eval / (eval /ifcondition=(|| (= (eval (eval /pickbegin=$stStart;counter=(-> $tmp r)))
) (= (eval (eval /pickbegin=$stStart;counter=(-> $tmp r)))
));do=;(eval / (eval /setname=$stStart;value=(+ $stStart 1)));else=;(eval (eval /setname=$coretka;value=false))))) (eval /setname=$stEnd;value=(eval (eval /findfrom=$stStart;in=(-> $tmp r);key=( .

)))) (eval /ifcondition=(!= (eval (eval /typeofvalue=$stEnd)) num);do=;(eval (<%% bad command name throw (line 142 column 37) throw))) (eval /setname=$tmp2;value=(eval (eval /pickbegin=$stStart;counter=(-> $tmp r);end=$stEnd))) (eval /setname=$length;value=(* (+ $length 1 (eval (eval /tonumvalue=( . 0x (eval (eval /pickbegin=0;counter=$tmp2;end=2)))))) 2)) (eval /ifcondition=(!= $length (eval (eval /lenvalue=$tmp2)));do=;(eval (<%% bad command name throw (line 145 column 35) throw))) (eval /setname=(-> $curStruct pdu);value=(, (-> $curStruct pdu) mode=sms;name=(-> $m name);pdu=$tmp2)) (eval /setname=(-> $curStruct index);value=(, (-> $curStruct index) $i)))));on-error=;(eval (eval /setname=$tmp2;value=( . wrong answer to AT+CMGR= $i ; simfill= (eval (eval /tostrvalue=$simFill))

)) (<%% bad command name throw (line 148 column 92) throw))));in=$simFill))) (eval /ifcondition=(> (eval (eval /lenvalue=(-> $curStruct index))) 0);do=;(eval / (eval /setname=$tmp;value=(eval (<%% $chat (> $chat);(-> $m type);(-> $m name);AT+CMGD=1,1))) (eval /ifcondition=(-> $tmp f);do=;(eval / (eval /foreachcounter=$i;do=;(eval / (eval /localname=$iterError;value=5) (eval /whilecondition=(> $iterError 0);do=;(eval / (eval /setname=$tmp;value=(eval (<%% $chat (> $chat);(-> $m type);(-> $m name);( . AT+CMGD= (eval (eval /tostrvalue=$i)))))) (eval /setname=$iterError;value=(- $iterError 1)) (eval /ifcondition=(! (-> $tmp f));do=;(eval (eval /setname=$iterError;value=0))))) (eval /ifcondition=(-> $tmp f);do=;(eval (eval /ifcondition=(!= (~ (-> $m model) R11e) true);do=;(eval / (eval /setname=$tmp2;value=( . wrong answer in CMGD

)) (<%% bad command name throw (line 161 column 40) throw));else=;(eval (eval /setname=(-> $tmp f);value=false))))));in=(-> $curStruct index)))))) (eval /ifcondition=$mode;do=;(eval (eval /setname=$tmp;value=(eval (<%% $chat (> $chat);(-> $m type);(-> $m name);AT+CMGF=1))))) (eval /ifcondition=(-> $tmp f);do=;(eval (eval /setname=$tmp2;value=( . wrong answer to AT+CMGF=1

)) (<%% bad command name throw (line 165 column 67) throw))) (eval /ifcondition=(> (eval (eval /lenvalue=(-> $curStruct index))) 0);do=;(eval / (eval /setname=(-> $output arr);value=(, (-> $output arr) (-> $curStruct pdu))))));on-error=;(eval / (eval /localname=$es;value=(-> $tmp r)) (eval /ifcondition=(= (-> $m type) ppp-client);do=;(eval / (eval /localname=$man;value=(eval (<%% $chat (> $chat);(-> $m type);(-> $m name);AT+GMI))) (eval /ifcondition=(-> $man f);do=;(eval (eval /setname=$man;value=(eval (<%% $chat (> $chat);(-> $m type);(-> $m name);AT+CGMI))))) (eval /ifcondition=(-> $man f);do=;(eval (eval /setname=$man;value=no information));else=;(eval (eval /setname=$man;value=(-> $man r)))) (eval /localname=$mod;value=(eval (<%% $chat (> $chat);(-> $m type);(-> $m name);AT+GMM))) (eval /ifcondition=(-> $mod f);do=;(eval (eval /setname=$mod;value=(eval (<%% $chat (> $chat);(-> $m type);(-> $m name);AT+CGMM))))) (eval /ifcondition=(-> $mod f);do=;(eval (eval /setname=$mod;value=no information));else=;(eval (eval /setname=$mod;value=(-> $mod r)))) (eval /localname=$rev;value=(eval (<%% $chat (> $chat);(-> $m type);(-> $m name);AT+GMR))) (eval /ifcondition=(-> $rev f);do=;(eval (eval /setname=$rev;value=(eval (<%% $chat (> $chat);(-> $m type);(-> $m name);AT+CGMR))))) (eval /ifcondition=(-> $rev f);do=;(eval (eval /setname=$rev;value=no information));else=;(eval (eval /setname=$rev;value=(-> $rev r)))) (eval /setname=$m;value=(, $m manufacturer=$man;model=$mod;revision=$rev)))) (eval /setname=(-> $output errorStr);value=( . (-> $output errorStr) Modem: (eval (eval /tostrvalue=$m))

Error: $tmp2 Returned:

$es

)))));in=$nameFind) (eval /returnvalue=$output))


Ответить