[Gelöst] Bei Anruf einer bestimmen Rufnummer http Befehl ausführen

Hallo,

ich meinte root, als ich mich versucht habe per ftp-Client einzuloggen.
Ich bin nicht so fit auf der Konsole, deswegen hatte ich es so rum probiert.

Habe versucht mich an deine Hilfe zu halten.

Ich habe nun folgendes Skript:

Code:
echo "#!/bin/sh
startpc="wget 'curl 'http://192.168.1.42/preset?switch=10&value=off'"
wolsip="SIP1#226XXXXX"
woltel="0160974XXXXX"
localdir="/var/media/"
logfile="$localdir/woc1.log"
if [ "$3" = "$wolsip" ]; then
 if [ "$woltel" = "jeder" ]; then
   $startpc
   statuscode="OK:EVERYONE_ALLOWED"
 else
   if [ "$1" = "$woltel" ]; then
     $startpc
     statuscode="OK:ALLOWED_USER"
   else
     statuscode="FAIL:INTRUDER"
   fi
 fi
else
statuscode="INFO:NO_WOC"
fi
echo "$1 ($woltel),$2,$3 ($wolsip),$4,$5,$statuscode" >>$logfile" > /var/media/calllog1

Dann diesen Befehl ausgeführt:
Code:
cat /var/media/meincalllog1 > /var/flash/calllog1

Wenn ich nun Anrufe erhalte ich im Terminal folgende Meldung:

Code:
# 0160974XXXXX 226XXXXX SIP1#226XXXXX
telefon: SIGCHLD PID 11674 received!

Weiter passiert leider nichts weiter.
Wie kann ich denn überprüfen, wo mein Fehler liegt?

Gruß Thomas
 
Du hast eine Textdatei in /var/flash erstellt die calllog1 heisst!
Die kannste mit rm /var/flash/calllog1 wieder löschen.
So wies aussieht steht noch in /var/calllog das echo $@ .
Also gib nacheinander mal folgende Befehle ein:
Code:
# echo "" > /var/flash/calllog
# echo "" > /var/calllog
# cat /var/media/meincalllog1 > /var/calllog
...und dann ruf dich an.
Lass dir dann auch mal den Inhalt von /var/media/woc1.log ausgeben.
Wenn da ein OK:ALLOWED_USER drinsteht wurde der curl Befehl auch abgesetzt.
 
Hallo,

so langsam komme ich danke deiner Hilfe weiter ;-)

Mein Skript sieht nun so aus:

Code:
o "#!/bin/sh
startpc="wget 'http://192.168.1.42/preset?switch=10&value=off'"
wolsip="SIP1#226XXXXX"
woltel="0160974XXXXX"
localdir="/var/media/"
logfile="$localdir/woc.log"
if [ "$3" = "$wolsip" ]; then
 if [ "$woltel" = "jeder" ]; then
    $startpc
       statuscode="OK:EVERYONE_ALLOWED"
        else
           if [ "$1" = "$woltel" ]; then
                $startpc
                     statuscode="OK:ALLOWED_USER"
                        else
                             statuscode="FAIL:INTRUDER"
                                fi
                                 fi
                                 else
                                 statuscode="INFO:NO_WOC"
                                 fi
                                 #echo "$1 ($woltel),$2,$3 ($wolsip),$4,$5,$stat

und obwohl ich die letzte Zeile (Zeile 22) testweise auskommentiert habe, bekomme ich folgende Meldung:
Code:
/var/calllog: line 22: syntax error: unexpected "("
telefon: SIGCHLD PID 11785 received!
 
Moin

Jetzt ist vi dran.
Also: vi /var/calllog
In der ersten Zeile den kompletten Schrott weglöschen, 2x die Taste D drücken löscht die Zeile.
Mit Zeile 22 machste das auch, mit der Cursurtaste in Zeile 22 gehen und 2x D drücken.
Abspeichern und beenden:
Code:
:x RETURN

...und dann dich nochmal anrufen.
 
Hallo,

das scheint jetzt soweit zu klappen, allerdings erhalte ich folgende Meldung:
Code:
wget: not an http or ftp url: 'http://192.168.1.42/preset?switch=10&value=off'
telefon: SIGCHLD PID 12061 received!
Was mich verwundert, denn wenn ich den Befehl direkt im Terminal ausgebe erhalte ich das hier:
Code:
# wget 'http://192.168.1.42/preset?switch=10&value=off'
Connecting to 192.168.1.42 (192.168.1.42:80)
wget: can't open 'preset?switch=10&value=off': Read-only file system
...aber der Befehl wird korrekt ausgeführt.


Gruß Thomas
 
Hm, probier mal zwei Sachen.
1. Anstatt des kaufmännischen Und, das Entity
&
sodaß die URL dann so aussieht...
Code:
wget 'http://192.168.1.42/preset?switch=10&value=off'
...vielleicht meckert wget deshalb.

Oder

2. /preset?switch=10&value=off ??? Nicht preset.html oder preset.php?
Ich weiss es nicht, aber ich tip mal auf PHP, dann..
Code:
wget 'http://192.168.1.42/preset.php?switch=10&value=off'
...oder...
Code:
wget 'http://192.168.1.42/preset.php?switch=10&value=off'
...mehr fällt mir jetzt nicht dazu ein.
 
Hallo,

leider funktionnieren alle drei Vorschläge nicht :-(

Die letzten Zwei liefern bei direkter Eingabe im Terminal folgendes:
Code:
wget 'http://192.168.1.42/preset.php?switch=10&value=off'
Connecting to 192.168.1.42 (192.168.1.42:80)
wget: server returned error: HTTP/1.1 404 Not Found
Von daher stimmt meine URL, im Terminal direkt klappt es ja auch, wieso will es dann in diesem Skript nicht?

Jetzt bin ich Dank deiner Unterstützung so weit gekommen, kann doch nicht sein, dass das jetzt nicht klappen will!? :-(

Gruß Thomas
 
Von daher stimmt meine URL
Nein tut sie nicht, denn:
Code:
wget: can't open 'preset?switch=10&value=off': Read-only file system
...ist ne ganz komische Fehlermeldung, sehr verwirrend.

Finde einfach heraus, welches Skript am Ende was will.
Möglichkeiten:
preset.php - fällt weg, hattest du eben. (HTTP/1.1 404 Not Found)
preset.html - ist jetzt dran
Code:
wget 'http://192.168.1.42/preset.html?switch=10&value=off'
preset/ - ist ein Verzeichnis und eine index.html oder index.php wird ausgeliefert.
Code:
wget 'http://192.168.1.42/preset/?switch=10&value=off'
...denn wenn dem so ist,
müssen die nicht angegeben werden (index.html, index.php),
aber der Slash / hinter dem Ordnernamen preset.
 
Zuletzt bearbeitet:
Hallo,

habe noch mal in der Anleitung meines Gerätes nachgelesen und genau so hatte ich es damals auch übernommen:
Code:
Beim Preset Mode Linktyp können die im EZcontrol T-10 per Webinface konfigurierten Schalter geschaltet werden. 
Syntax:
http://<IP_ADRESSE>/preset?switch=<NR>&value=<ON/OFF>

Beispielaufruf: [url]http://192.168.1.42/preset?switch=1&value=on[/url]

Schaltet den im EZcontrol T-10 auf Speicherplatz 1 konfigurierten Schalter ein.
Oder müsste ich dann mal den Hersteller fragen?

Gruß Thomas
 
Kannst du es nicht auch im Webbrowser aufrufen und dann mit rechter Maustaste den Sourcecode anschauen?
Oder Seiteninformationen? Es muss doch auch im Browser funktionieren, oder nicht?
Da steht dann irgendwo welche Seite das ist. Bei Sourcecode im Titel.
Diese Seite ist zum Beispiel: showthread.php
 
Zuletzt bearbeitet:
Kannst du es nicht auch im Webbrowser aufrufen und dann mit rechter Maustaste den Sourcecode anschauen?

Leider nein.
Der Befehl wird nicht ausgeführt und der Browser gibt die Rückmeldung, dass die Seite nicht gefunden wurde.
 
Browser gibt die Rückmeldung, dass die Seite nicht gefunden wurde.
Solange du die Funktion per Browser nicht ausführen kannst, brauchst du mit dem Script gar nicht weiterzumachen.
 
Mmh auch wenn der Befehl im Terminal auf der FritzBox ausgeführt wird?
 
Nicht kontraproduktiv werden, bitte, danke.

Das muss/sollte auch im Browser funzen, da hat chked schon Recht.
Geh mal ins Webinterface deines Gerätes und guck mal ob du irgendwo den Preset Mode Linktyp anstellen/auswählen kannst.

...wir werden uns durch sowas banales jetzt nicht ausbremsen lassen.

EDIT:
Der Preset Mode Linktyp gilt nur für im Webinterface konfigurierte Schalter.
Beim Manual Mode Linktyp müssen die Schalter nicht im Webinterface konfiguriert sein, bietet aber wesentlich mehr Möglichkeiten.
...und der Manual Mode ist auch um einiges komplizierter.
 
Zuletzt bearbeitet:
Hallo,

also im Webinterface hab ich keinerlei Einstellungen (gefunden).

Ich hab das Ganze aber mal mit dem Manual Mode ausprobiert, meine erste Zeile sieht dann so aus:
Code:
startpc="wget 'http://192.168.1.42/send?system=4&hc1=27&addr=5&value=25'"
Leider auch hier die Meldung:
Code:
# wget: not an http or ftp url: 'http://192.168.1.42/send?system=4&hc1=27&addr=5&value=25'
telefon: SIGCHLD PID 12757 received!

Direkt im Terminal eingegeben bekomme ich folgende Meldung:

Code:
# http://192.168.1.42/send?%20system=4&hc1=27&addr=5&value=25'
>
 
Zuletzt bearbeitet:
Ich hab mal spasseshalber auf meinen lokalen Webserver ein wget Kommando auf eine XML Datei losgelassen:
Code:
root@DEEPBASE:/var/mod/root# wget http://localhost:4200/snom320/menu.xml
Connecting to localhost:4200 (127.0.0.1:4200)
menu.xml             100% |***************************************************************|   335   0:00:00 ETA
root@DEEPBASE:/var/mod/root# l
lrwxrwxrwx    1 root     root          19 Sep  3 10:40 usb -> /var/media/NEW_LINK/
-rw-------    1 root     root        4.0K Sep  5 08:39 .ash_history
-rw-------    1 root     root         347 Sep  4 12:42 .asterisk_history
lrwxrwxrwx    1 root     root          23 Jan  1  1970 .profile -> /tmp/flash/mod/.profile
drwx------    2 root     root          60 Sep  3 10:40 .screen/
-rw-r--r--    1 root     root         456 Sep  5 07:25 .screenrc
lrwxrwxrwx    1 root     root          31 Jan  1  1970 .ssh -> /tmp/flash/authorized_keys_root/
-rw-r--r--    1 root     root         335 Sep  5 08:39 menu.xml
root@DEEPBASE:/var/mod/root#
...also, das sagt mir, das wget ein ganz und gar falscher Ansatz ist.
Es downloaded die Seite, wenn es sie denn gibt.
Ich schätze mal, curl ist das was du brauchst.
...mal bei den Binaries gucken ob MaxMuster das schon für die Allgemeinheit kompiliert hat.
Hier im Forum hab ich nur die statische MIPSEL Version gefunden.
Die läuft bei mir z.B. nur auf der 7270v2, aber nicht auf der 7360SL (MIPS).

Aufruf von curl von der 7270v2...
Code:
# ./curl http://192.168.178.1:4200/snom320/menu.xml
<?xml version="1.0" encoding="UTF-8"?>
<SnomIPPhoneDirectory speedselect="select" clearlight="true" state="relevant">
<Fetch mil="2000">http://fritz.box:4200/snom320/menu1.xml</Fetch>
<Title></Title>
<Prompt></Prompt>
<DirectoryEntry>
<Name>Rundruf</Name>
<Telephone>**9</Telephone>
</DirectoryEntry>
</SnomIPPhoneDirectory>
#
...du brauchst also dieses Programm für deine 7390 (MIPS).
 
Zuletzt bearbeitet:
Wow, also vielen Dank für dein Engagement.

Jetzt bin ich aber wieder bei den böhmischen Dörfern.
Den Befehl "curl" kenne ich, da der auf der FB im Terminal aber nicht funktionniert hat, hab ich das gleich wieder verworfen.

Wenn ich dich richtig verstanden habe, fehlt mir also der Unix Befehl "curl" und ggf. hat den schon jmd für die FB 7390 kompilliert und dann könnte ich den "einfach" auf die Box kopieren!?

Gruß Thomas
 
Ja, möglichst eine statisch gelinkte MIPSEL curl Version, da sind die Libraries mit einkompiliert und deswegen ist die auch deutlich über 1Mb gross.
Trotzdem gilt: Solange der Aufruf (Schaltvorgang mit Preset Mode Linktyp oder Manual Mode Linktyp) im Webbrowser nicht funktioniert, nützt dir das nix.
Sieh also zu, dass du das hinkriegst, dann erst macht auch eín Aufruf mit curl Sinn.
 
Zuletzt bearbeitet:
Trotzdem gilt: Solange der Aufruf (Schaltvorgang mit Preset Mode Linktyp oder Manual Mode Linktyp) im Webbrowser nicht funktioniert, nützt dir das nix.

Sorry, wenn ich das nicht geschrieben habe, also mit dem Manual Mode klappt es im Browser einwandfrei.
Bei dem ersten Teil bin ich etwas überfragt, aber ich suche mal.
 
Macht nix, haste ja gerade geschrieben.
Ich hab auch noch einen Aufruf auf eine PHP gemacht, die bei Übergabe des Parameters message eine XML zurückliefert und message ausgibt.
Code:
# ./curl http://192.168.178.21/server.php?message=Hallo%20Welt
<?xml version="1.0" encoding="UTF-8"?>
<SnomIPPhoneText>
<Text><br/>Hallo Welt<br/></Text>
</SnomIPPhoneText>
#
...also ist hiermit bestätigt, dass du wget dafür vollständig vergessen kannst und du dich auf curl konzentrieren musst.
 

Neueste Beiträge

Statistik des Forums

Themen
244,859
Beiträge
2,219,677
Mitglieder
371,576
Neuestes Mitglied
bigt2014
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.