Hallo, hier im Forum gibt es ja eine Rückwärtssuche für Asterisk in dasoertliche.de: http://www.ip-phone-forum.de/showthread.php?t=164211. Hat jemand so eine Rückwärtssuche mit Asterisk auf FBF am Laufen. Oben genanntes Skript läuft so nicht auf der FBF, wahrscheinlich liegt es an der Bash Implementierung. Vielen Dank. Liebe Grüße, T. Ihmann
Probier mal das Code: !/bin/sh read agi_request read agi_language read agi_channel read agi_type read agi_uniqueid read agi_callerid read agi_dnid read agi_rdnis read agi_context read agi_extension read agi_priority read agi_enhanced read agi_accountcode read emptyline #pfad zum cachefile CACHE="/var/media/ftp/CoolDriveB-Partition-0-1/tmp/invsuche.conf" #pfad um das tempfile anzulegen TMPFILE="/var/media/ftp/CoolDriveB-Partition-0-1/tmp/tmpsuche" LOG="/var/media/ftp/CoolDriveB-Partition-0-1/tmp/anrufliste" rm $TMPFILE if [ "$1" == "" ]; then NAME="anonym" #DETAILS="Keine details" else NUMMER=`echo $1 | sed -e "s/\ //g" -e "s/+49/0/"` #echo "Suche nach $NUMMER im cache" #NAME=`$awk -F '\t' '{ if ($1 == "'$NUMMER'") print $2 }' $CACHE` #DETAILS=`$awk -F '\t' '{ if ($1 == "'$NUMMER'") print $3 }' $CACHE` #echo "Name: $NAME" #echo "Details: $DETAILS" if [ "$NAME" == "" ]; then echo "Suche nach $NUMMER in www.dasoertliche.de" wget -q -O $TMPFILE "http://www1.dasoertliche.de/?form_name=search_inv&ph=$NUMMER" NAME=`grep 'class=\"entry\".*' $TMPFILE | sed -e s/^.*\"entry\"//g -e s/\<'\/'a\>.*//g -e s/^.*\>//g` #DETAILS=`grep ';.*<br\/>' $TMPFILE | sed -e s/' '//g -e s/\ \;/\ /g -e s/'\n'//g -e s/'\t'//g -e s/'<br\/>'// ` if [ "$NAME" == "" ]; then if grep "Kein Teilnehmer gefunden" $TMPFILE > /var/media/ftp/CoolDriveB-Partition-0-1/tmp/null; then NAME="$NUMMER" #DETAILS="Kein Eintrag $2" fi; fi; if [ "$NAME" == "" ]; then NAME="$NUMMER" #DETAILS="Fehler $2" else echo -e "$NUMMER\t$NAME" >> $CACHE fi; fi fi echo -e "`date +%e.%m\ %H:%M ` $NAME" >>$LOG echo 'SET VARIABLE LONGNAME '"\"$NAME\"" echo "Name: $NAME" #echo "Details: $DETAILS" Pfad zum Stick musst Du noch anpassen. Das Script gibt den Namen zurück. Leider hats bei mir nicht funktioniert mit dem CACHE- Schreiben deshalb gehen meine Namen in die Datenbank. extensions.conf Code: ;Capi-in exten => 50008/_XX.,1,Ringing() exten => 50008/_XX.,n,Set(GLOBAL(DBNUMMER)=${CALLERID(num)}) exten => 50008/_XX.,n,GotoIf(${DB_EXISTS(telefon${DBNUMMER})}?database,s,1) exten => 50008/_XX.,n,AGI(klick50008.agi,${CALLERID(num)}) exten => 50008/_XX.,n,SetCallerPres(allowed) exten => 50008/_XX.,n,Set(CALLERID(name)=${LONGNAME}) exten => 50008/_XX.,n,Set(DB(telefon/${DBNUMMER})=${LONGNAME}) exten => 50008/_XX.,n,Dial,SIP/205|40|Ttm [database] exten => s,1,SetCallerPres(allowed) exten => s,n,Set(GLOBAL(DBNAME)=${DB(telefon/${DBNUMMER})}) exten => s,n,Set(CALLERID(name)=${DBNAME}) exten => s,n,Set(CALLERID(num)=${DBNUMMER}) exten => s,n,system(echo "${DATETIME} - ${DBNAME}" >> /var/media/ftp//CoolDriveB-Partition-0-1/tmp/anrufliste) exten => s,n,Dial,SIP/205|60|Ttr exten => s,n,Macro(anke) [macro-anke] exten => s,1,NoOp(Wir sind im Macro ruf gelandet) exten => s,2,Goto(s-${DIALSTATUS},1) exten => s-BUSY,1,Playtones(busy) exten => s-BUSY,n,Hangup exten => s-NOANSWER,1,Dial,CAPI/ISDN1/XXXXXXXXXXXXX|40|Ttm exten => s-NOANSWER,n,Hangup exten => s-CHANUNAVAIL,1,Dial,CAPI/ISDN1/XXXXXXXXXX|40|Ttm exten => s-CHANUNAVAIL,n,Hangup exten => s-CONGESTION,1,Dial,CAPI/ISDN1/XXXXXXXXXXXXX|40|Ttm exten => s-CONGESTION,n,Hangup
Der $awk Befehl zum auslesen war nicht da. Hab dann eine andre busybox genommen und trotz dem liest er nicht aus der datei, obwohl alles richtig drin steht. ???? Hab es dann aufgegeben und das mit der datenbank geschrieben. Das funktioniert jedenfalls. Code: #echo "Suche nach $NUMMER im cache" NAME=`$awk -F '\t' '{ if ($1 == "'$NUMMER'") print $2 }' $CACHE` DETAILS=`$awk -F '\t' '{ if ($1 == "'$NUMMER'") print $3 }' $CACHE` echo "Name: $NAME" echo "Details: $DETAILS" Findest Du da einen Fehler? Habs aus dem dasörtliche script übernommen.
Wo wird denn die Variable "$awk" gesetzt und auf welchen Inhalt ? In Deinem Script wird diese Variable, die auf das zu nutzende "awk-Binary" zeigen soll, nicht definiert. Gruß dynamic
Code: awk="/bin/busybox awk" so hatte ich die variable gesetzt. Habs irgendwann mal gelöscht weil es einfach nicht gehen wollte.
So hättes es eigentlich funktionieren müssen ... für eine Ursachenanalyse müsste man jedoch die Fehlermeldungen usw. sehen. DU scheinst ja einen Workaround zu haben und daher stellt das kein Problem mehr dar und daher keine weitere Analyse erforderlich
Könnte mir vielleicht jemand erklären, wie man auch noch klicktel abfragen könnte? Leider liefert das örtliche nicht immer einen treffer. Über die HP von klicktel ist die trefferquote deutlich höher. Scheint aktueller zu sein. Danke im Voraus.
Hier nochmal ein überarbeitetes Script für die Rückwärtssuche. Das Script sucht erst im Telefonbuch nach der passenden Nummer. Findet es die Nummer nicht, sucht es im Oertlichen. Das Problem war bei mir nun aber, dass Anlagenanschlüsse vom Oertlichen nicht aufgelöst werden können, sprich die Nummer ist zu lang und man erhält keinen Eintrag. Hier kommt klicktel zum Einsatz. Klicktel kürzt automatisch die Nummer und man bekommt zu 90 % den passenden Eintrag. Wenn jedoch gar kein Eintrag zur Nummer existiert, listet Klicktel ähnliche Nummern auf und man bekommt zu viel Einträge angezeigt. Deshalb habe ich nochmal gefiltert und bekomme nur Einträge mit "1 Teilnehmer". Blacklist ist auch mit eingebaut um ungebetene Gäste abzuwimmeln. Die bekommen dann eine Ansage von der Rechtsabteilung. Code: #!/bin/sh awk="/bin/busybox awk" read agi_request read agi_language read agi_channel read agi_type read agi_uniqueid read agi_callerid read agi_dnid read agi_rdnis read agi_context read agi_extension read agi_priority read agi_enhanced read agi_accountcode read emptyline #pfad zum cachefile CACHE="/var/media/ftp/MassStorageDevice-Partition-0-5/tel/telefonbuch.txt" EXTEN="$2" CODE="$3" BLACK="/var/media/ftp/MassStorageDevice-Partition-0-5/tel/black.txt" TMPFILE="/var/media/ftp/MassStorageDevice-Partition-0-5/tel/tmpsuche" TMPFILE1="/var/media/ftp/MassStorageDevice-Partition-0-5/tel/tmpsuche1" TMPFILE2="/var/media/ftp/MassStorageDevice-Partition-0-5/tel/tmpsuche2" TMPFILE3="/var/media/ftp/MassStorageDevice-Partition-0-5/tel/tmpsuche3" LOG="/var/media/ftp/MassStorageDevice-Partition-0-5/tel/anrufliste.txt" TITEL="span class="\"title\" EINS="1" NULL="/var/media/ftp/MassStorageDevice-Partition-0-5/tel/null" ######################################_IM_CACHE_SUCHEN_#################################################################### rm $TMPFILE NUMMER=`echo $1 | sed -e "s/\ //g" -e "s/+49/0/"` echo "Nummer: $NUMMER" if grep "$NUMMER" $CACHE > $NULL; then DATENSATZ="`grep ${NUMMER} ${CACHE}`" NAME="${DATENSATZ%;*}" echo "Name: $NAME" ######################################_IM_OERTLICHEN_SUCHEN_############################################################### else echo "Suche nach $NUMMER in www.dasoertliche.de" wget -q -O $TMPFILE "http://www1.dasoertliche.de/?form_name=search_inv&ph=$NUMMER" NAME=`grep 'class=\"entry\".*' $TMPFILE | sed -e s/^.*\"entry\"//g -e s/\<'\/'a\>.*//g -e s/^.*\>//g` echo "WEB-Name: $NAME" fi; ######################################_IM_KLICKTEL_SUCHEN_################################################################# if echo $1 | grep '^01';then echo "Das ist ein Handy" else if [ "$NAME" == "" ]; then echo "Suche nach $NUMMER in www.klicktel.de" wget -q -O $TMPFILE "http://www.klicktel.de/inverssuche/backwardssearch.html?newSearch=1&boxtype=backwards&sid=270asss9s9u1m4l7bfvhc3tbb6&vollstaendig=$NUMMER" # Adresse Zeile herausfiltern und in Datei speichern #durch Verkürzung if grep -i "1 Treffer" $TMPFILE > $NULL;then echo "EIN TREFFER!" grep $TMPFILE -e "$TITEL" >$TMPFILE1 rm $TMPFILE tr -d ' ' < $TMPFILE1 > $TMPFILE #Umwandlung von html in text NAME="`sed -e 's/<[^>]*>//g' $TMPFILE`" echo "WEB2-Name: $NAME" else echo "FEHLER" fi; fi; fi; #########################################_BLACKLIST_####################################################################### if [ "$NAME" == "" ]; then NAME="KEIN_EINTRAG" echo "KTG: $NAME" else if grep -i "Personalleasing\|Personalvermittlung\|Zeitarbeit\|Wirtschaftsauskunft" $TMPFILE > $NULL;then echo 'DATABASE PUT blacklist '"$NUMMER \"$EINS\"" echo -e "$NAME;$NUMMER" >>$BLACK echo "UNTERBINDEN" fi; fi; #########################################_NEU_NUMMER_INS_BUCH_############################################################# if grep "$NUMMER" $CACHE > $NULL; then echo "Bereits vorhanden" else echo -e "$NAME;$NUMMER" >>$CACHE fi; #########################################_VARIABLE_SETZEN_################################################################# echo 'SET VARIABLE LONGNAME '"\"$NAME\"" echo -e "`date +%e.%m\ %H:%M ` $NAME-$NUMMER-an-$EXTEN-$CODE" >>$LOG Das Macro für blacklist: Code: [macro-blacklist] exten => s,1,GotoIf(${DB_EXISTS(blacklist/${ARG1})}?black) exten => s,10(black),NoOp(Nummer ${ARG1} ist auf der Blacklist) exten => s,n,Playback(spam2) exten => s,n,Busy(5) exten => s,n,Hangup()