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

t_heinrich

Neuer User
Mitglied seit
23 Aug 2005
Beiträge
168
Punkte für Reaktionen
1
Punkte
18
Hallo zusammen,

ich würde gerne wenn ich eine (Nr. ist nur mir bekannt) von meinem Handy (und nur von dieser Rufnummer) auf meiner FritzBox anrufe einen http Befehl ausführen.

Mit dem http Befehl kann ich Funksteckdosen gezielt ansprechen.

Richtig schick wäre es, wenn ich über verschiedene Rufnummernzusätze zB verschiedene Funksteckdosen ansprechen kann.

Ist so etwas ohne größere Imageanpassung möglich?

Gruß Jens
 
Zuletzt bearbeitet:
Es gibt ein Script namens calllog in /var/flash, das bei jedem Anruf ausgeführt wird. Über entsprechende Abfragen kannst du die gewünschten Funktionen z.B. per wget aufrufen. Suche einfach nach calllog hier im Forum, da wirst du jede Menge Beispiele finden.
 
Hallo,

danke schon mal für den Wink, wobei ich zugeben muss, dass ich auf dem Gebiet Laie bin.
Ich habe verstanden, dass Calllog über Telnet aktiviert werden kann und dann jeden Anruf überwacht und ggf. bestimmte Aktionen auslösen kann.

In meinem Fall würde das dann so ablaufen:

- Anruf kommt rein --> Calllog überprüft, ob der Anrufer mit seiner Nummer berechtigt ist und ob die richtige Rufnummer angewählt ist --> wenn beides postiv, wird eine URL aufgerufen in Form von curl:"Adresse".

Ist das soweit richtig?
Wie komme ich nun an die richtige Syntax? Kann ich die irgendwo nachlesen, oder gibt es Beispiele?


Gruß Thomas
 
/var/calllog

Moin

Ich benutze den calllog Mechanismus schon eine ganze Weile.
Damit ich mit meinen Mobile auf einer von meinen 5 Rufnummern einen PC aufwecken kann (WoC).
Wake on Call im allerwörtlichsten Sinne.

/var/calllog
Code:
#!/bin/sh
wolmac="00:FF:00:EE:00:AA"
nic="eth0"
startpc="ether-wake -i $nic $wolmac"
wolsip="SIP1#9876543210"
woltel="0123456789"
localdir="/var/media/NEW_LINK"
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,$statuscode" >>$logfile
...netter Nebeneffekt: Alle eingehenden Anrufe werden auf USB geloggt.

woc.log
Code:
030XXXXXXX8 (49XXXXXXX7),XXXXXX10,SIP0#XXXXXXX10 (SIP1#XXXXXXX15),, Claudia,INFO:NO_WOC
49XXXXXXXX7 (49XXXXXXX7),XXXXXXXX15,SIP1#XXXXXXXX15 (SIP1#XXXXXXXX15),, koyaanisqatsi,OK:ALLOWED_USER

PS: In /var/flash/calllog muss nichts drinstehen, aber es sollte mit echo "" > /var/flash/calllog aktiviert werden.
Dann wird bei jeden Anruf (von ausserhalb) geschaut ob /var/calllog existiert und wenn ja wird das Skript ausgeführt.

WARNUNG: Die "Dateien" in /var/flash dürfen nur mit nvi editiert werden!!!
 
Zuletzt bearbeitet:
Weiß einer was der calllog mit "$4" übergeben werden könnte? Bei mir ist die immer leer.
 
Moin

Nö, aber vermutlich steht da bei Festnetz Boxen die Line drin, ISDN oder was ähnliches.
 
Nö, das steht in der "$3": POTS, ISDN oder SIP...

Die "$4" ist an allen 3 Anschlußvarianten immer leer.
Ich hatte gedacht die 2. Nummer bei "CLIP no screening" kommt darüber,
aber die kommt über "$5", wo auch der Name aus dem Telefonbuch kommt.
 
Zuletzt bearbeitet:
Naja, vielleicht hat sich AVM das dann vorbehalten für zukünftige Erweiterungen, wer weiss.
Es ist ja NULL bis ZERO dokumentiert.
Vorstellen könnt ich mir auch, dass bei einer manipulierten CallerID, dann da was drinnesteht.
Wer kann CallerIDs manipulieren? Ich bin in Asterisk noch ein Newbie.
 
Zuletzt bearbeitet:
Hallo Leute,

leider für mich böhmische Dörfer.
Hab ich das richtig verstanden, dass ich calllog erst manuell installieren muss?
Hatte versucht mich hier durchzuhangeln, aber die Downloadlinks funktionnieren nicht mehr:
http://www.wehavemorefun.de/fritzbox/Mac_OS_X#Installation

Telnet habe ich bereits aktiviert und kann mich auf der Box umschauen, dass war ja nicht so schwer ;-)

Gruß Thomas
 
Ok Ok Ok, wir schweifen ab, sorry.

Gib folgende Befehle in telnet auf der Box ein:
Code:
# echo "" > /var/flash/calllog
# echo "echo \$@" > /var/calllog
# sh /var/calllog hallo welt
hallo welt
...und dann ruf dich mal an, und guck auf deine telnet Konsole.
 
Zuletzt bearbeitet:
Hallo Leute,

darf ich noch mal vorsichtig fragen, wie ich nun weiter machen muss?

Danke schon mal im Voraus.

Gruß Thomas
 
...ganz vorsichtig das Skript aus Beitrag #4 editieren.
Den Parameter/Variable startpc ändern, so dass er deinen funktionierenden http Befehl enthält.
Die Parameter/Variablen wolmac und nic kannste dann auskommentieren oder löschen (wurden nur in startpc verwendet).
Die Parameter/Variablen woltel und wolsip müssen exakt stimmen, deswegen der echo $@ Befehl zum testen.
 
@koyaanisqati: danke schon mal für den Wink und ganz vorsichtig bin ich auch schon ein gutes Stück weiter ;-)

Habe das Skript an meine Bedürfnisse angepasst, den Befehl den ich benötige ist

startpc="wget 'http://192.168.1.42/preset?switch=10&value=off'"

Den Befehl kann ich auch direkt im Terminal ausführen und der funktionniert.
Kannst du mir noch bitte erklären, wie ich das Skript nun in die calllog bekomme?

Habe folgendes versucht:

echo "INHALT DES SKRIPTES" > /var/calllog

Das scheint aber falsch zu sein.

Gruß Thomas
 
Das scheint aber falsch zu sein.
Da hast du vollkommen recht. Also Schritt für Schritt:

1. Erstelle das Script auf dem PC mit einem geeigneten Editor z.B. Notepad++ oder PsPad. Wichtig ist, dass das Script mit UNIX-Zeilenformat gespeichert wird. Der Standard-Windows-Notepad kann das nicht.
2. Kopiere das Script auf einen USB-Stick oder den internen Speicher der Fritzbox unter dem Namen meincalllog
3. Führe auf der Telnet-Konsole den Befehl
Code:
cat /var/media/NEW_LINK/meincalllog > /var/flash/calllog
aus.

NEW_LINK musst du ggf. anpassen, je nachdem wo das Script gespeichert ist.
 
Moin

Ein einfaches cat ist nicht so gut, weil die Dollarzeichen $ maskiert werden müssen.
Es werden sonst nur leere Gänsefüsschen in /var/flash/calllog ankommen.
Also nach dem cat mit nvi /var/flash/calllog nach diesen Fehlern suchen und verbessern.
 
Bei echo müssen die $ maskiert werden, bei cat nicht.
 
Hm, hast Recht.

...nur aus einem Skript heraus muss maskiert werden.

Beispiel:
Code:
# .screenrc
cat << EOF > /mod/root/.screenrc
# /mod/root/.screenrc
...
shelltitle "\$ \|ash"
...
EOF
 
Zuletzt bearbeitet:
Der Standard-Windows-Notepad kann das nicht.

Das ist nicht weiter schlimm, da ich Mac-User bin ;-)

Da hast du vollkommen recht. Also Schritt für Schritt:

2. Kopiere das Script auf einen USB-Stick oder den internen Speicher der Fritzbox unter dem Namen meincalllog

Ach verdammt da geht's schon wieder los.
Mittels Konsole habe ich das nicht hinbekommen.
Ich habe einen FTP User angelegt und mich mit ForkLift (Dateimanager und FTP Client) verbunden, allerdings sehe ich da nur die Ordner vom NAS.
Wie bekomme ich denn root Zugang, damit ich aufs komplette Dateiverzeichnis zugreifen kann?

Konnte dazu nichts finden. :-(

Danke und Gruß

Thomas
 
Moin

Als was, bitteschön, warst du denn auf der Box unterwegs, als du den Befehl echo "echo \$@" > /var/calllog abgesetzt hast?

Wer nur Text kopieren will, braucht keinen FTP-Klienten oder Dateimanager.
In Windows (Macs bestimmt auch) kann man Text ins Clipboard kopieren (Strg + C) und in der Linuxkonsole (telnet) durch simples drücken der rechten Maustaste wieder einfügen.
Sinnigerweise am besten in die zu editierende Datei, die z.B. so geöffnet wurde: vi /var/media/NEW_LINK/meincalllog (Taste a drücken vor dem Einfügen).
Dann Esc x RETURN zum Speichern und beenden. Fertig.
 

Neueste Beiträge

Statistik des Forums

Themen
244,858
Beiträge
2,219,650
Mitglieder
371,572
Neuestes Mitglied
#Kuddel#
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.

IPPF im Überblick

Neueste Beiträge