Callmessage auf 7270 dank BODEGA!! Änderungen bei das Örtliche

Es gibt hier genügend Beiträge die beschreiben, was die /var/flash/debug.cfg ist und wie man sie bearbeitet. Dann gibt es auch Beiträge, wo es um die /var/flash/calllog geht. Wenn man beides kennt, versteht man auch, was es mit diesem Thema auf sich hat. Eine Anleitung wird dann unnötig!
 
Danke
(klar auto fahren ist leicht und auch gut zu verstehen, aber wenn man blind ist? GRINS)
 
Das mit dem cnt ist eigentlich nur ein Zeilen-Counter.
Wenn man sich die erstellte Datei 'page' mal ansieht, kommt man auf folgendes Skript (mit Erklärung):

HTML:
#!/bin/sh

number=$1

rm /var/tmp/page 2>/dev/null

#wget -q -O /var/tmp/page "http://www2.dasoertliche.de/?form_name=detail&lastFormName=search_inv&ph=${num ber}&recFrom=1&hitno=0" 2>/dev/null
wget -q -O /var/tmp/page "http://www2.dasoertliche.de/?form_name=search_inv&ph=${number}&recFrom=1&hitno=0" 2>/dev/null

let cnt=0;

while read reverse
do

if [ "$gotname" = "1" ];
then
  # get address
  # ab der Zeile mit dem Namen x Zeilen (hier 9) weiterspringen
  # dort die Adresse nach selbem Muster extrahieren
  let cnt=cnt+1;
  if [ "$cnt" = "9" ]; then
     address=${reverse}
     address=${address%%\<*}

     break;
  fi
fi

# get name
case ${reverse} in

   # In der Datei 'page' den Ausdruck 'entry' suchen - Bsp. 08.04.2008 in Zeile 263
  *entry*)

   # gesamte Zeile nach dem '>' als Name setzen
   name=${reverse#*\>}

   # jetzt gesamte Zeile vor dem '<' als Name setzen
   name=${name%%\<*}
   gotname=1
   ;;
esac
done < /var/tmp/page

echo "${name}" > /var/tmp/name
#echo "${address}" > /var/tmp/address
echo "${address}" | sed -e '{s/&nbsp;/ /g;s/,/;/g;s/; /;/g;}' > /var/tmp/address

Das muss man dann halt bei jeder Änderung im Örtlichen auch anpassen.
Ist eigentlich keine Hexerei... ;)


Ok ich habe das cnt jetzt auf 9 gesetzt und jetzt geht es wieder. Ich habe mir den Quelltext mal angeschaut aber wie ich das rausfinde, dass ich cnt auf 9 setzten muss habe ich nicht verstanden..
Den Eintra entry habe ich gefunden..aber wie gesagt dass mit cnt=9 k.a. wie man darauf kommt.
Vielleicht bekomme ich nochmal ne Erklärung ;-)

@Marco
danke aber ich lass das skript mal so...wie es momentan ist. Wenn ich weiß wie ich das cnt selbst ändern kann ist das ja dann auch kein Problem.
 
hi,

ich habe die Zeile noch um ein | tr -d \\n erweitert, um den Zeilenumbruch zu entfernen
Code:
nameDO=$(echo "$TEMP" | sed -n -e 's/<[^<]*>/\ /g; s/^[^a-zA-Z0-9]*//g; 1p' | tr -d [URL="file://\\n"]\\n[/URL])

Jetzt kann ich endlich ohne Callmonitor und mit dtmfbox leben.

Vielen Dank &
have fun
jampr
 
Ich habe mir den Quelltext mal angeschaut aber wie ich das rausfinde, dass ich cnt auf 9 setzten muss habe ich nicht verstanden..
Den Eintra entry habe ich gefunden..aber wie gesagt dass mit cnt=9 k.a. wie man darauf kommt.
Vielleicht bekomme ich nochmal ne Erklärung ;-)

Tut mir leid, aber das kann ich nun wirklich nicht mehr nachvollziehen! :blonk:
Der Eintrag "Entry", wo sich auch der Name in der Zeile befindet, steht in diesem Beispiel in Zeile 263.
Wenn man jetzt den Count-Betrag (nämlich 9) Zeilen weiterspringt, wird man sehen, dass in genau dieser Zeile die von uns gesuchte Adresse steht. Diese wird dann nach dem selben Muster, wie der Name, extrahiert.

Grundvoraussetzung für die Richtigkeit der Zeilen-Anzeige ist natürlich IMMER ein passender Editor!!! Probier es mal mit dem Proton - da stehen die Zeilen davor.

Noch genauer geht es jetzt leider nicht mehr - das sollte doch für jeden nachvollziehbar sein - ansonsten Finger weg von der debug.cfg und Ähnlichem die Gefahr eines Crashes ist dann zu gross... :gruebel:
 
hi,

ich habe die Zeile noch um ein | tr -d \\n erweitert, um den Zeilenumbruch zu entfernen
Code:
nameDO=$(echo "$TEMP" | sed -n -e 's/<[^<]*>/\ /g; s/^[^a-zA-Z0-9]*//g; 1p' | tr -d [URL="file://\\n"]\\n[/URL])

Jetzt kann ich endlich ohne Callmonitor und mit dtmfbox leben.

Vielen Dank &
have fun
jampr

Hi,

kannst du bitte erklären wie du das ganze in die Fritzbox eingebaut hast?

Ich und viele andere ;) wären dir wirklich sehr dankbar!

Hans
 
wie im Post Nr 58 von mir beschrieben, habe ich den einfachen Weg genommen. Ich bin im Freetz-Menü (fritz.box:81) auf Einstellungen > dtmfbox-userscript gegagen und habe dort folgendes eingefügt:

Code:
if [ "$EVENT" = "CONNECT" ] && [ "$TYPE" = "CAPI" ]; 
then


url="http://www2.dasoertliche.de/?form_name=search_inv&page=RUECKSUCHE&context=RUECKSUCHE&action=STANDARDSUCHE&la=de&rci=no&ph=0$DST_NO"
TEMP=$(wget -q -O - "$url" | grep -A 10 class=\"entry)
nameDO=$(echo "$TEMP" | sed -n -e 's/<[^<]*>/\ /g; s/^[^a-zA-Z0-9]*//g; 1p' | tr -d \\n)
addrDO=$(echo "$TEMP" | grep "&nbsp;" | sed -e 's/&nbsp;/ /g;s/<[^<]*>/ /g;s/ \{12\}//g')

echo "hallo Telefonnummer $DST_NO $nameDO $addrDO ruft an" | /var/media/ftp/uStor01/smbclient -M pc2 -I 192.168.178.20
fi
return 0
Das habe ich aber für meine Zwecke gemacht. Ich habe mir das Tool smbclient compiliert und schicke damit eine Winmessage mit Telefonnummer, Name und Adresse an einen PC. Daher werden bei Dir z.B. die Pfade nicht stimmen. Die Winmessage wird auch nur generiert, wenn über ISDN ein Anruf reinkommt, da ich voip nicht zum angerufen werden nutze.

have fun
jampr

ps.:
Bei der Zeile für die Adresse lösche ich noch die ersten 12 spaces mit
Code:
;s/ \{12\}//g
 
Tut mir leid, aber das kann ich nun wirklich nicht mehr nachvollziehen! :blonk:
Der Eintrag "Entry", wo sich auch der Name in der Zeile befindet, steht in diesem Beispiel in Zeile 263.
Wenn man jetzt den Count-Betrag (nämlich 9) Zeilen weiterspringt, wird man sehen, dass in genau dieser Zeile die von uns gesuchte Adresse steht. Diese wird dann nach dem selben Muster, wie der Name, extrahiert.

Grundvoraussetzung für die Richtigkeit der Zeilen-Anzeige ist natürlich IMMER ein passender Editor!!! Probier es mal mit dem Proton - da stehen die Zeilen davor.

Noch genauer geht es jetzt leider nicht mehr - das sollte doch für jeden nachvollziehbar sein - ansonsten Finger weg von der debug.cfg und Ähnlichem die Gefahr eines Crashes ist dann zu gross... :gruebel:

Danke! Keine Angst mit der debug.cfg habe ich ja auch leine Probleme..weiß schon wie man die Sachen ändert..und man kann ja uch zuerst mal temporär in das invers.sh skript gehen und testen...

Also jetzt habe ich verstanden wie ich auf die 9 komme!
 
@jampr:
Das sieht gut aus. Ergänzend, würde ich noch "$SCRIPT" abfragen:
Code:
if [ "$EVENT" = "CONNECT" ] && [ "$TYPE" = "CAPI" ] && [ "$SCRIPT" = "FUNCS" ]; 
then
...
damit wird dann sichergestellt, dass das Skript nur in script_funcs.sh ausgeführt wird.

@all:
Wollte an dieser Stelle auch mal auf diesen Thread aufmerksam machen ;)
 
Geht bei irgend jemand noch die Rückwärtssuche, oder hat sich das mit der 9.Zeile wieder geändert ?

mfG Leug
 
Hi@all

das Problem bei mir ist, dass ich nur den NAme des Anrufenden angezeigt bekomme!


Straße und PLZ bleiben leer!!


Wo liegt der Fehler?
 
@bolle:
Konnte erst keinen Unterschied beim Vergleichen feststellen, also hatte ich das nochmal mit deiner debug.cfg geprüft. Anscheinend macht so ein <textarea> Element beim Einlesen der debug.cfg eine Konventierung (in dem Fall '&nbsp' zu ' '). Habe es gefixt, indem alle '&' Zeichen in '&amp' konventiert werden. Danke nochmal!

kann es sein, dass es diesbezüglich auch ein problem mit "&" im namen des anrufers gibt. ich kann es leider nicht nachstellen (s.u.), aber nach dem anruf der firma 07195690816 war meine kontakte-liste in der debug.cfg irgendwie zerstört.

über invers.sh 07195690816 wird der name in /var/tmp/name und die anschrift in /var/tmp/address korrekt angezeigt. wie kann man denn die debug.cfg ausführen, um das ganze mal per telnet auf der fritz ablaufen zu lassen um um zu sehen, was mit der debug.cfg passiert? sprich, ich möchte nicht nur insers.sh mit rufnummer aufrufen, sondern eben das ganze so, dass auch das ergebnis in die debug.cfg geschrieben wird.

p.s. nutze bodegas script (#12)
 
Zuletzt bearbeitet:
kann es sein, dass es diesbezüglich auch ein problem mit "&" im namen des anrufers gibt.

Halte ich für gut möglich und da ich den ermittelten Namen mit diesen zeilen ins FBF-Telefonbuch eintrage, habe ich es mal wie folgt ergänzt.
Die beiden letzten Zeilen nun entfernen alles, was nicht zwischen $20 - $FC ist, entfernt führende und nachfolgende Leerzeichen und die Sonderzeichen wie CR, LF, TAB, usw.

Code:
CID=$1

url="http://www2.dasoertliche.de/?form_name=search_inv&page=RUECKSUCHE&context=RUECKSUCHE&action=STANDARDSUCHE&la=de&rci=no&ph=$CID"
TEMP=$(wget -q -O - "$url" | grep -A 10 class=\"entry)
nameDO=$(echo "$TEMP" | sed -n -e 's/<[^<]*>/\ /g; s/^[^a-zA-Z0-9]*//g; 1p')
addrDO=$(echo "$TEMP" | grep "&nbsp;" | sed -e 's/&nbsp;/ /g;s/<[^<]*>/ /g')

nameDO=`echo ${nameDO} | tr -d "\f\n\r\t\v\a\b!\"§$%&/()=" | sed 's/[^ -ü]//g' | sed "s/^\ *//g" | sed "s/\ *$//g"` # entfernt alles, was nicht zwischen $20 - $FC ist, TRIM
addrDO=`echo ${addrDO} | tr -d "\f\n\r\t\v\a\b!\"§$%&/()=" | sed 's/[^ -ü]//g' | sed "s/^\ *//g" | sed "s/\ *$//g"` # entfernt alles, was nicht zwischen $20 - $FC ist, TRIM

echo "Nummer.: $CID Name: $nameDO Adresse: $addrDO"
 
nunja, ich nutze ja bodegas script von #12
und name und adresse sind ja vom prinzip her korrekt. ich möchte auch, dass das so in meine debug.cfg eingetragen wird.
da ich jetzt nicht sicher bin, ob das auch reibungslos geht, möchte ich erst einmal den vorgang nachstellen, um fehler auszuschließen. ich weiß aber leider nicht, wie ich der fritzbox über telnet sage: achtung jetzt kommt ein anruf mit der nummer xyz, damit dann das debug-script losrennt, revers lookup macht und einen eintrag vornimmt.
dann könnte ich zumindest sehen, ob es ein syntax-fehler im debug.cfg ist oder nicht, denn wie gesagt: namen und naschrift wird ja korrekt herausgefunden für z.b. 07195690816
 
@juwo:
Das bezog sich mehr auf das nachträgliche Bearbeiten der debug.cfg, mithilfe eines HTML-Formulars. Wenn man die debug.cfg in ein <textarea>-Tag läd, werden die Stellen mit "&nbsp" einfach nicht angezeigt. Ein nachträgliches Speichern per Webformular hatte die debug.cfg von bolle dann geändert. Das wurde etwas Off-Topic behandelt. Sporadische Fehler sind immer schlecht. Wenn es sich irgendwie nachstellen lässt, hat man einen Hinweis.

Mit 'echo' könntest du eine Ausgabe auf die Konsole machen. Eine Umleitung in eine Datei geht natürlich auch:
Code:
echo "hallo" > /var/log.txt
echo "welt" >> /var/log.txt
 
@juwo:
Sporadische Fehler sind immer schlecht. Wenn es sich irgendwie nachstellen lässt, hat man einen Hinweis.

deswegen ja meine frage, ob man einen anruf mit vorgegebener rufnummer simulieren kann, denn dann könnte ich prüfen, ob die debug.cfg korrekt arbeitet bei namen mit einem "&". die anderen einträge funktionieren soweit ich gesehen habe tadellos.
 
Du könntest dich ja selbst anrufen. Mit 'sh /var/flash/debug.cfg' wird die debug.cfg ausgeführt (oder mittels reboot).
Mein Skript aus #12 tut es alleine noch nicht. In #8 hatte bolle sein komplettes Skript geposted. Ich muss gestehen, dass ich es nie ausprobiert habe. Hatte mich auf die Stellen für die Rückwärtssuche konzentriert.
 
und wie soll ich dabei eine nummer simulieren? in der fritz lassen sich doch nur MSN eintragen und damit kann ich doch keine rufnummer simulieren oder?
weil die sonstigen einträge der anrufenden haben bisher funktioniert, nur eben bei der einen nummer 07195690816 hats mir die debug etwas zerhauen und ich weiß nicht ob es einfach ein seiteneffekt war oder ob es ein fehler irgendwo ist.
 
vllt solltest du die nummer mal wegmachen, damit du nachts keine anrufe bekommst :D
 
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.