1 (edytowany przez jagrok 2015-01-15 21:00:41)

Temat: smstools3

Hej,

Posiadam router 1043ND z HUBem i modem e398.
Mialem zainstalowany pakiet 3ginfo + gnookii

Po doinstalowaniu smstools3 widzę że modem nie wykonuje komend, czasem tak czasem nie.
Po wylaczeniu pluginu 3gInfo, kazda komenda dziala.

Co mogę zrobić żeby korzystać z 3ginfo i gnookii ale również mieć możliwość kontrolowania routera za pomocą komend sms ?
Czy muszę z czegoś zrezygnować ze względu na jeden interfejs komunikacyjny USB1 ?

Dodatkowo mam problem ze skryptem zmodyfikowałem skrypt obsluga_sms , tak aby po wysłaniu mu komendy sms reboot, przed jej wykonaniem, odpowiedzial na tego smsa "czekam na wykonanie skryptu".
Jednak to nie dziala, czy ktos moglby fachowo sie wypowiedzieć na ten temat ?


#!/bin/sh

if [ $1 != "RECEIVED" ]; then
exit 0
fi

TEL=$(awk '/^From:/ {print $2}' $2)

if grep -q status $2; then
echo "To: $TEL" > /tmp/sms
echo "" >> /tmp/sms
echo "jeszcze zyje" >> /tmp/sms
mv /tmp/sms /var/spool/sms/outgoing
fi

if grep -q reboot $2; then
echo "To: $TEL" > /tmp/sms
echo "" >> /tmp/sms
echo "czekam na wykonanie skryptu" >> /tmp/sms
mv /tmp/sms /var/spool/sms/outgoing
sleep 60
reboot
fi
Jan 15 20:42:08 Gargoyle daemon.info smsd: GSM1: Checking device for incoming SMS
Jan 15 20:42:08 Gargoyle daemon.info smsd: GSM1: Checking if modem is ready
Jan 15 20:42:08 Gargoyle daemon.debug smsd: GSM1: -> AT
Jan 15 20:42:08 Gargoyle daemon.debug smsd: GSM1: Command is sent, waiting for the answer
Jan 15 20:42:08 Gargoyle daemon.debug smsd: GSM1: <- OK
Jan 15 20:42:08 Gargoyle daemon.info smsd: GSM1: Pre-initializing modem
Jan 15 20:42:09 Gargoyle daemon.debug smsd: GSM1: -> ATE0+CMEE=1;+CREG=2
Jan 15 20:42:09 Gargoyle daemon.debug smsd: GSM1: Command is sent, waiting for the answer
Jan 15 20:42:09 Gargoyle daemon.debug smsd: GSM1: <- OK
Jan 15 20:42:09 Gargoyle daemon.info smsd: GSM1: Initializing modem
Jan 15 20:42:09 Gargoyle daemon.debug smsd: GSM1: -> ATE0
Jan 15 20:42:09 Gargoyle daemon.debug smsd: GSM1: Command is sent, waiting for the answer
Jan 15 20:42:09 Gargoyle daemon.debug smsd: GSM1: <- OK
Jan 15 20:42:10 Gargoyle daemon.debug smsd: GSM1: -> AT+CSQ
Jan 15 20:42:10 Gargoyle daemon.debug smsd: GSM1: Command is sent, waiting for the answer
Jan 15 20:42:10 Gargoyle daemon.debug smsd: GSM1: <- +CSQ: 20,99 OK
Jan 15 20:42:10 Gargoyle daemon.info smsd: GSM1: Signal Strength Indicator: (20,99) -73 dBm (Excellent), Bit Error Rate: not known or not detectable
Jan 15 20:42:10 Gargoyle daemon.info smsd: GSM1: Checking if Modem is registered to the network
Jan 15 20:42:10 Gargoyle daemon.debug smsd: GSM1: -> AT+CREG?
Jan 15 20:42:10 Gargoyle daemon.debug smsd: GSM1: Command is sent, waiting for the answer
Jan 15 20:42:10 Gargoyle daemon.debug smsd: GSM1: <- +CREG: 2,1, FFFE, 410D3E, 7 OK
Jan 15 20:42:10 Gargoyle daemon.info smsd: GSM1: Modem is registered to the network
Jan 15 20:42:10 Gargoyle daemon.info smsd: GSM1: Selecting PDU mode
Jan 15 20:42:11 Gargoyle daemon.debug smsd: GSM1: -> AT+CMGF=0
Jan 15 20:42:11 Gargoyle daemon.debug smsd: GSM1: Command is sent, waiting for the answer
Jan 15 20:42:11 Gargoyle daemon.debug smsd: GSM1: <- OK
Jan 15 20:42:11 Gargoyle daemon.info smsd: GSM1: Checking memory size
Jan 15 20:42:11 Gargoyle daemon.debug smsd: GSM1: -> AT+CPMS?
Jan 15 20:42:11 Gargoyle daemon.debug smsd: GSM1: Command is sent, waiting for the answer
Jan 15 20:42:11 Gargoyle daemon.debug smsd: GSM1: <- +CPMS: "SM",2,25,"ME",0,50,"ME",0,50 OK
Jan 15 20:42:11 Gargoyle daemon.info smsd: GSM1: Used memory is 2 of 25
Jan 15 20:42:11 Gargoyle daemon.info smsd: GSM1: Trying to get stored message 1
Jan 15 20:42:12 Gargoyle daemon.debug smsd: GSM1: -> AT+CMGR=1
Jan 15 20:42:12 Gargoyle daemon.debug smsd: GSM1: Command is sent, waiting for the answer
Jan 15 20:42:12 Gargoyle daemon.debug smsd: GSM1: <- +CMGR: 0,,25 07918497908952F0040B918497324354F500005110510224304006F2B2F8FDA603 OK
Jan 15 20:42:12 Gargoyle daemon.notice smsd: GSM1: SMS received, From: 48xxxxxxxxx
Jan 15 20:42:12 Gargoyle daemon.info smsd: GSM1: Wrote an incoming message file: /var/spool/sms/incoming/GSM1.yK1Bdw
Jan 15 20:42:12 Gargoyle daemon.debug smsd: GSM1: Running eventhandler: /usr/bin/obsluga_sms RECEIVED /var/spool/sms/incoming/GSM1.yK1Bdw
Jan 15 20:42:21 Gargoyle daemon.notice smsd: MAINPROCESS: Moved file /var/spool/sms/outgoing/sms to /var/spool/sms/checked

2

Odp: smstools3

Nie możesz w jednym czasie korzystać z kilku programów które z tego samego interfejsu chcą ciągnąc dane. Jeden na raz, nie dwa.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

3

Odp: smstools3

czyli musiałbym każdorazowo po skorzystaniu z 3ginfo, wyłączyć go a włączyć smstools3 ?

Czy ze skryptem coś jest nie tak, że nie dostaje smsa zwrotnego a reboot się wykonuje ?

if grep -q reboot $2; then
echo "To: $TEL" > /tmp/sms
echo "" >> /tmp/sms
echo "czekam na wykonanie skryptu" >> /tmp/sms
mv /tmp/sms /var/spool/sms/outgoing
sleep 60
reboot
fi

4

Odp: smstools3

Nie zdąży się pewnie wysłać sms a już rebootuje. To 60s może być za mało. Sprawdź czy plik nadal siedzi w outgoing i dopiero restartuj.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

5 (edytowany przez jagrok 2015-01-16 08:47:25)

Odp: smstools3

Ok.
Zweryfikuje.

Po za tym mam dodatkową kwestię.

Mam modem e398 na sztywno ustawiony komendą

echo "AT^SYSCFGEX=\"03\",3fffffff,2,4,7fffffffffffffff,," > /dev/ttyUSB1

Tutaj bez problemowo trzyma połączenie LTE z anteną skierowaną w kierunku masztu, sygnał na poziomie 64%

Jeżeli modem przełącze komendą

echo "AT^SYSCFGEX=\"0302\",3fffffff,2,4,7fffffffffffffff,," > /dev/ttyUSB1

to niestety skacze mi po zakresach, najpierw łączy się na LTE a później przełącza się na DC-HSPA+ 58%, HSPA+ 48%, WCDMA 41%.
Korzystam z promocji LTE w PLAY 30 dni bez ograniczeń więc wiadomo że zależy mi na utrzymywaniu go w ryzach.

Czy jest jakaś możliwość aby router/script w momencie gdy nie ma sygnału przez dłuższy określony czas, mógł go przełączyć ze sztywnego pasma na pasmo ogólne ?

Początkowo myślałem że przełączanie go za pomocą SMSTOOLS da mi więcej możliwości.
Jednak z logicznego punktu widzenia, jeżeli nie ma sygnału to nie wyślę mu SMS smile
Więc chyba wygodnym rozwiązaniem mogłoby być zastosowanie drugiego modemu do komunikacji.
Na którym można by było realizować różne komendy przełączające/sprawdzające/restartujące.

P.S Dodałem dłuższy sleep na 240 sekund.
Ale sms nadal nie przychodzi, komenda się wykonuje a skrypt zatrzymuje się na:

Jan 16 08:37:53 Gargoyle daemon.debug smsd: GSM1: Command is sent, waiting for the answer
Jan 16 08:37:53 Gargoyle daemon.debug smsd: GSM1: <- +CPMS: "SM",2,25,"ME",0,50,"ME",0,50 OK
Jan 16 08:37:53 Gargoyle daemon.info smsd: GSM1: Used memory is 2 of 25
Jan 16 08:37:53 Gargoyle daemon.info smsd: GSM1: Trying to get stored message 1
Jan 16 08:37:53 Gargoyle daemon.debug smsd: GSM1: -> AT+CMGR=1
Jan 16 08:37:53 Gargoyle daemon.debug smsd: GSM1: Command is sent, waiting for the answer
Jan 16 08:37:54 Gargoyle daemon.debug smsd: GSM1: <- +CMGR: 0,,25 07918497908952F0040B918497324354F500005110618073254006F2B2F8FDA603 OK
Jan 16 08:37:54 Gargoyle daemon.notice smsd: GSM1: SMS received, From: 48xxyyzz
Jan 16 08:37:54 Gargoyle daemon.info smsd: GSM1: Wrote an incoming message file: /var/spool/sms/incoming/GSM1.D8A61c
Jan 16 08:37:54 Gargoyle daemon.debug smsd: GSM1: Running eventhandler: /usr/bin/obsluga_sms RECEIVED /var/spool/sms/incoming/GSM1.D8A61c
Jan 16 08:37:57 Gargoyle daemon.notice smsd: MAINPROCESS: Moved file /var/spool/sms/outgoing/sms to /var/spool/sms/checked

6

Odp: smstools3

To nie tak, przecież modem nie musi mieć transmisji danych żeby odbierać smsy. Wystarczy że karta zaloguje się do operatora, obojętnie czy ma czy nie transmisję i na jakiej technologii.

Przełączyć oczywiście możesz - możesz sobie napisać skrypt który przy braku transmisji coś takiego zrobi.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

7

Odp: smstools3

Hej. mam mały problem z usługą smsd, jak widać powinna się wykonać komenda, ale z nie wiadomych przyczyn modem mi się wyrejestrowywuje, chociaż jestem do niego zdalnie podłączony ..
Co może być nie tak ? Lub czego nie rozumiem ?


Jan 19 23:59:59 Gargoyle daemon.debug smsd: GSM1: <- AT+CMGR=25 +CMS ERROR: 321  (Invalid memory index)
Jan 19 23:59:59 Gargoyle daemon.info smsd: GSM1: I have to send 1 short message for /var/spool/sms/checked/sms
Jan 19 23:59:59 Gargoyle daemon.info smsd: GSM1: Sending SMS from  to 48xxxxxxxx
Jan 19 23:59:59 Gargoyle daemon.info smsd: GSM1: Checking if Modem is registered to the network
Jan 19 23:59:59 Gargoyle daemon.debug smsd: GSM1: -> AT+CREG?
Jan 19 23:59:59 Gargoyle daemon.debug smsd: GSM1: Command is sent, waiting for the answer
Jan 19 23:59:59 Gargoyle daemon.debug smsd: GSM1: <- AT+CREG? +CREG: 2,1, FFFE, 410D3E, 7 OK
Jan 19 23:59:59 Gargoyle daemon.notice smsd: GSM1: MODEM IS NOT REGISTERED, WAITING 1 SEC. BEFORE RETRYING 1. TIME
Jan 20 00:00:01 Gargoyle daemon.debug smsd: GSM1: -> AT+CSQ
Jan 20 00:00:01 Gargoyle daemon.debug smsd: GSM1: Command is sent, waiting for the answer
Jan 20 00:00:01 Gargoyle daemon.debug smsd: GSM1: <- AT+CSQ +CSQ: 19,99 OK
Jan 20 00:00:01 Gargoyle daemon.notice smsd: GSM1: Signal Strength Indicator: (19,99) -75 dBm (Good), Bit Error Rate: not known or not detectable
Jan 20 00:00:01 Gargoyle daemon.debug smsd: GSM1: -> AT+CREG?
Jan 20 00:00:01 Gargoyle daemon.debug smsd: GSM1: Command is sent, waiting for the answer
Jan 20 00:00:02 Gargoyle daemon.debug smsd: GSM1: <- AT+CREG? +CREG: 2,1, FFFE, 410D3E, 7 OK
Jan 20 00:00:02 Gargoyle daemon.notice smsd: GSM1: MODEM IS NOT REGISTERED, WAITING 1 SEC. BEFORE RETRYING 2. TIME

8

Odp: smstools3

Przejrzyj źródła smstoolsa i zobacz na jakiej podstawie on ten komunikat wypisuje.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

9

Odp: smstools3

Orientuje się może ktoś jak wyłączyć logi żeby mi nie zaśmiecało logread?

10

Odp: smstools3

smereka napisał/a:

Orientuje się może ktoś jak wyłączyć logi żeby mi nie zaśmiecało logread?

http://smstools3.kekekasvi.com/index.ph … g_loglevel ?

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

11

Odp: smstools3

Dziękuję. Działa

12 (edytowany przez smereka 2020-06-29 08:27:16)

Odp: smstools3

Mam dodane do smstools do obsługi sms coś jak poniżej:

if grep -q Pakiet 12 GB zostal aktywowany. $2; then
        ifup nohilink;


Niestety działa to tak, że wystarczy, że wyślę smsa o treści:  Pakiet 12 GB     i już mi router wykonuje polecenia. Jak zrobić żeby zareagował on na całkowity ciąg znaków i żeby wysatrczyło że w tym ciągu brakuje choć jednego znaku i już skrypt się nie wykonuje?

13

Odp: smstools3

grep -q "Pakiet.*12"

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

14

Odp: smstools3

Co oznacza .* w tym poleceniu?

15

Odp: smstools3

Dowolny ciąg znaków. Uruchom sobie w konsoli i przetestuj  jak to działa.

echo "Pakiet 12 GB zostal aktywowany" | grep "Pakiet.*12"
echo "Pakiet  12 GB zostal aktywowany" | grep "Pakiet.*12"
echo "Pakiet aaaa 12 GB zostal aktywowany" | grep "Pakiet.*12"

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

16

Odp: smstools3

Dzięki. Po prostu brakowało cudzysłowów.

17 (edytowany przez smereka 2021-06-17 13:32:47)

Odp: smstools3

Cezary napisz proszę jak zmienić ten skrypt aby działał na przykład tylko na numer 123456789 oczywiście numer zmyślony podałem. Najlepiej jakbyś podał regułę z przykładem. Dzięki


   #!/bin/sh

    if [ $1 != "RECEIVED" ]; then
        exit 0
    fi

    TEL=$(awk '/^From:/ {print $2}' $2)

    if grep -q status $2; then
        echo "To: $TEL" > /tmp/sms
        echo "" >> /tmp/sms
        echo "jeszcze zyje" >> /tmp/sms
        mv /tmp/sms /var/spool/sms/outgoing
    fi

18

Odp: smstools3

Tu masz: https://eko.one.pl/?p=openwrt-smstools3 … awiadomoci

Czy dodajesz po TEL=$(awk '/^From:/ {print $2}' $2) coś takiego

if [ $TEL = "123456789" ]; then

     if grep -q status $2; then
        echo "To: $TEL" > /tmp/sms
        echo "" >> /tmp/sms
        echo "jeszcze zyje" >> /tmp/sms
        mv /tmp/sms /var/spool/sms/outgoing
    fi

    if grep -q reboot $2; then
        reboot
    fi

fi

Itd. prymitywnie ale będzie działać.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

19

Odp: smstools3

Działa. Bardzo dziękuję