reverse lookup in www.dasoertliche.de für AAH 2.8

robtor

Neuer User
Mitglied seit
18 Apr 2005
Beiträge
108
Punkte für Reaktionen
0
Punkte
0
Habe das script von hier von hier für reverse lookup in AAH 2.8 eingebaut.

Als erstes lynx installieren, geht über die Konsole mit

yum install lynx

dann das agi script erstellen in /var/lib/asterisk/agi-bin

geht auch über die Konsole mit

nano -w /var/lib/asterisk/agi-bin/reverse.agi

dort den code von Thorsten Gehrig reinkopieren

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="/etc/asterisk/invsuche_cache.conf"

#pfad um das tempfile anzulegen
TMPFILE="/tmp/tmpsuche"
LOG="/var/log/asterisk/anrufliste_log"

if [ "$1" == "" ]; then
    NAME="anonymer Anrufer"
    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 [URL]www.dasoertliche.de[/URL]"
        lynx "http://www.dasoertliche.de/DB4Web/es/oetb2suche/home.htm?kw_invers=$NUMMER&main=Antwort&s=2" \
        -dump -nolist -connect_timeout=3>  $TMPFILE
        NAME=`grep printselected.gif -A 2 $TMPFILE | awk '{ if (FNR == 2) print $0 }' |  sed  -e "s/\ \+//" -e "s/\ \+/\ /g" -e "s/\[_\]//g"`
        DETAILS=`grep printselected.gif -A 2 $TMPFILE | awk '{ if (FNR == 3) print $0 }' |  sed  -e "s/\ \+//" -e "s/\ \+/\ /g" -e "s/\[_\]//g"`
        if [ "$NAME" == "" ]; then
            if grep "Kein Teilnehmer gefunden" $TMPFILE > /dev/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
rm -f /tmp/tmpsuche
#echo -e "`date +%e.%m\ %H:%M ` $NAME " >>$LOG

und abspeichern.

!!!An die Berechtigung denken 754 Benutzer Asterisk Gruppe Asterisk!!!

geht mit

chmod 754 /var/lib/asterisk/agi-bin/reverse.agi

und

chown asterisk:asterisk /var/lib/asterisk/agi-bin/reverse.agi

Dann muß noch das bei der extensions.conf in den context macro-dail rein

Code:
exten => s,1,SetLanguage(de)
exten => s,2,AGI,reverse.agi| ${CALLERIDNUM}
exten => s,3,SetCIDName(${LONGNAME})
exten => s,4,SetCIDNum(${CALLERIDNUM})

und die zeile

Code:
exten => s,1,AGI,dialparties.agi

in

Code:
exten => s,5,AGI,dialparties.agi

geändert werden.

Unter http://deinAAH bei tools kann man dann bei Edit Configuration in /etc/asterisk die datei invsuche_cache.conf sehen, in der alle Nummer von eingehenden Gesprächen abgelegt werden.

Diese Datei wird erst angelegt wenn der erste Anruf reingekommen ist!!!
 
Zuletzt bearbeitet:
Will nicht so recht ...

Hi robtor,

danke für das Skript! :)

!!!An die Berechtigung denken 754 Benutzer Asterisk Gruppe Asterisk!!!

könntest du das mal näher erläutern (soll das ein Hinweis auf einen anderen thread sein?) ..? Bei mir jedenfalls wird in /etc/asterisk die u.g. invsuche_cache.conf nicht erzeugt, im log jedoch findet sich:

Code:
May 31 10:49:48 VERBOSE[3059] logger.c:     -- Executing AGI("Zap/1-1", "reverse.agi| [Tel.-Nummer]") in new stack
May 31 10:49:48 VERBOSE[3059] logger.c:     -- Launched AGI Script /var/lib/asterisk/agi-bin/reverse.agi
May 31 10:49:48 VERBOSE[3059] logger.c:     -- AGI Script reverse.agi completed, returning 0


Unter http://deinAAH bei tools kann man dann bei Edit Configuration in /etc/asterisk die datei invsuche_cache.conf sehen, in der alle Nummer von eingehenden Gesprächen abgelegt werden.

Wo ich das sehe - sollte es in AAH 2.8 den Bereich Edit Configuration tatsächlich geben ..? Bei mir jedenfalls ist er nicht vorhanden. Allerdings ist bei mir auch SugarCRM nicht an Bord (s. http://www.ip-phone-forum.de/showthread.php?t=105230) ...

Grüße,
Olaf
 
Die änderung der Attribute must du machen damit asterisk die agi überhaupt ausführen darf, da wenn du in der Console mit root angemeldet bist die datei auch die Attribute für root bekommt.


geh mal in die Console unter /etc/asterisk

cd /etc/asterisk

dort findest du mit

ls -l inv*

auch die Datei !
 
robtor schrieb:
Die änderung der Attribute must du machen damit asterisk die agi überhaupt ausführen darf, da wenn du in der Console mit root angemeldet bist die datei auch die Attribute für root bekommt.

Für welche Datei muss ich denn die Attribute ändern? Der reverse.agi habe ich RW-Rechte für alle (Owner/Group/Others) gegeben.
Und, wie gesagt, in /etc/asterisk findet sich keine Datei namens invsuche_cache.conf.
Da das log (/var/log/asterisk/full) aber anzeigt, dass das Script aufgerufen wurde (s. mein erstes posting), müssten die Rechte doch stimmen, oder?

Ich habe die invsuche_cache.conf probehalber mal in /etc/asterisk erzeugt und ihr auch RW-Rechte wie o.a. gegeben, trotzdem tut sich da rein gar nichts. :(
Ich habe auch im .agi mal die LOG-Zeile aktiviert, aber auch /var/log/asterisk/anrufliste_log existiert nach einem Anruf nicht, obwohl /var/log/asterisk/full ausweist, dass das Script aufgerufen wurde.

Liegt's an mir (Linux-DAU)? Ich habe die Dateirechte via WinSCP geändert, wie (was) man per Console machen müsste, entzieht sich meiner Kenntnis ...
 
Olaf.Rabbachin schrieb:
Für welche Datei muss ich denn die Attribute ändern? Der reverse.agi habe ich RW-Rechte für alle (Owner/Group/Others) gegeben.

Und wo hast Du die X Rechte gelassen? Damit die Datei auch ausgeführt werden darf?
 
Na also!

betateilchen schrieb:
Und wo hast Du die X Rechte gelassen? Damit die Datei auch ausgeführt werden darf?

LOL. Ich sagte ja, Linux-DAU. Das X für Ausführen steht, wusste ich nicht. :p

Klasse, jetzt funzt's - danke!

Grüße,
Olaf
 
X wie eXecute :mrgreen:
 
betateilchen schrieb:
X wie eXecute :mrgreen:

Jaja, immer auf die Kleinen! :blonk:

Aber damit ich wenigstens noch was lerne - wer muß denn X-Rechte haben (Owner/Group/Others), damit ein Skript ausgeführt werden kann ..?
AAH dürfte doch per root=owner agieren, oder?
 
also bei solchen Skripten setze ich immer die Rechte auf 755

Kurze Erklärung der Rechtevergabe bei Linux:

Lesen = 4
Schreiben = 2
Ausführen = 1

Und die Werte dieser Rechte addierst Du einfach zusammen. 3 Stellen hat die Zahl entsprechend der 3 Berechtigten (Owner, Group, Others)​

Owner darf alles (4+2+1=7), alle anderen dürfen lesen und ausführen(4+1=5).
 
betateilchen schrieb:
Kurze Erklärung der Rechtevergabe bei Linux:

Danke! In ein paar Jahrzehnten bin ich dann Profi! :)
 
Habe den ersten Beitrag jetzt so geändert das man eine Anleitung hat wie man Rechte und Besitzer an der Datei ändern kann.

Die Datei invsuche_cache.conf wird erst angelegt wenn ein Anruf rein kommt!!!
 
Und die Anlagenanschlüsse ..? :)

robtor schrieb:
Habe den ersten Beitrag jetzt so geändert das man eine Anleitung hat wie man Rechte und Besitzer an der Datei ändern kann.
[/B]

Jau, danke! :)

BTW - mir ist's schleierhaft, was für eine Skriptsprache das ist (<fi;> für das Ende eines If-Then-Blocks?). Aber die Nummernsuche würde ich für meine Belange gern so erweitern, dass eine While/Loop/etc.-Schleife für die letzten drei Ziffern durchlaufen wird, falls ein Eintrag nicht gleich gefunden wird (oder könnte das Probleme durch die benötigte Zeit verursachen?).
Sprich, 0123456789 wäre "formatiert" eigentlich 0123/456-789, mit 789 als Extension. Dabei wäre der Eintrag im ÖTB die Zentrale mit 0123/456-0, das Skript würde also entsprechend nach ...
  1. 0123456789
  2. 0123456780
  3. 012345670
  4. 01234560
... suchen.

So habe ich's jedenfalls vor 7 oder 8 Jahren einmal für TAPI und D-Info aufgesetzt. :)
Eigentlich doch eine triviale Aufgabe, oder? Dumm nur, wenn man nicht einmal eine Schleife in der entspr. Skriptsprache aufsetzen kann. Wenn mir jemand allerdings sagen könnte, wie man ein <While...Wend> und ein <strVar=left(strVar, len(strvar)-1) & '0'> aufsetzt, bzw. einen link auf eine erklärende Website hat, gebe ich mich gern in einer stillen Minute (bis flachliegende Acht ;)) daran.

Danach stellt sich dann lediglich noch die Frage nach dem Sinn eines solchen Skripts bzw. dessen Outputs - an ein Telefon kann man die Info ja kaum weiterleiten, oder? Vor allem bei evt. notwendigen 4 lookups dürfte die Antwortzeit zu lange sein, um es gemeinsam mit dem Klingelzeichen auf einen Apparat zu "posten".
Wenn's das log jedenfalls im config-dir vergammelt, bringt die Info auch nur was für den SysAdmin, nicht aber die Benutzer, und das auch nur nachgelagert ...
 
<offtopic>

Damit Du auf dem "Weg zum Profi" ein Stück weiterkommst:

Olaf.Rabbachin schrieb:
BTW - mir ist's schleierhaft, was für eine Skriptsprache das ist (<fi;> für das Ende eines If-Then-Blocks?).

Steht in der ersten Zeile:

Code:
#!/bin/sh

Aha - wird also über die Shell ausgeführt :wink:

Da gibt es z.B. auch noch

Code:
case
   blabla
esac

Es wird einfach die Buchstabenfolge des eröffnenden Statements umgedreht und zum Abschließen verwendet. Ergo wird ein IF mit einem FI abgeschlossen :mrgreen:

</offtopic>
 
robtor schrieb:
# echo "Suche nach $NUMMER in www.dasoertliche.de"

Hallo,

gibt es solche Abfragen auch für andere Länder?

Ich stelle mir bei eingehenden internat. Anrufen vor, dann die Abfrage auf einen landesspezifischen Link zu machen.
 
Hi Forum,

Ich würde gerne die Rückwärtssuche für die Schweiz anpassen.
Die URL lautet http://tel.search.ch/4144XXXXXXX

was dann rauskommt ist folgendes:
Code:
   [tel.search.ch] Das elektronische Telefonbuch fr | it | en

     * search.ch
     * Telefonbuch
     * Suchresultate

   Weitere Dienste
   Schweizer Karte
   Websuche
   1 Eintrag | Neue Suche
   Privatpersonen | Firmen und Beh�rden | Alle Eintr�ge zeigen | Neu: Auf
   Karte zeigen

   Name, Vorname (-Mädchenname)
   Strasse Nr, PLZ Ort/Kt
   *044 XXX XX XX           Karte, SBB, vCard

   * W�nscht keine Werbung
   1 Eintrag | 1 |  | Neue Suche
   Melden Sie uns �nderungen eines bestehenden Eintrags oder erg�nzen Sie
   fehlende Privateintr�ge oder Firmen- und Beh�rdeneintr�ge.
.
.
.

Ich kenne mich mit Regexp aber leider zuwenig aus, um das hinzukriegen, hat jemand Lust mir zu helfen?
 
nomeez schrieb:
Ich würde gerne die Rückwärtssuche für die Schweiz anpassen.
Die URL lautet http://tel.search.ch/4144XXXXXXX
[...]
Ich kenne mich mit Regexp aber leider zuwenig aus, um das hinzukriegen, hat jemand Lust mir zu helfen?

Lust schon, Vermögen nicht. :)
Aber - hast du schon die Anleitung bei NerdVittles gesehen? Sie ist zwar für Trixbox 1.0, könnte aber evt. Erkenntnisse bringen. Steht bei mir auch noch auf dem Programm, ich habe den Artikel bislang noch nicht gelesen.

Vor allem aber bringt das reverse.agi insofern nichts, als dass die Information ganz einfach in /etc/asterisk vergammelt - sie müsste auf dem Telefondisplay erscheinen, dann würde es Sinn machen.
Edit: s.u., Aussage nicht korrekt!

Grüße,
Olaf
 
Zuletzt bearbeitet:
Olaf.Rabbachin schrieb:
Vor allem aber bringt das reverse.agi insofern nichts, als dass die Information ganz einfach in /etc/asterisk vergammelt - sie müsste auf dem Telefondisplay erscheinen, dann würde es Sinn machen.


Hast du das bei dir schonmal eingebaut? ... bestimmt nicht, sonst hättest du gemerkt das die variable calleridname mit dem Namen gefüllt wird der bei der Suche rauskommt.

Somit zeigt ein sip-Telefon den Namen der gefunden wurde auch an!!!
 
robtor schrieb:
Hast du das bei dir schonmal eingebaut? ... bestimmt nicht, sonst hättest du gemerkt das die variable calleridname mit dem Namen gefüllt wird der bei der Suche rauskommt.

Somit zeigt ein sip-Telefon den Namen der gefunden wurde auch an!!!

Hm. Dochdoch, das Skript läuft hier. Aber dann liegt's wohl an mangelnder Konfiguration hier, denn auf meinem Cisco 7912 (damit hatte ich's probiert) bekomme ich lediglich die Nummer. Sorry für die Falschaussage (Edit folgt)!

Grüße,
Olaf
 
Ich habe bei mir Snom 360, bei denen kann man einstellen ob man Nummer, Name, Name+Nummer Angezeigt bekommen möchte.

Csico ist bestimmt etwas eigen und kann mit der Asteriskvariablen calleridnum und calleridname nichts anfangen.


Gruß


Robert
 
robtor schrieb:
Ich habe bei mir Snom 360, bei denen kann man einstellen ob man Nummer, Name, Name+Nummer Angezeigt bekommen möchte.

Csico ist bestimmt etwas eigen und kann mit der Asteriskvariablen calleridnum und calleridname nichts anfangen.

Die Cisco-Geräte gehen mir eh langsam gewaltig auf die Nerven - seit zwei Wochen fummle ich an meinem 7971 herum und bekomme es einfach nicht zum Laufen, daher muß ich mich überhaupt erst mal mit dem 7912er begnügen ...
Ist das bei Snom anders? Sprich, auspacken, anschliessen, loslegen ..?

Grüße,
Olaf
 
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.