vllt solltest du die nummer mal wegmachen, damit du nachts keine anrufe bekommst
bitte erst thread lesen. ich glaub nämlich, du weißt nicht worum es geht
vllt solltest du die nummer mal wegmachen, damit du nachts keine anrufe bekommst
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/ / /g;s/,/;/g;s/; /;/g;}' > /var/tmp/address
Das muss man dann halt bei jeder Änderung im Örtlichen auch anpassen.
Ist eigentlich keine Hexerei...
#!/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/ / /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/ / /g;s/,/;/g;}' > /var/tmp/address
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.
#CONTACTS
#contact=:anonym;
#contact=......
#contact=0926696654:Hein GmbH #CONTACTSEND Co. KG;Steinach 48; 96268 Mitwitz;
#contact=0926......
#CONTACTSEND
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:juwo schrieb:ich arbeite mit dem script von bodega
http://www.ip-phone-forum.de/showpos...2&postcount=12
echo "${name}" | [COLOR="Red"]sed 's/&/ /g'[/COLOR] | sed -e '{s/ / /g;s/,/;/g;}' > /var/tmp/name
echo "${address}" | [COLOR="Red"]sed 's/&/ /g'[/COLOR] | sed -e '{s/ / /g;s/,/;/g;}' > /var/tmp/address
Code:echo "${name}" | [COLOR="Red"]sed 's/&/ /g'[/COLOR] | sed -e '{s/ / /g;s/,/;/g;}' > /var/tmp/name echo "${address}" | [COLOR="Red"]sed 's/&/ /g'[/COLOR] | sed -e '{s/ / /g;s/,/;/g;}' > /var/tmp/address
echo "${name}" | sed 's/&/[COLOR="Red"]u.[/COLOR]/g' | sed -e '{s/ / /g;s/,/;/g;}' > /var/tmp/name
./callmessage.sh 67018 xyz(xyz=Nummer deiner Wahl mit Vorwahl)
#!/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
#!/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/ / /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/ / /g;s/,/;/g;}' > /var/tmp/address
Callmessage.sh
Wenn da mal jemand drüberschaut! Sollte doch so passen oder?
cat /var/tmp/name
cat /var/tmp/adress