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

Sorry habe vergessen nach was ich im Quelltext vom dasörtliche suchen muss wenn kene Rückwärtssuche mehr durchgeführt wird.

Ich wusste es mal..habs leider vergessen!

Ich musste dann Zeilen abzählen und dann in der callmessage.sh ändern
z.b. cent=9 auf cent=6

Alos ich hoffe ihr wisst was ich meine!

Gruß Bolle
 
Du hättest doch nur 2 Seiten zurück blättern müssen. Hier steht es:

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... ;)
 
ja wo ich das im skript ändere weiss ich nur nicht wo ich genau im Quelltext vom örtlichen schauen muss. (Zeilen abzählen)
 
Hi bolle,

steht doch da. Du suchst in der Datei page nach dem Ausdruck *entry* dort sollte dann der Name stehen, dann zählst du die Zeilen bis die Adresse kommt und diese Zahl trägst Du dann bei cnt= ? ein.
 
mm ok danke!
Aber die rückwärtssuche funzt trotzdem nicht mehr!

Ich habe bei cnt=8 als geänderter Wert.
Ham die komplett was verändert?

Gruß Bolle
 
was hast Du denn vorher für einen Wert gehabt? Ich habe am 31.5.08 festgestellt das da was nicht mehr ghet und habe auf 7 geändert.
 
jo vorher war auch sieben!
Teste mal irgend eine fremde nummer die noch nicht in der contact.xt drin steht. Also bei mir gehts nimmer!
 
das wird dann aber sicher erst spät was - ich müsste da erst mal die scripte auf die box laden. habe im moment das freetz drauf und spiele mit dem callmonitor. da funzt es ohne probleme.
 
also hier mal die invers.sh

Code:
#!/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
  let cnt=cnt+1;
  if [ "$cnt" = "7" ]; then
     address=${reverse}
     address=${address%%\<*}
     #address=`echo "$address" | sed -e 's/&nbsp;/ /g'`;
     break;
  fi
fi

# get name
case ${reverse} in
  *entry*)
   name=${reverse#*\>}
   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;}' > /var/tmp/address

Habe die cnt jetzt mal auf 7 gealssen!
Vielleicht muss sonst noch was verändert werden..
 
Zuletzt bearbeitet von einem Moderator:
"$cnt" = "7" ist korrekt. hat heute definitv funktioniert (zeit: 10:37h)
tipp: es gibt auch nummern, bei denen nur der namen ausgegben wird !!!
 
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.

heute wieder: ein "&" im Namen bei der Rückwärtssuche und die debug.cfg sieht wie folgt aus:
Code:
#CONTACTS
#contact=:anonym;
#contact=......
#contact=0926696654:Hein GmbH #CONTACTSEND Co. KG;Steinach 48; 96268 Mitwitz;
#contact=0926......
#CONTACTSEND

d.h., wenn in der rückwärtssuche ein "&" im namen vorkommt, wird dieses durch #CONTACTSEND in der debug.cfg ersetzt.
alle weiteren anrufer werden danach korrekt angehängt und am ende erscheint das schließende #CONTACTSEND ein weiteres mal

ich arbeite mit dem script von bodega
http://www.ip-phone-forum.de/showpost.php?p=1002182&postcount=12
 
juwo schrieb:
Jo. Aber das ist nur die Rückwärtssuche und hat mit der Änderung der debug.cfg nichts zu tun. Der Teil passiert vorher, und da müsste ein Fehler sein. Ein Workaround (keine Lösung!!) wäre, das &-Zeichen mittls 'sed' zu entfernen:

Code:
echo "${name}" | [COLOR="Red"]sed 's/&/ /g'[/COLOR] | sed -e '{s/&nbsp;/ /g;s/,/;/g;}' > /var/tmp/name
echo "${address}" | [COLOR="Red"]sed 's/&/ /g'[/COLOR] | sed -e '{s/&nbsp;/ /g;s/,/;/g;}' > /var/tmp/address
 
also bei mir geht es nicht mehr! Hast mal irgendeine Nummer genommen die noch nicht in contact.txt steht?

log dich mal mit telnet ein und geh nach /var/tmp

dort ./callmessage.sh 67018 xyz(xyz=Nummer deiner Wahl mit Vorwahl)

sollte aber noch nicht in der contact.txt stehen!

EDIT: Hat schon wer ne Ahnung woran das liegen könnte? Ich habe an den Scripten nichts mehr verändert bis auf ab und an mal das cnt!
 
Code:
echo "${name}" | [COLOR="Red"]sed 's/&/ /g'[/COLOR] | sed -e '{s/&nbsp;/ /g;s/,/;/g;}' > /var/tmp/name
echo "${address}" | [COLOR="Red"]sed 's/&/ /g'[/COLOR] | sed -e '{s/&nbsp;/ /g;s/,/;/g;}' > /var/tmp/address

Jo, das rockt soweit. Habe es noch ein wenig abgeändert, damit stattdessen ein "u." erscheint
Code:
echo "${name}" | sed 's/&/[COLOR="Red"]u.[/COLOR]/g' | sed -e '{s/&nbsp;/ /g;s/,/;/g;}' > /var/tmp/name

Zumindest ist jetzt das falsche #CONTACTSEND weg.
DANKE :groesste:
 
./callmessage.sh 67018 xyz(xyz=Nummer deiner Wahl mit Vorwahl)

also die Rückwärtssuche geht noch immer mit Zeile 7 - definitv! Wenn du aber callmessage.sh aufrufst, hast du dann daran gedacht, zuvor die invers.sh auch anzupassen? Diese wird nämlich bei einem echten Anruf und dem darauf folgenden Ausführen der debug.cfg erstellt und wenn du dort zum Testen was falsches drin hast, dann kann in deiner debug.cfg stehen was will.

Bin nämlich auch gerade beim Testen darüber gestoßen und habe mich gewundert, dass - egal was ich in der debug.cfg gemacht habe - es keine Auswirkungen hatte!
 
Callmessage.sh
Kann sich dem Problem jemand mal versuchen anzunehmen?[COLOR]
Code:
#!/bin/sh

caller=${2}
called=${1}
caller_nr=$caller
anruf=`date +"Zeit%3A%20%d.%m.%Y%20%H%3A%M%3A%S%20Uhr"`
# search name in contact list
entry=`cat /var/media/ftp/TransMemory-Partition-0-1/contacte.txt  2>/dev/null | fgrep "#contact=${caller}:" | sed "s/#contact=${caller}://"`
name=${entry%%\;*}
address=${entry#*\;}
address=${address%\;*}
street=${address%%\;*}
zip=${address##*\;}

# name not found?
if [ -z "${name}" ]
then
  # do reverse lookup at [url]www.dasoertliche.de[/url]
  /var/tmp/invers.sh ${caller}
  name=`cat /var/tmp/name`
  # found name?
  if [ -n "${name}" ]
  then
    # add found contact to debug.cfg
    address=`cat /var/tmp/address`
    street=${address%%\;*}
    zip=${address##*\;}
    cat /var/media/ftp/TransMemory-Partition-0-1/contacte.txt | sed -e "s/^#CONTACTSEND$/#contact=${caller}:${name};${address};#CONTACTSEND/g" | sed -e 's/#CONTACTSEND$/\
#CONTACTSEND/g' > /var/tmp/contact
  else
    # add anonymous for contact to debug.cfg
    cat /var/media/ftp/TransMemory-Partition-0-1/contacte.txt | sed -e "s/^#CONTACTSEND$/#contact=${caller}:${caller};#CONTACTSEND/g" | sed -e 's/#CONTACTSEND$/\
#CONTACTSEND/g' > /var/tmp/contact
  fi
  cat /var/tmp/contact > /var/media/ftp/TransMemory-Partition-0-1/contacte.txt
  rm /var/tmp/contact
fi

# name not found?
if [ -z "${name}" ]
then
  name=${caller}
fi
httpname=`echo "${name}" | sed -e '{s/ /%20/g;s/Ä/Ae/g;s/Ö/Oe/g;s/Ü/Ue/g;s/ä/ae/g;s/ö/oe/g;s/ü/ue/g;s/ß/ss/g;s/&/%26/g;}'`
httpstreet=`echo "${street}" | sed -e '{s/ /%20/g;s/Ä/Ae/g;s/Ö/Oe/g;s/Ü/Ue/g;s/ä/ae/g;s/ö/oe/g;s/ü/ue/g;s/ß/ss/g;s/&/%26/g;}'`
httpzip=`echo "${zip}" | sed -e '{s/ /%20/g;s/Ä/Ae/g;s/Ö/Oe/g;s/Ü/Ue/g;s/ä/ae/g;s/ö/oe/g;s/ü/ue/g;s/ß/ss/g;s/&/%26/g;}'`
echo "Name: ${name}"
echo "Strasse: ${street}"
echo "PLZ: ${zip}"

# search line in line list
theline=`cat /var/flash/debug.cfg 2>/dev/null | fgrep "#line=${called}:" | sed "s/#line=${called}://"`
theline=${theline%%\;*}

# line not found?
if [ -z "${theline}" ]
then
  theline=${called}
fi
httptheline=`echo "${theline}" | sed -e '{s/ /%20/g;s/Ä/Ae/g;s/Ö/Oe/g;s/Ü/Ue/g;s/ä/ae/g;s/ö/oe/g;s/ü/ue/g;s/ß/ss/g;s/&/%26/g;}'`

# Send information to all DHCP clients
while read x x IP x
do
  wget -O /dev/null "http://${IP}:23232/?caller=${caller}&called=${called}&name=${name}&line=${theline}" >/dev/null 2>&1 &
done < /var/flash/multid.leases

# send information

invers.sh
Code:
#!/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
  let cnt=cnt+1;
  if [ "$cnt" = "7" ]; then
     address=${reverse}
     address=${address%%\<*}
     #address=`echo "$address" | sed -e 's/&nbsp;/ /g'`;
     break;
  fi
fi

# get name
case ${reverse} in
  *entry*)
   name=${reverse#*\>}
   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;}' > /var/tmp/address

Wenn da mal jemand drüberschaut! Sollte doch so passen oder?
 
Callmessage.sh
Wenn da mal jemand drüberschaut! Sollte doch so passen oder?

prüf doch erstmal, was in den dateien steht und ob da was ankommt
Code:
cat /var/tmp/name
cat /var/tmp/adress
 
hi habe ich ausch schon gemacht. beides LEER!
 
und was steht in /var/tmp/page ?
 
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.