Seite 1 von 1

Callmessage auf Dboxdisplay

Verfasst: Sa 11 Feb 2006, 19:08
von Adidashi79
Habe über die Website http://www.the-construct.com/traymessage/ ein Pseudoimage für die Fritz!Box erstellt das es ermöglicht einen Anrufer auf der DBox (als popup und im Display) signalisiert zu bekommen allerdings haut das nicht sorichtig hin und die DBox muckt rum.
So ungefähr sieht die Nachricht aus die die DBox bekommt (ausschnitt aus dem Fritz!Box Image:

Code: Alles auswählen

# send information to PCs
wget -O /dev/null "http://192.168.5.3:23232/?caller=${caller}&called=${called}&name=${name}&line=${theline}" >/dev/null 2>&1 &

# send information to DBoxes -> TV screen
wget -O /dev/null "http://root:dbox@192.168.5.5/control/message?popup=Eingehender%20Anruf%0AAnrufer:%20${httpname}%0ALeitung:%20${httptheline}" >/dev/null 2>&1 &

# send information to DBoxes -> LCD
wget -O /dev/null "http://root:dbox@192.168.5.5/control/lcd?lock=1&clear=1&xpos=5&ypos=20&size=18&font=2&text=${httpname}&update=1" >/dev/null 2>&1 &
wget -O /dev/null "http://root:dbox@192.168.5.5/control/lcd?lock=1&clear=0&xpos=5&ypos=45&size=18&font=2&text=an%20${httptheline}&update=1" >/dev/null 2>&1 &
sleep 10
wget -O /dev/null "http://root:dbox@192.168.5.5/control/lcd?lock=0" >/dev/null 2>&1 &

ENDSEND

Davor Sucht die Fritz!Box eben noch den Namen in einem angelegten Telefonbuch bzw. bei Das Oertliche im Internet und fügt die in obigem Code ein.

Manchmal klappts recht (popup für sich genommen immer einwandfrei) gut aber ziemlich oft passiert folgendes:

(auch an das entsprechende Fritz!Box Forum geschickt)
Irgendwie haut das mit der Anzeige des Anrufers auf dem Display nicht sorichtig hin Abgesehn von n paar wildgewordenen Ypsilons
wird der Anrufer (vor allem wenn die D-Box frisch gestartet ist) wird der anrufer zwar aufm Fernseher angezeigt aber auf dem Display passiert nichts.

Wenn dem so ist steht danach das Dbox Display
(das heisst beim umschalten usw. ändert sich aufm Display gar nichts mehr ausser beim starten eines Plugins mit Displayanzeige, wobei nach beendigung des Plug ins gar nichts mehr aufm Display ist)
und beim nächsten anruf wird auch aufm Fernseher nichts mehr angezeigt.

Ausserdem ist die D-Box auch gar nicht von aussen erreichbar (Messages über Browser und html-Menü) ausser über Telnet.
Beim Neustarten der Box geht alles wieder.

Habe insgesamt vier verschiedene YADI-Images drauf gehabt,
Angefangen von Version 2.1.0.0 vom 16.03.2005 (gar keine Displayanzeige)
diverse andere,
über 2.1.0.9 vom 20.11.2005 Problem wie oben beschrieben
jetzt 2.1.0.10 vom 02.02.2006 selbes Problem

Gruß

Adidashi79

P.S. Hier mein link zu meinem eintrag im IP-Phone-Forum: http://www.ip-phone-forum.de/showthread ... 65&page=19

Verfasst: Sa 11 Feb 2006, 21:40
von waldwuffel
Hallo Adidashi79

Willkommen hier im Forum! :) Noch einer der sich auch im IP Phone Forum rumtreibt wie ich!

Ich habe mir das mal angeschaut, sollte eigentlich gehen.

Könntest du mal ein Log der Box hier reinstellen? Dann könnte man sehen was genau passiert wenn ein Anruf auf dem Display dargestellt werden soll.

Wenn dabei ein Fehler auftritt könnte man das evtl im Log finden.


Gruß Daniel

Re: Callmessage auf Dboxdisplay

Verfasst: Sa 11 Feb 2006, 22:10
von det
Hi,
Adidashi79 hat geschrieben:"http://root:dbox@192.168.5.5/control/me ... ttptheline}" >/dev/null 2>&1 &
meines wissens ist das standart Passwort: dbox2

Det :)

Verfasst: Sa 11 Feb 2006, 22:24
von waldwuffel
Richtig! ist mir gar nicht gleich aufgefallen. Aber wenn dies der Fehler wäre dürfte es ja nie etwas anzeigen.

Verfasst: So 12 Feb 2006, 1:30
von Adidashi79
Wie gesagt oft gehts ohne probleme, nur dass einige Buchstaben durch ein y erstezt sind. Nur bleibts halt oft stehen und man kann dann gar nichts mehr auf die DBox senden (also Display friert nicht nur ein sondern ist übers Netzwerk gar nimmer empfangsbereit)
Wie komm ich denn an das Log ran, bin da ziemlich unbedarft beziehungsweise hatte vor 2 Wochen noch gar keine Ahnung.

Gruß Adidashi

Verfasst: So 12 Feb 2006, 9:46
von DrStoned
Siehe http://wiki.tuxbox.org/Bootlog . Das lässt Du so lange mitlaufen, bis Deine Box den Fehler bringt, und postest es dann.

Verfasst: So 12 Feb 2006, 11:01
von waldwuffel
Bei mir läuft zumindest die Ausgabe auf dem TV ohne Probleme mit Jfritz

Code: Alles auswählen

 C:\wgetwin\wget http://192.168.178.26/control/message?nmsg=%URLENCODE(%Number (%Name) ruft an.); 
Dies wird dabei als extrenes Programm ausgeführt. URLENCODE wird verwendet da sonst wie bei dir fehlerhafte Zeichen dargestellt werden.

Wieso root:dbox@192.168.5.5 ??? Das sollte doch eigentlich auch ohne gehen!

hast du das PW für die dbox2 geändert?? normalerweise ist das dbox2 ! Kann es sein das es dadurch zu Problemen kommt? Wenn du das nicht geändert hast trage da mal dbox2 als PW ein oder lasse root:dbox mal ganz weg.

Verfasst: Mo 13 Feb 2006, 20:43
von waldwuffel
Es geht! Mit dem aktuellen JTG image.

Bein Erstellen des pseudo Images:
Reverse Lookup für eingehende Anrufe durchführen --- aktiviern

Anrufe nicht an PCs anzeigen, die ihre IP-Adresse vom DHCP-Server der Fritz!Box Fon erhalten. --- aktivieren

Ich habe nur die LCD - Ausgabe eingestellt und es geht!

Code: Alles auswählen

 # send information to DBoxes -> LCD
wget -O /dev/null "http://root:dbox2@192.168.178.26/control/lcd?lock=1&clear=1&xpos=5&ypos=20&size=18&font=2&text=${httpname}&update=1" >/dev/null 2>&1 &
wget -O /dev/null "http://root:dbox2@192.168.178.26/control/lcd?lock=1&clear=0&xpos=5&ypos=45&size=18&font=2&text=an%20${httptheline}&update=1" >/dev/null 2>&1 &
sleep 10
wget -O /dev/null "http://root:dbox2@192.168.178.26/control/lcd?lock=0" >/dev/null 2>&1 &

ENDCALLMESSAGE

Das Problem ist jetzt nur noch das z.B die 0 nicht als 0 sondern als y dargestellt wird. Aber das sollte auch noch zu lösen sein. wenn jemand eine Plan dazu hat bitte meldet euch.

Code: Alles auswählen

 C:\wgetwin\wget http://192.168.178.26/control/message?nmsg=%URLENCODE(%Number (%Name) ruft an.);  


Dies z.B. ergibt eine saubere Ausgabe am TV. Kann man das nicht irgendwie auf die LCD ausgabe übertragen?



Das gesammte Skript für Callmessage:

Code: Alles auswählen

 # set hostname to fritz.box
hostname fritz.box

# write contact list
echo ":anonym;" > /var/tmp/contacts

# write lines list
echo ":anonym;" > /var/tmp/lines

# write reverse lookup script to file
cat > /var/tmp/invers.sh << 'ENDINVERS'
#!/bin/sh

number=$1

wget -q -O /var/tmp/name "http://www.dasoertliche.de/DB4Web/es/oetb2suche/home.htm?kw_invers=${number}&main=Antwort&s=2" 2>/dev/null

while read reverse
do
  case ${reverse} in
    *Detailansicht*)
      name=${reverse#*\>\ }
      name=${name%%\<*}
      break
    ;;
  esac
done < /var/tmp/name

rm /var/tmp/name

echo `echo "${name}" | sed -e '{s/Ä/Ae/g;s/Ö/Oe/g;s/Ü/Ue/g;s/ä/ae/g;s/ö/oe/g;s/ü/ue/g;s/ß/ss/g;}'`
ENDINVERS

# make it executable
chmod +x /var/tmp/invers.sh

# write send script to file
cat > /var/tmp/callmessage.sh << 'ENDCALLMESSAGE'
#!/bin/sh

# init var name
name=""

# read params
caller=$2
called=$1

#read contact list
while read contact
do
  case ${contact} in
    ${caller}*)
      name=${contact#*:}
      name=${name%%\;*}
      break
    ;;
  esac
done < /var/tmp/contacts

# name not found?
if [ -z "${name}" ]
then
  # do reverse lookup for at www.dasoertliche.de
  name=`/var/tmp/invers.sh ${caller}`
  # found name?
  if [ -n "${name}" ]
  then
    # add found contact to contacts and debug.cfg
    echo "${caller}:${name};" >> /var/tmp/contacts
    cat /var/flash/debug.cfg | sed -e "s/\" > \/var\/tmp\/contacts/
${caller}:${name};\" > \/var\/tmp\/contacts/g" > /var/tmp/debug.cfg
  else
    # add anonymous for contact to contacts and debug.cfg
    echo "${caller}:${caller};" >> /var/tmp/contacts
    cat /var/flash/debug.cfg | sed -e "s/\" > \/var\/tmp\/contacts/
${caller}:${caller};\" > \/var\/tmp\/contacts/g" > /var/tmp/debug.cfg
  fi
  cat /var/tmp/debug.cfg > /var/flash/debug.cfg
  rm /var/tmp/debug.cfg
fi

# name not found?
if [ -z "${name}" ]
then
  name=${caller}
fi
httpname=`echo "${name}" | sed -e 's/ /%20/g'`

#init var theline
theline=""

#read lines list
while read thelines
do
  case ${thelines} in
    ${called}*)
      theline=${thelines#*:}
      theline=${theline%%\;*}
      break
    ;;
  esac
done < /var/tmp/lines

# line not found?
if [ -z "${theline}" ]
then
  theline=${called}
fi
httptheline=`echo "${theline}" | sed -e 's/ /%20/g'`

# send information to DBoxes -> LCD
wget -O /dev/null "http://root:dbox2@192.168.178.26/control/lcd?lock=1&clear=1&xpos=5&ypos=20&size=18&font=2&text=${httpname}&update=1" >/dev/null 2>&1 &
wget -O /dev/null "http://root:dbox2@192.168.178.26/control/lcd?lock=1&clear=0&xpos=5&ypos=45&size=18&font=2&text=an%20${httptheline}&update=1" >/dev/null 2>&1 &
sleep 10
wget -O /dev/null "http://root:dbox2@192.168.178.26/control/lcd?lock=0" >/dev/null 2>&1 &

ENDCALLMESSAGE

# make it executable
chmod +x /var/tmp/callmessage.sh