SMS senden und Empfangen via gammu

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo,

    ich habe einen Raspi 3b+ und möchte gerne gammu zum senden und empfangen von SMS nutzen.

    Angeschossen habe ich einen Huawei E3531 Surftstick, mit welchem ich auch SMS senden und online gehen kann. Es wird mir /dev/ttyUSB0 /dev/ttyUSB1 und /dev/ttyUSB2 angezeigt. Wenn ich /dev/ttyUSB0 in die configdatei eintrage kann ich SMS senden. EInen PIN besitzt die SIM-Karte nicht.


    /etc/gammu-smsdrc


    /etc/gammurc

    Code
    [gammu]
    
    port = /dev/ttyUSB0
    model =
    connection = at
    synchronizetime = yes
    logfile =
    logformat = nothing
    use_locking =
    gammuloc =


    Über den Befehl gammu-smsd-inject TEXT 00491514455667788 -text "Gruss vom RasPi an Didi" kann ich SMS versenden. Jedoch funktioniert der Empfang nicht.

    Eigentlich müsste über den Daemon doch in /var/spool/gammu/inbox/ die neuen SMS abgelegt werden?

    Habe ich wichtige Infos vergessen? Falls ja, lasst es mich doch bitte wissen, dann trage ich das nach =)

    Dankeschön und Grüße

    Didi!

  • Hallo dll-live,

    ich habe tatsächlich genau diese ANleitung benutzt. Auch gammu-smsd habe ich installiert. Der Versand über gammu-smsd funktioniert ja auch => gammu-smsd-inject TEXT 00491514455667788 -text "Gruss vom RasPi an Didi"

    Jedoch kann ich keine SMS empfangen :(

  • Code
    [smsd]
    service = files
    logfile = /var/log/gammu-smsd.log 
    # Increase for debugging information
    debuglevel = 3

    Hast Du schon in das Logfile reingesehen? Ansonsten noch mal den Debuglevel hochsetzen, gammu-smsd neu starten und im Log noch einmal nachsehen.

  • Ich habe das logfile nochmal geleert, gammu smsd neugestartet und erhalte folgende Meldungen:


    Ich kann hiermit leider auf keinen Fehler schließen, aber eventuell lest ihr da mehr raus als ich :)

  • Sieht soweit OK aus. Ausser dass die phoneID fehlt. Definiere die mal. Ausserdem

    1) Findest Du nichts in /var/spool/gammu/inbox/ ?

    2) Und was steht in /var/spool/gammu/error/? Wie stellst Du fest dass es nicht funktioniert?

    3) Per gammu an sich selbst eine SMS schicken habe ich noch nie probiert. Schicke Dir doch mal eine von irgendeinem Handy.

  • Ich habe in der Zwischenzeit mal einen ganz anderen Ansatz probiert, da ich mit der Lösung über gammu und gammu-smsd nicht weitergekommen bin. Das wäre dann die Option B, jedoch bekomme ich da nur den Empfang von SMS zustande...

    Aber erstmal weiter mit der ursprünglichen Lösung!

    Ich habe nochmal ein Backup eingespielt und lediglich gammu installiert. Ich kann SMS versenden und tatsächlich auch empfangen. Jedoch kann ich nur dann SMS empfangen, wenn ich den Befehl gammu getallsms direkt nach dem Absenden der SMS ausführe. Die Nachricht wird mir dann angezeigt aber ich kann sie nicht erneut aufrufen...

    1.) In /var/spool/gammu/inbox/ befindet sich nichts, korrekt.

    2.) Inhalt der Logdatei, die ich in /etc/gammurc festgelegt habe:

    3.) SMS habe ich mir bereits vom Handy an den Raspi und andersrum geschickt!


    Ich bin nun echt verwundert, dass ich SMS abrufen kann - das aber eben nur genau dann wenn sie gesendet wurden und auch kein zweites mal. Hier scheint das Problem zu liegen...

  • Ist merkwuerdig denn jede empfangene SMS landet in /var/spool/gammu/inbox.

    Code
    ls /var/spool/gammu/inbox/
    IN20201211_092015_00_+49176..._00.txt
    IN20201216_093300_00_+49176..._00.txt
    IN20201230_190857_00_+49176..._00.txt

    Allerdings habe ich einen anderen Stick.

    Code
    pi@idefix:~ $ lsusb
    Bus 001 Device 004: ID 19d2:0117 ZTE WCDMA Technologies MSM
    Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. SMSC9512/9514 Fast Ethernet Adapter
    Bus 001 Device 002: ID 0424:9512 Standard Microsystems Corp. SMC9512/9514 USB Hub
    Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
    pi@idefix:~ $ sudo -i
    dmroot@idefix:~# dmesg | grep ttyUSB
    [   21.045833] usb 1-1.3: GSM modem (1-port) converter now attached to ttyUSB0
    [   21.064354] usb 1-1.3: GSM modem (1-port) converter now attached to ttyUSB1
    [   21.066052] usb 1-1.3: GSM modem (1-port) converter now attached to ttyUSB2

    Vielleicht findest Du ja auch noch irgendeinen entscheidenen Hinweis auf meiner Webseite wo ich mein SMS Relay beschrieben habe.

  • Okay, es kommen nun teilweise SMS am Raspi an. Das Problem scheint zu sein, dass die SMS entweder auf dem Stick landen ODER im Eingang auf dem Raspi. Die, die ich am Raspi sehe sind die Nachrichten, die nicht auf dem Surfstick in der Weboberfläche auftauchen.

    Es scheint also so zu sein, dass der schnellere die SMS "bekommt"!

    Der andere Ansatz, welchen ich auf meinem zweiten Raspi versucht habe ist folgender:

    Ich ändere den Modus des Surfsticks nicht, stecke diesen also lediglich ein. Das zeigt mir lsusb hierzu an:

    Es wird auch kein ttyUSB0-3 in /dev/ttyUSB* angezeigt, online bin ich jedoch und kann die Oberfläche des Surfsticks im Browser aufrufen. Hierauf basiert auch das Script welches ich gefunden habe. Hiermit kann ich die SMS abrufen, jedoch funktioniert das zweite Script zum senden leider nicht...

    Hier das Script zum Empfangen:

    Bash
    #!/bin/sh
    
    RESPONSE=`curl -s -X GET http://192.168.8.1/api/webserver/SesTokInfo`
    COOKIE=`echo "$RESPONSE"| grep SessionID=| cut -b 10-147`
    TOKEN=`echo "$RESPONSE"| grep TokInfo| cut -b 10-41`
    
    DATA="<request><PageIndex>1</PageIndex><ReadCount>1</ReadCount><BoxType>1</BoxType><SortType>0</SortType><Ascending>0</Ascending><UnreadPreferred>1</UnreadPreferred></request>"
    
    output=`curl -b $COOKIE -c $COOKIE -H "X-Requested-With: XMLHttpRequest" --data "$DATA" http://192.168.8.1/api/sms/sms-list --header "__RequestVerificationToken: $TOKEN" --header "Content-Type:text/xml"`

    Um ehrlich zu sein, verstehe ich nicht wirklich wie es funktioniert, aber ich kann so SMS lesen und mir aus der letzten SMS die Handynummer und Nachricht zu filtern. (Den Teil habe ich nicht angehängt.)

    Das Script zum Senden von SMS funktioniert jedoch leider nicht und ich verstehe nicht warum. Hier das Script:

    Bash
    #!/bin/sh
    
    RESPONSE=`curl -s -X GET http://192.168.8.1/api/webserver/SesTokInfo`
    COOKIE=`echo "$RESPONSE"| grep SessionID=| cut -b 10-147`
    TOKEN=`echo "$RESPONSE"| grep TokInfo| cut -b 10-41`
    NUMBER=$1
    SMS=$2
    DATA="<?xml version='1.0' encoding='UTF-8'?><request><Index>-1</Index><Phones><Phone>0049151111111111</Phone></Phones><Sca></Sca><Content>Hallooooooo</Content><Length>11</Length><Reserved>1</Reserved><Date>-1</Date></request>"
    
    curl -v http://192.168.8.1/api/sms/send-sms\ -H "Cookie: $COOKIE" -H "__RequestVerificationToken: $TOKEN" -H "Content-Type: application/x-www-form-urlencoded; charset=UTF-8" \ --data $DATA


    Habt ihr für einen der beiden Anästze eine Lösung?

    Ansatz 1: So wie es im ersten Post beschrieben ist mit gammu und gammu-smsd. Hier kommen jedoch nur ein Teil der Nachrichten an.

    Ansatz 2: Abfrage via bash-Script, welches auf die Weboberfläche zugreift.

    Gerne würde ich einfach beides kombinieren, jedoch ist die Weboberfläche nicht mehr verfpgbar, wenn ich den Modus des Surftsticks ändere.

    Dankeschön!

    Einmal editiert, zuletzt von DidiDee (2. Januar 2021 um 14:45)

  • Hier habe ich den Grund gefunden warum receive nicht tut. Hier ist eine Alternative wie man mit dem REST Api senden und empfangen kann. Offensichtlich hast Du da Deinen Code her.

    Das Script zum Senden von SMS funktioniert jedoch leider nicht und ich verstehe nicht warum.

    Bekommst Du irgendwelche Fehlermeldungen?

    Ich habe auch noch dieses gefunden. Vielleicht siehst Du es Dir mal an.

  • Ich Depp habe vergessen, die Ausgabe reinzukopieren, entschuldigung. Hier die Ausgabe des besagten Scripts:

    Die Fehlermeldung die ich rauslese lautet: curl: (6) Could not resolve host: encoding='UTF-8' Kannst du damit etwas anfangen?


    Danke für den Link framp , das werde ich mal noch ausprobieren =)

    Einmal editiert, zuletzt von DidiDee (2. Januar 2021 um 17:46)

  • Ohje, dann komme ich hier wohl nicht weiter. Sehr schade! Denkt ihr, ich kann da in einer anderen Rubrik des Forums jemanden finden, der sich mit XML besser auskennt?

    Hier habe ich den Grund gefunden warum receive nicht tut. Hier ist eine Alternative wie man mit dem REST Api senden und empfangen kann. Offensichtlich hast Du da Deinen Code her.

    Bekommst Du irgendwelche Fehlermeldungen?

    Ich habe auch noch dieses gefunden. Vielleicht siehst Du es Dir mal an.

    Die andere Lösung ändert leider den Modus des Surfsticks und ist somit nicht kompatibel zum SMS auslesen über die Weboberfläche des Surfsticks. Mist!!

  • der sich mit XML besser auskennt?

    Das ist weniger ein XML Problem. Der Stick sendet einen Fehlercode und man muss rausbekommen was der bedeutet. Definitiv Hilfe koennte Dir sicherlich jemand geben der denselben Stick hat und der gammu benutzt. Vielleicht aenderst Du den Threadtitel noch mal und bringst Huawei E3531 Surftstick darin noch unter damit der Stick praegnant heraussticht ;)

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!