[Gelöst] FBF 7170 Problem Script Anruf-E-Mail

matuschek

Neuer User
Mitglied seit
11 Nov 2006
Beiträge
25
Punkte für Reaktionen
0
Punkte
0
Hallo,

habe bei meiner Fritz!Box 7170 mit aktueller Firmware (40) das untenstehende Script eingefügt.

Einmal hat es auch geklappt (also die Benachrichtigung bei einem einzigen Testanruf), anschließend meldet das Script sich nicht mehr per E-Mail bei mir.

Kann mir ein Experte erklären, wo der Fehler wohl liegt?

Vielen Dank!

Code:
FritzIP="*******"
FritzPwd="*******"

MailSMTP="*******"
MailUser="*******"
MailPwd="*******"

Datum="`date +\"%d.%m.\"`"
Jahr="`date +\"%Y\"`"
Zeit="`date +\"%H:%M\"`"
Sec="`date +\"%S\"`"

# echo "nun 1s warten"
sleep 1

export REQUEST_METHOD="POST"
export REMOTE_ADDR=$FritzIP
export CONTENT_TYPE="application/x-www-form-urlencoded"
POST_DATA="login:command/password=$FritzPwd"
export CONTENT_LENGTH=${#POST_DATA}
echo -n "$POST_DATA" | /usr/www/html/cgi-bin/webcm > /dev/null

/usr/bin/wget -O /dev/null "http://$FritzIP/cgi-bin/webcm?getpage="../html/de/menus/menu2.html\&var:lang=de\&var:menu=fon\&varagenam e=foncalls""

# echo "nun 5s warten"
sleep 5

#! /bin/sh
CID=$1
name=""

#############################################################################

# Unterscheidung nach der angerufenen MSN
case "$2"
in
*******)
fritz_User="*******" \
fritz_MSN_Name="*******" \
fritz_MSN_Typ="*******" \
;;

*******)
fritz_User="*******" \
fritz_MSN_Name="*******" \
fritz_MSN_Typ="*******" \
;;


*)
fritz_User="*******" \
fritz_MSN_Name="unbekannte MSN" \
fritz_MSN_Typ="Tel" \
;;
esac

#############################################################################

# Unterscheidung nach dem Nutzer
case "$fritz_User"
in
*******)
MailAdresse="******* <*******@*******.com>" \
MailAbsender="******* <*******@*******.com>" \
fritz_User_Name="*******" \
;;

*******)
MailAdresse="******* <*******@*******.com>" \
MailAbsender="******* <*******@*******.com>" \
fritz_User_Name="*******" \
;;

*******)
MailAdresse="******* <*******@*******.com>" \
MailAbsender="******* <*******@*******.com>" \
fritz_User_Name="*******" \
;;

*)
MailAdresse="******* <*******@*******.com>" \
MailAbsender="******* <*******@*******.com>" \
fritz_User_Name="*******" \
;;
;;
esac

#############################################################################

ParseTelefonbuch()
{
export REQUEST_METHOD="GET"
export REMOTE_ADDR=$FritzIP
POST_DATA="login:command/password=$FritzPwd"
export CONTENT_LENGTH=${#POST_DATA}
export QUERY_STRING="getpage=../html/de/menus/menu2.html&var:lang=de&var:menu=fon&var:pagename=fonbuch"
cd /usr/www/html/cgi-bin
./webcm |
sed -n 's/^.*document.write(TrFon(.*", "\(.*\)", ".*'$*'.*/\1/p'
}

if [ -z "$CID" ]
then
CID="mit unterdrueckter Rufnummer";
name="---"
else
echo "In Fritz!Box-Telefonbuch nachschlagen"

name=`ParseTelefonbuch $CID`
nrquelle=" (lt. Fritz!Box-Telefonbuch)"

if [ -z "$name" ]
then
echo "In DasOertliche nachschlagen"
url="http://www1.dasoertliche.de/Controller?form_name=search_inv&la=de&page=5&context=4&action=43&buc=&ph=${CID}";
name=$(wget -q -O - "$url" | grep class=\"entry\" | sed -e 's/<[^<]*>/\ /g;s/^[^a-zA-Z0-9]*//;s/  /, /g');
nrquelle=" (lt. 'Das \xd6rtliche)'";
if [ -z "$name" ]
then
name="nicht ermittelbar"
nrquelle=""
fi
fi
fi

echo -e "Hallo $fritz_User_Name,\r\n\r\nsoeben ist eingegangen:\r\n\r\n" > /var/tmp/calllog.txt
echo -e "Ruf von: $1\r\nTeilnehmer: $name$nrquelle\r\nRuf auf: $fritz_MSN_Name [$2 - $3]\r\nRuf am: $Datum$Jahr um $Zeit:$Sec" >> /var/tmp/calllog.txt
echo -e "\r\n\r\n---\r\nViele Gruesse" >> /var/tmp/calllog.txt

/sbin/mailer \
-s "$fritz_MSN_Typ $1 [$name] auf $fritz_MSN_Name um $Zeit am $Datum" \
-f "$MailAbsender" \
-t "$MailAdresse" \
-m "$MailSMTP" \
-a "$MailUser" \
-w "$MailPwd" \
-i '/var/tmp/calllog.txt'
#  2> /dev/null

# rm /var/tmp/calllog.txt

Mir ist wirklich sehr geholfen, wenn sich mal einer von Euch Profis der Sache annimmt; DANKE!!!
 
Zuletzt bearbeitet:
Darf man fragen, warum Du nicht in dem betreffenden Thread fragst, ausdem Du das Script hast?

Abgesehen davon, wenn es schon mal erfolgreich gelaufen ist, wird es wohl nicht am Script selbst liegen. Ist denn das Script aktiv?, bzw. wird dieses im Flash verarbeitet? Welche Fehler werden ausgegeben???

PS: Leg bitte eine aussagekräfitige Signatur mit deiner genutzten HW und Softwarestand an.
 
Hallo,

ich habe doch den Softwarestand genannt, aber ganz genau ist es FRITZ!Box Fon WLAN 7170, Firmware-Version 29.04.40.

Eingespielt über Telnet von Windows Vista Basic.

Meine Vermutung ist, daß es sich um einen Programmierfehler handelt, der zwar eine einmalige Auführung erlaubt aber anschließend kein weiteres mal "durchläuft".

Da ich das Script nur teilweise mit Infos von hier ergänzt habe und es eigentlich von einem Freund habe dachte ich, daß es geschickter ist, einen neuen Thread zu eröffnen, da es ja doch schon gegenüber der hier geposteten Version erheblich verändert wurde.

Danke für weitere Hilfe schon vorab.
 
ich habe doch den Softwarestand genannt, aber ganz genau ist es FRITZ!Box Fon WLAN 7170, Firmware-Version 29.04.40.
Dann schreib das doch mal in eine Signatur, damit es unter jedem deiner Beiträge steht und nicht neu erfragt werden muss.

Meine Vermutung ist, daß es sich um einen Programmierfehler handelt, der zwar eine einmalige Auführung erlaubt aber anschließend kein weiteres mal "durchläuft".
Würde nur Sinn ergeben, wenn danach etwas verändert, die Box neugestartet, oder das Script manuell ausgeführt worden wäre.

Welche Fehlermeldungen kommen denn auf der Konsole, bei einem eingehenden Anruf, bzw. wie weit läuft das Script genau ?
Damit es in der Konsole sichbar wird, muss hier die # weg:
Code:
#  2> /dev/null
Steht denn auch etwas in dieser Datei?
/var/tmp/calllog.txt

gibt es denn dein Script in /var/flash/(calllog?, oder wie du es benannt hast)?

Wie hast Du das Script auf die Box bekommen?, welchen Texteditor hast Du dafür verwendet?

Gruß
 
Hallo,

habe jetzt das mal anzeigen lassen; er sagt folgendes:

Connecting to 192.168.178.1[192.168.178.1]:80
null
100% |**********************************| 12388 --:-- ETA
/var/calllog: /var/calllog: 162: Syntax error : "(" unexpected (expecting ";;")

Was bedeutet das? Zeile 162... wie finde ich die Zeile raus?

Wenn ich in meinem Texteditor - übrigens der ganz normale Windows Vista Home Basic Texteditor) in Zeile 162 der von mir angelegten Textdatei gehe, steht da gar keine "(".
 
Code:
 Connecting to 192.168.178.1[192.168.178.1]:80
null
100% |**********************************| 12388 --:-- ETA
Das ist Ok, er verbindet zur Box, um das Telefonbuch auszulesen, soll so sein.

Code:
 /var/calllog: /var/calllog: 162: Syntax error : "(" unexpected (expecting ";;")
Das ist der Grund, warum dein Script nicht durchläuft und somit keine E-Mail kommt. Vermutlich wird dann auch in /var/tmp/calllog.txt nichts stehen.

Wenn ich in meinem Texteditor - übrigens der ganz normale Windows Vista Home Basic Texteditor
Und da haben wir den Fehler!
Scripte solltest Du entweder auf einer Unix (o. Linux) Maschine bearbeiten, z.B. mit vi auf der Fritzbox selbst ;) - oder in einem unixkompatiblen Format.
Das Script, was Du auf deiner Vistamaschine siehst, ist nicht identisch mit den Zeilen auf der Linuxbox. Deshalb läuft es auch nicht durch, bzw. macht in Zeile 162 die Zeichen (;; ,die dort so nicht stehen sollten.

Steps zum beheben:
1. sich mit dem Editor vi vertraut machen.
2. das Script, z.B. mit copy & past, in die Konsole mit vi schreiben.
3. speichern
4. ins flash rüberkopieren:
Code:
cat calllog>/var/flash/calllog
5. Testanruf
6. Fehler in der Konsole beobachten
7. und diese Fehler mit vi auf der Box, im Script beheben (dann passen auch die Zeilennr.)

Wenn Du noch Hilfe brauchst, einfach den zwischenstand posten.
Wenn das Thema erledigt ist und alles funktioniert [Gelöst] vor den Betreff deines ersten Postings setzten.

Zu deiner PN:
gern geschen, machen aber die meisten hier auch gern ;)

Grüße
Lemur
 
Hallo,

also nochmal vielen Dank für die Hilfe.

Es lag an einem ganz anderen Fehler: Bei einem der Empfänger der E-Mails war ein ö im Namen, und daran hat es gelegen.
Nun habe ich das ö durch oe umgangen und siehe, schon funktioniert das Script.

Es lag also weder am Texteditor noch an einem Programmierfehler in dem Script.

DANKE!!!
 
Freut mich, dass ich Dir bei der Lösung behilflich sein konnte.

Dann wünsch ich Dir noch viel Erfolg und Spass hier im Forum.


Grüße Lemur
 
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.