Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2016-04-08 22:18:50

  morfik - Cenzor wirtualnego świata

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

[SOLVED] Notyfikacje o nadchodzących SMS (gammu-smsd)

Pozostała mi ostatnia rzecz do ogarnięcia z tym modem LTE, czyli SMS. Byłem zmuszony wywalić modemmanager/modem-manager-gui, bo one niestety zajmowały cały modem dla siebie i nie szło z niego korzystać. Nie działały polecenia na /dev/ttyUSB*, nie działał wvdial, nie działały SMS/USSD przy połączeniu, no i nie wchodził NDIS. Czyli same minusy dla modemmanagera. xD

Teraz już trochę więcej wiem jak to połączenie z modemem jest realizowane i udało mi się wypracować scenariusz, gdzie modem nawiązuje połączenie w NDIS. W ten sposób interfejsy w /dev/ttyUSB* pozostają wolne (jeden z nich jest używany tylko przy nawiązywaniu połączenia). Mając dwa wolne (bo tyle ten modem ma w standardzie), na jednym z nich mogę uruchomić demona gammu-smsd, który monitoruje nadchodzące SMS. Na drugim interfejsie mogę odpalić graficznego wammu, lub operować via textowy gammu i wysyłać SMS i kody USSD (choć tutaj mam straszne opóźnienie, z 1-2 min.).

Tak czy inaczej, gdy nadchodzi SMS, w logu jest generowana taka wiadomość:

Kod:

Apr 08 21:59:25 morfikownia gammu-smsd[18235]: Read 1 messages
Apr 08 21:59:25 morfikownia gammu-smsd[18235]: Received IN20160408_215920_00_+48600123456_00.txt

Problem w tym, że to jest w logu systemowym. Ja do pełni szczęścia potrzebuje wizualnej notyfikacji + dźwięk. Tak jak to było robione w modem-manager-gui. Zajrzałem do konfiguracji w pliku /etc/gammu-smsdrc no i tam są do określenia min. te poniższe parametry:

Kod:

RunOnReceive =
RunOnFailure =
RunOnSent =

No i w sumie wystarczyłoby coś dopisać w tym RunOnReceive , tylko pytanie jest co? Jak przy pomocy tego parametru posłać wiadomość via  notify-send ? xD Bo jak tam wpiszę normalne polecenie notify-send "test" , to nic się nie dzieje. W logu jest:

Kod:

Apr 08 22:13:04 morfikownia gammu-smsd[23884]: Read 1 messages
Apr 08 22:13:04 morfikownia gammu-smsd[23884]: Received IN20160408_221251_00_+48600123456_00.txt
Apr 08 22:13:04 morfikownia gammu-smsd[24392]: Starting run on receive: notify-send "test" IN20160408_221251_00_+48600123456_00.txt
Apr 08 22:13:04 morfikownia gammu-smsd[23884]: Process finished successfully

Coś tu się inaczej to konfiguruje?

Ostatnio edytowany przez morfik (2016-04-10 23:11:44)

Offline

 

#2  2016-04-08 23:04:13

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/random
Zarejestrowany: 2008-01-07

Re: [SOLVED] Notyfikacje o nadchodzących SMS (gammu-smsd)

Jak odpalisz notify-send w konsoli tty (nie terminalu), to dochodzą, czy masz radosny komunikat "cannot open DISPLAY", czy coś podobnego?

Może najpierw rzuć okiem na to:
https://forum.dug.net.pl/viewtopic.php?pid=299634

Chociaż do SMS to ja bym radził zastanowić się nad zenity, matedialog czy kdialog, albo czymś innym, co otwiera okienko z przyciskami zamknij, odpowiedz teraz, zapisz.

Ostatnio edytowany przez Jacekalex (2016-04-08 23:05:50)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Online

 

#3  2016-04-08 23:21:11

  morfik - Cenzor wirtualnego świata

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Re: [SOLVED] Notyfikacje o nadchodzących SMS (gammu-smsd)

Z roota pod TTY nie przychodzą ale żadnego błędu nie ma. Ze zwykłego usera dochodzą. Ale i tak raczej odpuszczę sobie te notyfikacje, bo znalazłem pro haxa. xD

Przejrzałem trochę manuala i kilka linków z googla. Tam były przykładowe skrypty. To na ich postawie zrobiłem taki:

Kod:

#!/bin/sh

SMS_MESSAGES=1

PROGRAM=/bin/echo

for i in `seq $SMS_MESSAGES`
do
    eval "$PROGRAM Number: \"\${SMS_${i}_NUMBER}\" \| Message: \"\${SMS_${i}_TEXT}\""
    eval "echo \${SMS_${i}_TEXT}" | gammu-smsd-inject TEXT +48600123456
done

Tam są dwie akcje. Pierwsza wyświetla dane SMS, tj. numer i treść w logu. Mechanizm zapisuje te dane w plikach w /var/ ale mniejsza o to. Druga akcja wyciąga wiadomość SMS i forwarduje to na numer telefonu. W efekcie dostaje powiadomienie na komórkę z treścią wiadomości SMS, który przyszedł na komputer. xD

Dobrze, że play ma darmowe sms/rozmowy w swojej sieci, bo już ze 300 tych smsów wysłałem. xD

Offline

 

#4  2016-04-08 23:25:50

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/random
Zarejestrowany: 2008-01-07

Re: [SOLVED] Notyfikacje o nadchodzących SMS (gammu-smsd)

A po co to SMSami załatwiać?

Nie lepiej SMSy z Gammu do Jabbera wysyłać?
Ekologicznie, za darmo, z porządnym szyfrowaniem, da się to całkiem grzecznie oskrypcić.

Większość smartfonów już jakieś klienty Jabbera obrabia.

Z roota pod TTY nie przychodzą ale żadnego błędu nie ma. Ze zwykłego usera dochodzą. Ale i tak raczej odpuszczę sobie te notyfikacje, bo znalazłem pro haxa. xD

Kod:

 cat `which udevmess`
#!/bin/bash

MESSAGE="$*"

 for NUMBER in `ls /tmp/.X11-unix | awk -F"X" '{print $2}'`; do env DISPLAY=":$NUMBER"  notify-send -t 50000  "${MESSAGE}";  done;

SOA#1

Ostatnio edytowany przez Jacekalex (2016-04-08 23:26:59)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Online

 

#5  2016-04-08 23:39:08

  morfik - Cenzor wirtualnego świata

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Re: [SOLVED] Notyfikacje o nadchodzących SMS (gammu-smsd)

Tu chodzi o co innego. Bo ten modem ma normalny numer i na nim jest aktywowany net LTE za free z play. Co miesiąc te usługę trzeba odnawiać. Zanim ją ściągną to wysyłać mają powiadomienie. I próbowałem rozwiązać kwestię jak to powiadomienie otrzymać w sposób widoczny. No to mój PC musi te SMS przetwarzać i albo je wyświetlać na kompie albo przesyłać na telefon. Nie wiem jeszcze jak to się zachowywać będzie gdy komputer będzie off. Czy pobierze te SMS i wyśle, czy oleje. xD

Właśnie przetestowałem tryb offline. Wiadomości się kolejkują i tylko jak modem się podłączy i demon zacznie nasłuchiwać, to zaraz odbierze wszystkie wiadomości i po chwili je prześle na komórkę. Także full wypas. xD

Ostatnio edytowany przez morfik (2016-04-09 00:32:17)

Offline

 

#6  2016-04-09 00:08:09

  rychu - elektryk dyżurny

rychu
elektryk dyżurny
Skąd: gdańsk/kalmar
Zarejestrowany: 2004-12-28

Re: [SOLVED] Notyfikacje o nadchodzących SMS (gammu-smsd)

hej to weź jakiegoś arta na portalu dug albo do faq grzmotnij, też bym se zrobił :p


linux regd. user #248790

Offline

 

#7  2016-04-09 00:28:21

  morfik - Cenzor wirtualnego świata

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Re: [SOLVED] Notyfikacje o nadchodzących SMS (gammu-smsd)

W sumie to tu nie ma za bardzo o czym pisać. xD

Instalujesz gammu-smsd i odpalasz. Ja na systemd mam usługę gammu-smsd.service . Edytujesz sobie plik /etc/gammu-smsdrc i wrzucasz do niego to:

Kod:

[gammu]
port = /dev/ttyUSB1
connection = at115200
name=Huawei E3372
model=at

[smsd]
service = files
logfile = syslog
debuglevel = 0
pin = ""
CheckSecurity = 0
CheckBattery = 0
#SendTimeout = 30
#CommTimeout = 15
ReceiveFrequency = 5

inboxpath = /var/spool/gammu/inbox/
outboxpath = /var/spool/gammu/outbox/
sentsmspath = /var/spool/gammu/sent/
errorsmspath = /var/spool/gammu/error/

RunOnReceive = /opt/skrypty/sms-rec-sh

No i tworzysz sobie ten skrypcik i wrzucasz to:

Kod:

#!/bin/sh

SMS_MESSAGES=1

PROGRAM="/bin/echo -e"

for i in `seq $SMS_MESSAGES`
do
    eval "$PROGRAM \"Number: \${SMS_${i}_NUMBER} | Message: \${SMS_${i}_TEXT}\""
    eval "$PROGRAM \"Numer: \${SMS_${i}_NUMBER}\nWiadomosc: \${SMS_${i}_TEXT}\"" | gammu-smsd-inject TEXT +48600123456
done

Info masz tutaj:
https://wammu.eu/docs/manual/smsd/inject.html
https://wammu.eu/docs/manual/smsd/config.html

Ostatnio edytowany przez morfik (2016-04-09 10:58:55)

Offline

 

#8  2016-04-09 03:57:50

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/random
Zarejestrowany: 2008-01-07

Re: [SOLVED] Notyfikacje o nadchodzących SMS (gammu-smsd)

Gammu obrabia wszystkie bazy SQL, jakby było więcej SMS albo ktoś chciał dożywotnie archiwum z łatwym dostępem z innych programów, to może się przydać.

Jeśli natomiast chcesz większe cuda, to zamiast Gammu możesz Freeswitcha zapiąć do tego modemu, i przy okazji będzie Ci przekazywał rozmowy prosto na komórkę, będziesz też mógł z niego dzwonić przez dowolnego klienta Voip, o ile dostaniesz się przez sieć Play do kompa (noip? dyndns? + odblokowanie portów przychodzących), albo będzie też jakaś inna rurka ze stałym IP i domeną.

Freeswitch też ładnie potrafi przekazywać SMSy np do maila, i nazad, poprzez zewnętrzne skrypty.

Pozdro


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Online

 

#9  2016-04-09 10:59:54

  morfik - Cenzor wirtualnego świata

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Re: [SOLVED] Notyfikacje o nadchodzących SMS (gammu-smsd)

Ździebko przerobiłem skrypt, tak by wiadomość SMS zawierała też numer tego telefonu co to wysłał SMS. xD

Offline

 

#10  2016-04-09 17:58:14

  morfik - Cenzor wirtualnego świata

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Re: [SOLVED] Notyfikacje o nadchodzących SMS (gammu-smsd)

Tu jeszcze naskrobałem taką ciekawą regułę dla udeva. Może komuś się przyda:

Kod:

ACTION=="add", KERNEL=="ttyUSB?", SUBSYSTEM=="tty", \
    ENV{ID_VENDOR_ID}=="12d1", \
    ENV{ID_MODEL_ID}=="15b6", \
    ENV{ID_USB_INTERFACE_NUM}=="00", \
    SYMLINK+="huawei-E3372-0", \
    ENV{REMOVE_CMD}="/bin/systemctl stop gammu-smsd.service" , \
    RUN+="/bin/systemctl start gammu-smsd.service"

ACTION=="add", KERNEL=="ttyUSB?", SUBSYSTEM=="tty", \
    ENV{ID_VENDOR_ID}=="12d1", \
    ENV{ID_MODEL_ID}=="15b6", \
    ENV{ID_USB_INTERFACE_NUM}=="01", \
    SYMLINK+="huawei-E3372-1"

ACTION=="add", KERNEL=="ttyUSB?", SUBSYSTEM=="tty", \
    ENV{ID_VENDOR_ID}=="12d1", \
    ENV{ID_MODEL_ID}=="15b6", \
    ENV{ID_USB_INTERFACE_NUM}=="02", \
    SYMLINK+="huawei-E3372-2"

W skrócie, tworzy ona statyczne nazwy interfejsów dla modemu. One będą niezmienne i nie mają na nie wpływu ilość urządzeń oraz ich kolejność podłączania. Do tego, usługa odpowiedzialna za odbieranie/wysyłanie SMS jest startowana po podłączeniu modemu i ubijana po wyciągnięciu modemu. To zapobiega błędom w logu w przypadku, gdy usługa jest aktywna, a modemu nie ma. To też przy okazji poprawia całą konfigurację w szeregu aplikacji, jak wammu czy wvdial.

Offline

 

#11  2016-04-09 20:50:46

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/random
Zarejestrowany: 2008-01-07

Re: [SOLVED] Notyfikacje o nadchodzących SMS (gammu-smsd)

Nie czaję, po co symlinki nazywasz huawei-3372-X, /dev/modemX, /dev/gsmX albo /dev/lteX byłoby prostsze do używania,
i bardziej "ekologiczne".


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Online

 

#12  2016-04-09 22:32:27

  morfik - Cenzor wirtualnego świata

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Re: [SOLVED] Notyfikacje o nadchodzących SMS (gammu-smsd)

A jakbym miał kilka tych modemów i chciał je podłączyć jednocześnie? xD

Offline

 

#13  2016-04-09 23:52:31

  Pavlo950 - człowiek pasjonat :D

Pavlo950
człowiek pasjonat :D
Zarejestrowany: 2012-02-20
Serwis

Re: [SOLVED] Notyfikacje o nadchodzących SMS (gammu-smsd)

Jacekalex napisał(-a):

Nie czaję, po co symlinki nazywasz huawei-3372-X, /dev/modemX, /dev/gsmX albo /dev/lteX byłoby prostsze do używania,
i bardziej "ekologiczne".

No........... Mniej pamięci!

Offline

 

#14  2016-04-10 05:49:11

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/random
Zarejestrowany: 2008-01-07

Re: [SOLVED] Notyfikacje o nadchodzących SMS (gammu-smsd)

morfik napisał(-a):

A jakbym miał kilka tych modemów i chciał je podłączyć jednocześnie? xD

To by ci liczba numerków poszła do góry.
Zawsze też możesz wyczarować numer portu USB, i zrobić np /dev/gsm421,
gdzie 4 i 2 to

Kod:

Bus 004 Device 002:

Póki nie podłączysz więcej modemów, niż masz portów USB, problemu nie będzie. XD

Ostatnio edytowany przez Jacekalex (2016-04-10 08:59:48)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Online

 

#15  2016-04-10 14:35:49

  morfik - Cenzor wirtualnego świata

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Re: [SOLVED] Notyfikacje o nadchodzących SMS (gammu-smsd)

Uzależnianie nazwy od portów USB jak i po "ID" są już domyślnie zrobione w:

Kod:

$ ls -al /dev/ttyUSB*
crw-rw---- 1 root dialout 188, 0 2016-04-09 12:17:10 /dev/ttyUSB0
crw-rw---- 1 root dialout 188, 1 2016-04-09 12:17:10 /dev/ttyUSB1

$ ls -al /dev/serial/by-id
lrwxrwxrwx 1 root root 13 2016-04-09 12:17:10 usb-HUAWEI_MOBILE_HUAWEI_MOBILE_0123456789ABCDEF-if00-port0 -> ../../ttyUSB0
lrwxrwxrwx 1 root root 13 2016-04-09 12:17:10 usb-HUAWEI_MOBILE_HUAWEI_MOBILE_0123456789ABCDEF-if01-port0 -> ../../ttyUSB1

$ ls -al /dev/serial/by-path
lrwxrwxrwx 1 root root 13 2016-04-09 12:17:10 pci-0000:00:1d.0-usb-0:1.3:1.0-port0 -> ../../ttyUSB0
lrwxrwxrwx 1 root root 13 2016-04-09 12:17:10 pci-0000:00:1d.0-usb-0:1.3:1.1-port0 -> ../../ttyUSB1

Mnie ani to ID nie satysfakcjonuje, ani tym bardziej ścieżki USB, bo te jak ulegną zmianie, to zmienia się również i nazwa. xD Ja jednak wolę swoją huawei-E3372-0. Poza tym, zawsze ktoś może sobie dać huawei0 i też będzie ok. xD

Offline

 

#16  2016-04-10 22:44:43

  rychu - elektryk dyżurny

rychu
elektryk dyżurny
Skąd: gdańsk/kalmar
Zarejestrowany: 2004-12-28

Re: [SOLVED] Notyfikacje o nadchodzących SMS (gammu-smsd)

morfik napisał(-a):

W sumie to tu nie ma za bardzo o czym pisać. xD

jest o czym pisać, bo w faq to zastanie na wieki, a w forum utonie. gugel nie wszystko wyłapie.


linux regd. user #248790

Offline

 

#17  2016-04-10 23:11:22

  morfik - Cenzor wirtualnego świata

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Re: [SOLVED] Notyfikacje o nadchodzących SMS (gammu-smsd)

Co ma wisieć, nie utonie. Ja i tak jak to forum przeszukuję, to korzystam z googla z filtrem site: , bo ta szukajka co jest na forum, to ona nigdy nic nie potrafi znaleźć. xD Tak patrzę na googla to wątek w oparciu o "sms + notyfikacje" ma 13 pozycje. A jak da się "smsd + notyfikacje", to jest pierwszy, także całkiem wysoko. xD Nie łapie za to w ogóle gammu-smsd, to zmienię lekko nazwę tematu i zacznie łapać.

Offline

 

#18  2016-04-10 23:37:18

  rychu - elektryk dyżurny

rychu
elektryk dyżurny
Skąd: gdańsk/kalmar
Zarejestrowany: 2004-12-28

Re: [SOLVED] Notyfikacje o nadchodzących SMS (gammu-smsd)

morfik napisał(-a):

Co ma wisieć, nie utonie. Ja i tak jak to forum przeszukuję, to korzystam z googla z filtrem site: , bo ta szukajka co jest na forum, to ona nigdy nic nie potrafi znaleźć. xD Tak patrzę na googla to wątek w oparciu o "sms + notyfikacje" ma 13 pozycje. A jak da się "smsd + notyfikacje", to jest pierwszy, także całkiem wysoko. xD Nie łapie za to w ogóle gammu-smsd, to zmienię lekko nazwę tematu i zacznie łapać.

no widzisz, ty myślisz i dobrze kombinujesz, ale nie wszyscy tak robią. a rozwiązanie jest dobre i warte zapamiętania. no wiec nie leć w kule i pisz ten artykuł

Ostatnio edytowany przez rychu (2016-04-10 23:37:32)


linux regd. user #248790

Offline

 

#19  2016-05-06 16:28:03

  morfik - Cenzor wirtualnego świata

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Re: [SOLVED] Notyfikacje o nadchodzących SMS (gammu-smsd)

Doszedłem do wniosku, że gammu-smsd ssie. xD Tzn. może może jest ok ale jeśli w grę wchodzą minimalistyczne rozwiązania jak OpenWRT, to gammu zwyczajnie się nie zmieści. Niby osiągnąłem wszystko co chciałem na tym oprogramowaniu ale potrzebowałem też jakiegoś sposobu, który by mi te smsy ogarnął na routerze, a ten ma tylko do dyspozycji 16M flash i ten gammu się nie chciał mi zmieścić.

Szukając rozwiązania tego problemu natrafiłem na smstools. Co ciekawe ten pakiet jest zarówno w debianie jak i OpenWRT i bez problemu się mieści na flashu routera i jeszcze sporo luzu zostaje.

W końcu udało mi się wypracować dość ciekawe rozwiązanie implementujące wszystkie ficzery z gammu. Do tego doszło jeszcze kilka innych ciekawych rzeczy. Jak coś to tu jest config smsd , a tu skrypt do smsów

W sumie to ten skrypt ma w zamiarze odcinać net jak wyłączą darmowe LTE i włączyć go ponownie jak przywrócą. No i oczywiście powiadać o tym na komórkę. xD W testach wiadomości od operatora GSM spoofowałem i wygląda, że ten mechanizm działa ale jak to będzie w praktyce to się okaże za jakieś 24 dni. xD Nie jestem pewien czy przejdzie ten kod USSD, niby powinien.

Offline

 

#20  2020-12-10 20:18:34

  lampik - Użytkownik

lampik
Użytkownik
Zarejestrowany: 2015-12-27

Re: [SOLVED] Notyfikacje o nadchodzących SMS (gammu-smsd)

a u mnie takie mydło,...

https://pastebin.pl/view/a2ceabf6

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
To nie jest tylko forum, to nasza mała ojczyzna ;-)