Fritzbox Fon, Dreambox Callmonitor ohne Modifikation

nein, daran liegt es nicht -- oder nicht allein. ich habe den apache abgestellt und den port der dream wieder auf 80 gesetzt. es wird nach wie vor nichts am tv angezeigt. wenn ich unter telnet mit "ps" nachschaue, dann sind alle erforderlichen einträge vorhanden.

wo könnte ich noch nach einem fehler suchen?
 
Bevor wir hier weiter wie wild im Nebel rumstochern: Poste doch mal bitte alle Deine callmonitor-Dateien sowie Deine debug.cfg. Packe die Dateien in code-Tags ein, dann bleibt das Forum trotzdem lesbar.
Außerdem poste dann alle verwendeten IPs (interne IP der FBF, der Dreambox etc.) und die Ausgabe von ps.
 
Code:
192.168.0.25 dreammessage dbox
 
192.168.0.27 dreammessage dbox


Code:
#Einbinden ueber ". /var/tmp/callmonitor.out"

# Listener Types, separate function for each type of listeners. Add your own!
#$6: Eigene Message..

get_it()
{
	VALUE=`sed -e "/^$1=/!d" -e "s/^[^=]*=[\"']\?//" -e "s/[\"']\?$//" /var/flash/debug.cfg`
	if [ "$VALUE" = "" ]
	then
		echo "$2"
	else
		echo $VALUE
	fi
}
maskieren()
{
        echo "$@" | sed -e 's/ /%20/g' -e 's#\\n#%0A#' -e 's#\\t#%09#' -e 's#\\r#%0D#'
}
dboxpopup () {
	IP=$1 ; MSISDN=$2 ; CALLER=$3 ; CALLED=$4 # not used ; VIRTUAL=$5
	MESSAGE=${6:-"Anruf an $CALLED %0A%0A von $MSISDN %0A $CALLER"}
	nc -w 2 $IP 80 <<EOF_DBOXP > /var/tmp/nc.out 2>&1
GET /control/message?popup=`maskieren $MESSAGE` HTTP/1.0
EOF_DBOXP
}
dboxmessage () {
	IP=$1 ; MSISDN=$2 ; CALLER=$3 ; CALLED=$4 # not used ; VIRTUAL=$5
        MESSAGE=${6:-"Anruf an $CALLED %0A%0A von $MSISDN %0A $CALLER"}
        /var/tmp/nc -w 2 $IP 80 <<EOF_DBOXM > /var/tmp/nc.out 2>&1
GET /control/message?nmsg=`maskieren $MESSAGE` HTTP/1.0
EOF_DBOXM
}
dreammessage () {
	IP=$1 ; MSISDN=$2 ; CALLER=$3 ; CALLED=$4 ; VIRTUAL=${5:-$1}
        MESSAGE=${6:-"Anruf%20an%20$CALLED%20%0A%0A%20von%20$MSISDN%20%0A%20$CALLER"}
        /var/tmp/nc -w 2 $IP 80 <<EOF_DREAMBOX > /var/tmp/nc.out 2>&1
GET /cgi-bin/xmessage?timeout=10&caption=Telefonanruf&body=`maskieren $MESSAGE` HTTP/1.0
Host: $VIRTUAL

EOF_DREAMBOX
}
ownmessage () {
	IP=$1 ; MSISDN=$2 ; CALLER=$3 ; CALLED=$4 ; VIRTUAL=${5:-$1}
        MESSAGE=${6:-"$MSISDN"}
	OWNGET="`sed -e '/^#CALLOWNGET=/!d' -e 's/#CALLOWNGET=//' /var/flash/debug.cfg`"
	OWNGET="`eval maskieren '$OWNGET'`"
        nc -w 2 $IP 80 <<EOF_OWN > /var/tmp/nc.out 2>&1
GET $OWNGET HTTP/1.0
Host: $VIRTUAL

EOF_OWN
}
own2message () {
	IP=$1 ; MSISDN=$2 ; CALLER=$3 ; CALLED=$4 ; VIRTUAL=${5:-$1}
        MESSAGE=${6:-"$MSISDN"}
	OWNGET="`sed -e '/^#CALLOWNGET=/!d' -e 's/#CALLOWNGET=//' /var/flash/debug.cfg`"
	OWNGET="`eval maskieren '$OWNGET'`"
	OWNGET="`eval echo $OWNGET`"
        nc -w 2 $IP 80 <<EOF_OWN > /var/tmp/nc.out 2>&1
GET $OWNGET HTTP/1.0
Host: $VIRTUAL

EOF_OWN
}
own3message () {
	IP=$1 ; MSISDN=$2 ; CALLER=$3 ; CALLED=$4 ; VIRTUAL=${5:-$1}
        MESSAGE=${6:-"$MSISDN"}
	OWNGET="`sed -e '/^#CALLOWNGET=/!d' -e 's/#CALLOWNGET=//' /var/flash/debug.cfg`"
	OWNGET="`eval echo $OWNGET`"
	OWNGET="`eval maskieren '$OWNGET'`"
        nc -w 2 $IP 80 <<EOF_OWN > /var/tmp/nc.out 2>&1
GET $OWNGET HTTP/1.0
Host: $VIRTUAL

EOF_OWN
}
yac () {
	IP=$1 ; MSISDN=$2 ; CALLER=$3 ; CALLED=$4 ; PORT=${5:-"10629"}
	MESSAGE=${6:-"@CALL$CALLER~$MSISDN"}
	echo -e "$MESSAGE\0\c" | nc -w 2 $1 $PORT > /var/tmp/nc.out 2>&1
}
etherwakes() {
        sed -e "/^ETHERWAKES=/!d" -e "s/^[^=]*=[\"']\?//" -e "s/[\"']\?$//" /var/flash/debug.cfg | while read etheropt
	do
		etherwake $etheropt > /var/tmp/etherwake.log 2>&1
	done
}
droptoggle() {
	killall dropbear 2>/dev/null 1>&2 || /usr/sbin/dropbear -p `get_it DROPPORT 22`
}
dropon() {
	/usr/sbin/dropbear -p `get_it DROPPORT 22` 2>/dev/null 1>&2
}
dropoff() {
	killall dropbear 2>/dev/null 1>&2
}


Code:
#!/var/tmp

# INVERS und UPDATE als Aufrufparameter
INVERS=${1:-0} # Enable revers lookup of phone numbers (das oertliche), default:0 (nein)
UPDATE=${2:-0}  # Update phonebook with results of revers lookup, default:0 (nein)

# Listener imported...
. /var/tmp/callmonitor.out

##########
# Main program starts here
##########

while read line
do
	case $line in
		IncomingCall*)
			MSISDN=`echo $line | sed 's/^.*caller: .\(.*\). called:.*/\1/'`
			CALLED=`echo $line | sed 's/^.*called: .\(.*\)".*/\1/'`
			if [ "$MSISDN" = "" ]
			then
				MSISDN="keine Rufnummer/CLIP"
				CALLER=".."
			else
				CALLER=`cat /var/flash/debug.cfg /var/tmp/tempcall.cfg 2>/dev/null | sed -e "/#MSISDN=$MSISDN:/!d" -e "s/#MSISDN=$MSISDN://"`
				if [ "$CALLER" = "" -a "$INVERS" = "1" ]
				then
					CALLER=`( ( echo "GET /DB4Web/es/oetb2suche/home.htm?kw_invers=$MSISDN&main=Antwort&AKTION=START_SUCHE&SEITE=INVERSSUCHE&rg=1&s=2&ok= HTTP/1.0"; echo "Host: www.dasoertliche.de"; echo "" ) | nc -w 5 [url]www.dasoertliche.de[/url] 80 ) | sed -e '/<a class="blb" href="home.htm/!d' -e 's#<[^>]*># #g' -e 's#[ 	][ 	]*# #g'`
					if [ "$CALLER" = "" ]
					then
						CALLER="Kein Name gefunden"
					fi
					
					if [ "$UPDATE" = 1 ]
					then
						cat /var/flash/debug.cfg > /var/tmp/debug.cfg
						echo "#MSISDN=$MSISDN:$CALLER" >> /var/tmp/debug.cfg
						cat /var/tmp/debug.cfg > /var/flash/debug.cfg
					else
						echo "#MSISDN=$MSISDN:$CALLER" >> /var/tmp/tempcall.cfg
					fi
				fi
			fi
			cat /var/tmp/callmonitor.listeners | while read listener listener_type virtualname
			do
				case $listener in
				etherwake|etherwakes)
					echo "$MSISDN" | grep -q "$listener_type" || continue
					echo "$CALLED" | grep -q "$virtualname" || continue
					etherwakes
					continue
					;;
				droptoggle|dropon|dropoff)
					echo "$MSISDN" | grep -q "$listener_type" || continue
					echo "$CALLED" | grep -q "$virtualname" || continue
					$listener
					continue
					;;
				matchtest)
					echo "$MSISDN" > /var/tmp/matchtest
					echo "$CALLED" >> /var/tmp/matchtest
					echo "$MSISDN" | grep "$listener_type" >> /var/tmp/matchtest
					echo "$CALLED" | grep "$virtualname" >> /var/tmp/matchtest
					continue
					;;
				\#*)
					#Ohne Kommentar
					continue
					;;
				[0-9]*.[0-9]*.[0-9]*.[0-9]*)
					#Feste IP-Adressen
					IPS=$listener
					;;
				[0-9]*.[0-9]*.[0-9]*.)
					#IP-Adressen Ziffer.Ziffer.* aus multilease
					IPS=`fgrep -i $listener /var/flash/multid.leases | awk '{ print $3 }'`
					;;
				*)
					#Namen sollten aufgelöst werden
					IPS=$listener
				esac

				for IP in $IPS
				do
					( $listener_type "$IP" "$MSISDN" "$CALLER" "$CALLED" "$virtualname" ) &
				done
			done
			;;
	esac
done





Code:
/usr/sbin/telnetd -l /sbin/ar7login

wget ftp://root:[email protected]/mnt/usb/fritz/callmonitor.sh -O /var/tmp/callmonitor.sh
wget ftp://root:[email protected]/mnt/usb/fritz/callmonitor.out -O /var/tmp/callmonitor.out
wget ftp://root:[email protected]/mnt/usb/fritz/callmonitor.listeners -O /var/tmp/callmonitor.listeners
wget ftp://root:[email protected]/mnt/usb/fritz/nc -O /var/tmp/nc

chmod 777 /var/tmp/callmonitor*
chmod 777 /var/tmp/nc

if [ -x /var/tmp/callmonitor.sh ]
then
     killall telefon
     sleep 3
     telefon a127.0.0.1 | /var/tmp/callmonitor.sh 1 1 &
fi








Code:
# ps
  PID  Uid     VmSize Stat Command
    1 root        332 S   init
    2 root            SW  [keventd]
    3 root            SWN [ksoftirqd_CPU0]
    4 root            SW  [kswapd]
    5 root            SW  [bdflush]
    6 root            SW  [kupdated]
    7 root            SW  [mtdblockd]
    8 root            SW  [tffsd_mtd3]
  247 root        228 S   ledcfg -c -d -f /etc/Fritz_Box_7050.led.conf
  287 root            SW  [ubik2_tx[8]]
  288 root            SW  [capitransp]
  292 root            SW< [kdsld]
  319 root       1896 S N ctlmgr
  335 root       1172 S N websrv
  342 root       1172 S N websrv
  346 root       1172 S N websrv
  347 root       1172 S N websrv
  373 root       1472 S   dsld -i -n
  394 root       1796 S < voipd
  397 root        192 S   /bin/run_clock -c /dev/tffs/mtd3 -d
  407 root        268 S   /usr/sbin/telnetd -l /sbin/ar7login
  421 root        388 S   /bin/sh /var/tmp/callmonitor.sh 1 1
  424 root        328 S   init
  427 root        844 S   telefon a127.0.0.1
  976 root       1256 S N multid
 1533 root        412 S   -sh
 1614 root        412 S   -sh
 1694 root        296 R   ps
#
#


fbfip:192.168.0.1
dream1-ip 192.168.0.25 mit den hinterlegten dateien
dream2-ip:192.168.0.27


ich hoffe, dass ich das mit den tags richtig umgesetzt habe
 
Zunächst: Die Code-Tags hast Du perfekt eingebunden! :)

Eigentlich wollte ich gerade schreiben, daß Du mal die "dboxmessage", welche Du zusätzlich zu der dreammessage in der callmonitor.listeners stehen hast, rausschmeissen sollst, aber auf einmal sind die schon wegeditiert. Nun gut.

Der Rest sieht IMHO eigentlich gut aus, sofern die angegebenen IPs also stimmen, HTTP-Auth auf den Boxen ausgeschaltet ist, Port 80 von der Box verwendet wird etc., müsste eigentlich alles klappen. Also FritzBox noch einmal neu starten und schauen...

Edit: Du könntest vom Telnet aus mal versuchen, "von Hand" eine Nachricht auf die Box zu schicken, um zu gucken, ob das überhaupt geht. Dazu gibst Du folgendes ein:
Code:
/var/tmp/nc -w 2 192.168.0.25 80 (ENTER)
GET /control/message?nmsg=`Testnachricht` HTTP/1.0 (ENTER)
(ENTER)
Damit sollte eigentlich auf der entsprechenden Box 1 die Meldung "Testnachricht" erscheinen. Falls nicht, probier mal in einem Browser die Adresse 192.168.0.25/control/message?nmsg=`Testnachricht` aufzurufen. Wenn das klappt, hat es was mit der FritzBox zu tun; falls nicht, mit der Dreambox.
 
Code:
#  /var/tmp/nc -w 2 192.168.0.25 80
GET /control/message?nmsg=`Testnachricht` HTTP/1.0

#
#
#  /var/tmp/nc -w 2 192.168.0.25 8080
GET /control/message?nmsg=`Testnachricht` HTTP/1.0

HTTP/1.0 400 Bad Request
Connection: close
Content-Type: text/html

nc: read: Connection reset by peer
#

ich habe zwischenzeitlich wieder den port 8080 für das webinterface eingerichtet. deshalb habe ich den befehl einmal mit port 8080 ausgeführt. allerdings habe ich die callmonitor.out noch auf port 80 stehen. ich werde es nocheinmal versuchen, mit port 8080 in der callmonitor.out

im browser bekomme ich bis dahin auch nur "404 not found" angezeigt

edit: auch nach änderung des ports auf 8080 in der callmonitor.out bleibt die meldung (400 bad request s.o.)
 
dr.no schrieb:
# /var/tmp/nc -w 2 192.168.0.25 8080
GET /control/message?nmsg=`Testnachricht` HTTP/1.0

HTTP/1.0 400 Bad Request
Connection: close
Content-Type: text/html

nc: read: Connection reset by peer
#[/code]
[...]
im browser bekomme ich bis dahin auch nur "404 not found" angezeigt
Wenn die Dreambox noch auf Port 8080 hört, ist die 404 im Browser klar. Dann bitte 192.168.0.25:8080/control/message?nmsg=`Testnachricht` eingeben. Alternativ auch mal ohne die Hochkommata prüfen, also 192.168.0.25:8080/control/message?nmsg=Testnachricht

Ich habe leider keine Dreambox, daher kann ich das nicht selbst austesten...

Nachtrag: In einem anderen Thread habe ich noch was zur Dreambox gefunden, demnach müßte der Abschnitt dremmessage in der callmonitor.out wie folgt geändert werden:
Code:
dreammessage () {
IP=$1 ; MSISDN=$2 ; CALLER=$3 ; CALLED=$4 ; VIRTUAL=${5:-$1}
MESSAGE=${6:-"Anruf%20an%20$CALLED%20%0A%0A%20von%20$MSISDN%20%0A%20$CALLER"}
nc -w 2 $IP 80 <<EOF_DREAMBOX > /var/tmp/nc.out 2>&1
GET /cgi-bin/xmessage?timeout=10&caption=Telefonanruf&body=`maskieren $MESSAGE` HTTP/1.0
Host: $VIRTUAL

EOF_DREAMBOX
}
Ein Versuch vorab per Browser sähe dann so aus:
192.168.0.25:8080/cgi-bin/xmessage?timeout=10&caption=Telefonanruf&body=`Testnachricht`
bzw. mit Port 80:
192.168.0.25/cgi-bin/xmessage?timeout=10&caption=Telefonanruf&body=`Testnachricht`

Wie gesagt, alles ohne Gewähr, kann es nicht testen...
 
192.168.0.25:8080/cgi-bin/xmessage?timeout=10&caption=Telefonanruf&body=`Testnachricht`


mit diesem eintrag(nach dem abändern der callmonitor.out) im bowser bekomme ich eine "testmeldung" auf dem tv. anrufe werden (noch) nicht angezeigt....
 
dr.no schrieb:
192.168.0.25:8080/cgi-bin/xmessage?timeout=10&caption=Telefonanruf&body=`Testnachricht`
mit diesem eintrag im bowser bekomme ich eine "testmeldung" auf dem tv. anrufe werden (noch) nicht angezeigt....
Halleluja! Wir nähern uns...

Also, nimm Dir die Datei callmonitor.out und tausch den Abschnitt "dreammessage" aus gegen folgende Zeilen (ich habe hier auch schon für Dich den Port 8080 eingetragen):
Code:
dreammessage () {
IP=$1 ; MSISDN=$2 ; CALLER=$3 ; CALLED=$4 ; VIRTUAL=${5:-$1}
MESSAGE=${6:-"Anruf%20an%20$CALLED%20%0A%0A%20von%20$MSISDN%20%0A%20$CALLER"}
nc -w 2 $IP 8080 <<EOF_DREAMBOX > /var/tmp/nc.out 2>&1
GET /cgi-bin/xmessage?timeout=10&caption=Telefonanruf&body=`maskieren $MESSAGE` HTTP/1.0
Host: $VIRTUAL

EOF_DREAMBOX
}
Diese Datei dann auf die Dreambox legen, FritzBox neu starten und hoffen...
 
die callmonitor.out hatte ich schon angepasst. erst danach bekam ich auch die testmeldung. ich hatte das in meinem letzten posting editiert -- leider ist das board bei mir sehr, sehr langsam.
 
Eine Anzeige auf der Dreambox aufgrund des Aufrufs der entsprechenden cgi mittels des Browsers ist aber sowas von unabhängig von einer callmonitor.out auf der FritzBox... Die spielt beim direkten Aufruf durch den Browser gar nicht mit!

So, zumindest ist jetzt der richtige Aufruf klar, alles weitere sollte sich ergeben! Evtl. auch durch die Lektüre der auf der ersten Seite von Fritzchen genannten Links.

Viel Erfolg noch (muß mich auch noch um andere Dinge kümmern...)!
 
okay

nochmal vielen dank für deine zeit!!
 
eine letzte frage hätte ich noch:

wenn ich möchte, dass auch der anrufername angezeigt wird -- im abgleich mit "das örtlich.de" muss ich dann die callmonitor.sh noch bearbeiten? oder ist das ganze nicht empfehlenswert?
Code:
#!/var/tmp

# INVERS und UPDATE als Aufrufparameter
INVERS=${1:-0} # Enable revers lookup of phone numbers (das oertliche), default:0 (nein)
UPDATE=${2:-0}  # Update phonebook with results of revers lookup, default:0 (nein)

# Listener imported...
. /var/tmp/callmonitor.out
 
Hallo dr.no

also bei mir geht die Anzeige auf der DM. Letzendlich habe ich in den Files von ch1derco außer der IP Adresse nicht geändert.
 
Ich versteh das nicht. Warum klappt das bei Dir und bei mir nicht? Habe auch die Dateien eins zu eins übernommen und nur die IP geändert und nix tut sich auf der Dreambox! Bin mit meinem Latein echt am Ende
 
bei mir klappt die anzeige der rufnummer mitlerweile auch. allerdings wir die rufnummer keinem namen aus dem telefonbuch zugeordnet. ruft ein teilnehmer mit rufnummernübertragung und telefonbucheintrag (das-örtliche) an, dann wird "nur " die rufnummer angezeigt. der abgleich mit der online datenbank bleibt offensichtlich aus. dieses problem haben bei uns im dreambox forum mehrere member....

edit: ich habe beim absenden dieser nachricht 3 mal eine fehlermeldung erhalten...nun ist sie doch 3 mal da.

sorry -- wenn möglich bitte 2x löschen?! thx
 
Jetzt hast Du den Vogel aber abgeschossen! :mrgreen: Drei mal das selbe Posting!

Editieren! Editieren! Editieren! Und an die Leser denken! :doktor:

Edit:
Okay. Die Fehlermeldung hatte ich auch gerade. Kann mal vorkommen.
Deine anderen beiden Postings lösche ich.

Du kannst aber auch selbst löschen, solange noch keiner auf den letzten Beitrag in einem Thread geantwortet hat (auch über den Edit-Button).
 
dr.no schrieb:
ruft ein teilnehmer mit rufnummernübertragung und telefonbucheintrag (das-örtliche) an, dann wird "nur " die rufnummer angezeigt. der abgleich mit der online datenbank bleibt offensichtlich aus. dieses problem haben bei uns im dreambox forum mehrere member....
Ob wir dann jetzt das Problem, das scheinbar schon eine geraume Zeit besteht, mal eben gelöst kriegen? Ich fürchte... Sollte das Problem schon gelöst sein, müsste sich das ja eigentlich auch über die Suche finden lassen. Aber da ich keine dreambox habe, kann ich weder Ergebnisse testen noch (ganz ehrlich gesagt) interessiert es mich zur Zeit. :?

Du kannst mal folgende Dinge versuchen. Bitte immer nur eine Sache gleichzeitig - wenn's nicht klappt, rückgängig machen.

1. trage "CALLINVERS=1" in die debug.cfg ein (ohne Anführungsstriche)
2. setze "INVERS=1" in der callmonitor.sh (ohne Anführungsstriche)
3. ersetze in der callmonitor.sh in der ca. 25. Zeile den Eintrag
Code:
            if [ "$CALLER" = "" -a "$INVERS" = "1" ]
durch
Code:
            if [ "$CALLER" = "" ]

Ich habe keine Ahnung, ob es hilft - und wenn nicht, auch zunächst keine weitere Idee dazu...


HTH,
Wichard

Edit: Du schreibst immer wieder von einem Thread im "dbf" - gib doch mal einen Link dazu, was dort schon alles besprochen / ausprobiert wurde.
 
Ich habe gelesen, wenn ich
cd /var/tmp
more nc.out eingebe, müssten Daten ausgespuckt werden.
Bei mir sagt Telnet aber, das er die Datei nicht findet, obwohl ich die nc aus der Dreambox rüber kopiert habe.
Kann es daran liegen, das ich keine Anzeige an der Dreambox bekomme?
Wenn ich more debug.cfg eingebe, kann ich die eingehenden Anrufe sehen, sie kommen aber nicht an der Dreambox an!
Hat das was damit zu tun, das ich die nc.out nicht auf der Fritzbox habe?
Und vor allem: Warum habe ich die nicht auf der Fritzbox?
 
llaprosper schrieb:
Ich habe gelesen, wenn ich
cd /var/tmp
more nc.out eingebe, müssten Daten ausgespuckt werden.
Bei mir sagt Telnet aber, das er die Datei nicht findet
In der Datei nc.out landen die Fehlermeldungen von nc. Diese ist aber idR leer bzw. erst vorhanden, wenn nc auch wirklich einmal aufgerufen wurde.

llaprosper schrieb:
Wenn ich more debug.cfg eingebe, kann ich die eingehenden Anrufe sehen, sie kommen aber nicht an der Dreambox an!
Hat das was damit zu tun, das ich die nc.out nicht auf der Fritzbox habe?
Nein. Zur Fehlersuche würde ich vorschlagen, daß Du den ganzen Weg, den ich mit dr.no schon gegangen bin, noch einmal abläufst. (Also mal den Aufruf per Browser probieren, dann per EIngabe unter telnet etc.)
 
also die dreambox zeigt einem dann auf dem fernseher ne nachricht, in der die nummer des anrufes auftaucht, wenn dieser die sendet? hat das irgendeinen einfluß auf eine laufende aufnahme?
könnte vielleicht mal jemand einen screenshot einhängen?
cya
 
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.