Seite 6 von 10 ErsteErste ... 2345678910 LetzteLetzte
Ergebnis 101 bis 120 von 197

Thema: Rückwärtssuche bei dasoertliche.de neues Script

  1. #101
    IPPF-Fünfhundert-Club Avatar von abw1oim
    Registriert seit
    26.03.2007
    Ort
    Bonn
    Beiträge
    537
    Die "utils.c:1126 ast_carefulwrite: write() returned error: Broken pipe" treten nicht mehr auf, wenn man VDR=0 setzt. Anscheinend empfängt der Asterisk noch den Output vom vdr-skript
    Das hatte ich nicht getestet, da ich her auch keinen VDR betreibe.

    Kann sich das mal jemand mit VDR anschauen - entsprechend der Vermutung von Jansen_ muss man da die Ausgabe an VDR mal anpassen, damit Asterisk nicht durcheinanderkommt.
    Anbindung: VDSL2 50MBit
    VOIP-Provider: div. Betamax, dus.net, sipgate.de u.a.
    Router: Lancom 1722 FW 8.50
    Telefone: SX255-ISDN, S685IP, AAstra 57i, Nokia E65, X-Lite
    OS: openSuSE 11.4 - x86_64 Kernel 2.6.37
    HW: AMD Phenom 9350e
    PBX: Asterisk 1.8.17,iaxmodem 1.2.0, HylaFax+ 5.5.2

  2. #102
    IPPF-Fan
    Registriert seit
    17.04.2006
    Beiträge
    413
    Leider ist die Quelle tel.search.ch nicht immer sehr aktuell. In der Schweiz ist eigentlich tel.local.ch massgebend. Ich hatte mal für die Fritzbox einen Skript gebastelt (nicht sehr professionell und ohne Fehlererkennung). Vielleicht könnte man von da etwas in diesen Asterisk-Skript übernehmen.
    Auch würde ich diesen Agi-Skript auch gerne in meine Trixbox einbauen. Wer weiss wie? Funktioniert das auch analog dieser Anleitung?

  3. #103
    IPPF-Einsteiger
    Registriert seit
    18.02.2007
    Beiträge
    13
    Zitat Zitat von abw1oim Beitrag anzeigen
    Kann sich das mal jemand mit VDR anschauen - entsprechend der Vermutung von Jansen_ muss man da die Ausgabe an VDR mal anpassen, damit Asterisk nicht durcheinanderkommt.
    Man muss sich halt entscheiden, wo die Ausgabe vom VDR-Skript landen soll.
    Ich lasse es bei mir jetzt mit in die Logdatei schreiben:
    Code:
        715 ## OSD Mitteilung an den VDR per "svdrpsend.pl"
        716 ## im svdrpsend.pl script wirde "localhost" durch die VDR-IP ersetzt
        717 function osdvdr {
        718 svdrpsend.pl "mesg ANRUF: $NAME $NUM fuer $DEST" >> $LOGFILE
        719 svdrpsend.pl "mesg $DETAILS" >> $LOGFILE
        720 }
    Zusätzlich habe ich noch eingefügt, dass man sieht, welcher Teilnehmer angerufen wird.

    Dann gibts bei mir noch das Problem, dass die Anruf.log nicht gefunden wird.
    Wenn man ein pwd an die entsprechende Zeile einfügt (~690) sieht man in der asterisk-Konsole, dass er sich im Ordner seines Quellcodes befindet und nicht im agi-bin Verzeichnis.
    Anbindung: DSL 3mbit
    VOIP-Provider: sipgate.de
    Router: iptables
    Telefone: Grandstream GXP-2000
    OS: Ubuntu 8.10 Kernel 2.6.27-11-server
    HW: Intel Q9300
    PBX: Asterisk 1.6.1.0-rc3 ISDN-Gateway Patton SN 4552

  4. #104
    IPPF-Einsteiger
    Registriert seit
    29.11.2006
    Ort
    Oberösterreich
    Beiträge
    20
    Hi ihrs,

    erst mal vielen Dank für eure Arbeit! Das Skript ist wirklich erste Sahne und hat auf meinem alten Asterisk 1.4.* gute Dienste geleistet. Aktuell bin ich nun dabei, einen neuen Server mit dem aktuelleren Asterisk 1.6 aufzusetzen, stosse dabei aber auf nicht mehr so recht nachvollziehbare Probleme:

    Code:
        -- Executing [0043720345830@ankommend:2] AGI("SIP/213.208.5.25-7c009960", "ast_revers.agi, Unknown") in new stack
        -- Launched AGI Script /var/lib/asterisk/agi-bin/ast_revers.agi
    [Apr 11 18:40:07] ERROR[3233]: utils.c:1019 ast_carefulwrite: write() returned error: Broken pipe
    [Apr 11 18:40:07] ERROR[3233]: utils.c:1019 ast_carefulwrite: write() returned error: Broken pipe
    [Apr 11 18:40:07] ERROR[3233]: utils.c:1019 ast_carefulwrite: write() returned error: Broken pipe
    [Apr 11 18:40:07] ERROR[3233]: utils.c:1019 ast_carefulwrite: write() returned error: Broken pipe
    [Apr 11 18:40:07] ERROR[3233]: utils.c:1019 ast_carefulwrite: write() returned error: Broken pipe
    [Apr 11 18:40:07] ERROR[3233]: utils.c:1019 ast_carefulwrite: write() returned error: Broken pipe
    [Apr 11 18:40:07] ERROR[3233]: utils.c:1019 ast_carefulwrite: write() returned error: Broken pipe
    [Apr 11 18:40:07] ERROR[3233]: utils.c:1019 ast_carefulwrite: write() returned error: Broken pipe
    [Apr 11 18:40:07] ERROR[3233]: utils.c:1019 ast_carefulwrite: write() returned error: Broken pipe
    [Apr 11 18:40:07] ERROR[3233]: utils.c:1019 ast_carefulwrite: write() returned error: Broken pipe
    [Apr 11 18:40:07] ERROR[3233]: utils.c:1019 ast_carefulwrite: write() returned error: Broken pipe
    [Apr 11 18:40:07] ERROR[3233]: utils.c:1019 ast_carefulwrite: write() returned error: Broken pipe
    [Apr 11 18:40:07] ERROR[3233]: utils.c:1019 ast_carefulwrite: write() returned error: Broken pipe
    [Apr 11 18:40:07] ERROR[3233]: utils.c:1019 ast_carefulwrite: write() returned error: Broken pipe
    [Apr 11 18:40:07] ERROR[3233]: utils.c:1019 ast_carefulwrite: write() returned error: Broken pipe
    [Apr 11 18:40:07] ERROR[3233]: utils.c:1019 ast_carefulwrite: write() returned error: Broken pipe
    [Apr 11 18:40:07] ERROR[3233]: utils.c:1019 ast_carefulwrite: write() returned error: Broken pipe
    [Apr 11 18:40:07] ERROR[3233]: utils.c:1019 ast_carefulwrite: write() returned error: Broken pipe
    [Apr 11 18:40:07] ERROR[3233]: utils.c:1019 ast_carefulwrite: write() returned error: Broken pipe
    [Apr 11 18:40:07] ERROR[3233]: utils.c:1019 ast_carefulwrite: write() returned error: Broken pipe
    [Apr 11 18:40:07] ERROR[3233]: utils.c:1019 ast_carefulwrite: write() returned error: Broken pipe
    [Apr 11 18:40:07] ERROR[3233]: utils.c:1019 ast_carefulwrite: write() returned error: Broken pipe
      == ast_revers.agi, Unknown: Failed to execute '/var/lib/asterisk/agi-bin/ast_revers.agi': Permission denied
    [Apr 11 18:40:07] ERROR[3233]: utils.c:1019 ast_carefulwrite: write() returned error: Broken pipe
    [Apr 11 18:40:07] WARNING[3233]: res_agi.c:2788 run_agi: unable to send SIGHUP to AGI process 3234: No such process
    VDR ist in der Config auf 0 gesetzt, SELinux ist deaktiviert, das Betriebssystem ist Fedora 11 Beta.

    Ein ls -l auf das agi-bin-Verzeichnis sieht wie folgt aus:
    Code:
    -rwxr-xr-x 1 root     root       1742 11. Apr 01:42 agi-test.agi
    drwxrwxr-x 2 asterisk asterisk   4096 11. Apr 17:28 AL
    -rwxrwxr-x 1 asterisk asterisk  31655 11. Apr 18:39 ast_revers.agi
    -rwxr-xr-x 1 root     root      94842 11. Apr 01:42 eagi-sphinx-test
    -rwxr-xr-x 1 root     root     157194 11. Apr 01:42 eagi-test
    -rwxr-xr-x 1 root     root      14530 11. Apr 01:42 jukebox.agi
    -rwxrwxr-x 1 asterisk asterisk  41961 11. Apr 17:28 mysql2pgsql.perl
    drwxrwxr-x 3 asterisk asterisk   4096 11. Apr 17:28 scripts
    drwxrwxr-x 3 asterisk asterisk   4096 11. Apr 17:28 search_engine
    Die Zugriffsrechte an sich dürften daher ausreichen. Geringere Dateirechte brachten natürlich nichts, wenn root:root der Besitzer der Reverse-Dateien war sah es auch nicht besser aus. Die ast_reverse.conf in /etc/asterisk hat die Rechte 644, Besitzer ist wie bei allen anderen conf-Files root:root.

    Der Aufruf aus der extensions.conf geschieht folgendermaßen:
    Code:
    exten => _0043720xxxxxx,n,AGI(ast_revers.agi, ${CALLERID(num)})
    exten => _0043720xxxxxx,n,Set(CALLERID(name)=${LONGNAME})
    Führe ich ast_reverse.age auf der Konsole aus, erhalte ich folgende Ausgabe:
    Code:
    ./ast_revers.agi 00435905910
    ERROR 1146 (42S02) at line 1: Table 'asteriskreverse.pbook' doesn't exist
    ERROR 1146 (42S02) at line 1: Table 'asteriskreverse.pbook' doesn't exist
    SET VARIABLE LONGNAME "Telekom Austria AG Hotlines von Telekom Austria AG"
    Dort scheint das Script dann übrigens hängen zu bleiben, danach passiert zumindest eine halbe Minute lang nichts mehr (länger hats mich noch nicht warten gefreut...).

    Was habe ich falsch gemacht und was benötigt ihr, um mir weiterhelfen zu können?
    Server 1: CentOS 5.6, 64 Bit, Asterisk 1.8.6.0
    Server 2: CentOS 5.6, 64 Bit, Asterisk 10.0.0.0-beta2

  5. #105
    IPPF-Einsteiger
    Registriert seit
    18.02.2007
    Beiträge
    13
    Hallo Vulkanus,
    um das Skript auf der Konsole testen zu können musst du folgendes beachten:
    Damit das jetzt auf der Kommandozeile noch funktioniert, muss man als dritten Parameter test angeben, sonst bekommt man nichts zu sehen (der Aufruf aus dem Asterisk bleibt der gleiche)
    Der zweite Parameter ist das angerufene Gerät.

    Kannst du nochmal die Ausgaben posten mit "agi set debug on"?
    Anbindung: DSL 3mbit
    VOIP-Provider: sipgate.de
    Router: iptables
    Telefone: Grandstream GXP-2000
    OS: Ubuntu 8.10 Kernel 2.6.27-11-server
    HW: Intel Q9300
    PBX: Asterisk 1.6.1.0-rc3 ISDN-Gateway Patton SN 4552

  6. #106
    IPPF-Einsteiger
    Registriert seit
    29.11.2006
    Ort
    Oberösterreich
    Beiträge
    20
    Danke für die schnelle Antwort! So sieht der Konsolenaufruf gleich deutlich besser aus und läuft auch komplett durch.

    Ausgabe mit agi setup debug on und core set debug 1 ist:
    Code:
        -- Executing [0043720xxxxxx@ankommend:1] NoOp("SIP/213.208.5.25-7c0078a0", "Externer Ruf von "Unknown" <Unknown> an 0043720xxxxxx") in new stack
        -- Executing [0043720xxxxxx@ankommend:2] AGI("SIP/213.208.5.25-7c0078a0", "ast_revers.agi, Unknown") in new stack
        -- Launched AGI Script /var/lib/asterisk/agi-bin/ast_revers.agi
    <SIP/213.208.5.25-7c0078a0>AGI Tx >> agi_request: ast_revers.agi
    [Apr 11 19:47:27] ERROR[3894]: utils.c:1019 ast_carefulwrite: write() returned error: Broken pipe
    <SIP/213.208.5.25-7c0078a0>AGI Tx >> agi_channel: SIP/213.208.5.25-7c0078a0
    [Apr 11 19:47:27] ERROR[3894]: utils.c:1019 ast_carefulwrite: write() returned error: Broken pipe
    <SIP/213.208.5.25-7c0078a0>AGI Tx >> agi_language: de
    [Apr 11 19:47:27] ERROR[3894]: utils.c:1019 ast_carefulwrite: write() returned error: Broken pipe
    <SIP/213.208.5.25-7c0078a0>AGI Tx >> agi_type: SIP
    [Apr 11 19:47:27] ERROR[3894]: utils.c:1019 ast_carefulwrite: write() returned error: Broken pipe
    <SIP/213.208.5.25-7c0078a0>AGI Tx >> agi_uniqueid: 1239472047.6
    [Apr 11 19:47:27] ERROR[3894]: utils.c:1019 ast_carefulwrite: write() returned error: Broken pipe
    <SIP/213.208.5.25-7c0078a0>AGI Tx >> agi_version: 1.6.0.9
    [Apr 11 19:47:27] ERROR[3894]: utils.c:1019 ast_carefulwrite: write() returned error: Broken pipe
    <SIP/213.208.5.25-7c0078a0>AGI Tx >> agi_callerid: Unknown
    [Apr 11 19:47:27] ERROR[3894]: utils.c:1019 ast_carefulwrite: write() returned error: Broken pipe
    <SIP/213.208.5.25-7c0078a0>AGI Tx >> agi_calleridname: Unknown
    [Apr 11 19:47:27] ERROR[3894]: utils.c:1019 ast_carefulwrite: write() returned error: Broken pipe
    <SIP/213.208.5.25-7c0078a0>AGI Tx >> agi_callingpres: 0
    [Apr 11 19:47:27] ERROR[3894]: utils.c:1019 ast_carefulwrite: write() returned error: Broken pipe
    <SIP/213.208.5.25-7c0078a0>AGI Tx >> agi_callingani2: 0
    [Apr 11 19:47:27] ERROR[3894]: utils.c:1019 ast_carefulwrite: write() returned error: Broken pipe
    <SIP/213.208.5.25-7c0078a0>AGI Tx >> agi_callington: 0
    [Apr 11 19:47:27] ERROR[3894]: utils.c:1019 ast_carefulwrite: write() returned error: Broken pipe
    <SIP/213.208.5.25-7c0078a0>AGI Tx >> agi_callingtns: 0
    [Apr 11 19:47:27] ERROR[3894]: utils.c:1019 ast_carefulwrite: write() returned error: Broken pipe
    <SIP/213.208.5.25-7c0078a0>AGI Tx >> agi_dnid: 0043720345830
    [Apr 11 19:47:27] ERROR[3894]: utils.c:1019 ast_carefulwrite: write() returned error: Broken pipe
    <SIP/213.208.5.25-7c0078a0>AGI Tx >> agi_rdnis: unknown
    [Apr 11 19:47:27] ERROR[3894]: utils.c:1019 ast_carefulwrite: write() returned error: Broken pipe
    <SIP/213.208.5.25-7c0078a0>AGI Tx >> agi_context: ankommend
    [Apr 11 19:47:27] ERROR[3894]: utils.c:1019 ast_carefulwrite: write() returned error: Broken pipe
    <SIP/213.208.5.25-7c0078a0>AGI Tx >> agi_extension: 0043720xxxxxx
    [Apr 11 19:47:27] ERROR[3894]: utils.c:1019 ast_carefulwrite: write() returned error: Broken pipe
    <SIP/213.208.5.25-7c0078a0>AGI Tx >> agi_priority: 2
    [Apr 11 19:47:27] ERROR[3894]: utils.c:1019 ast_carefulwrite: write() returned error: Broken pipe
    <SIP/213.208.5.25-7c0078a0>AGI Tx >> agi_enhanced: 0.0
    [Apr 11 19:47:27] ERROR[3894]: utils.c:1019 ast_carefulwrite: write() returned error: Broken pipe
    <SIP/213.208.5.25-7c0078a0>AGI Tx >> agi_accountcode: 
    [Apr 11 19:47:27] ERROR[3894]: utils.c:1019 ast_carefulwrite: write() returned error: Broken pipe
    <SIP/213.208.5.25-7c0078a0>AGI Tx >> agi_threadid: 140004441721104
    [Apr 11 19:47:27] ERROR[3894]: utils.c:1019 ast_carefulwrite: write() returned error: Broken pipe
    <SIP/213.208.5.25-7c0078a0>AGI Tx >> agi_arg_1:  Unknown
    [Apr 11 19:47:27] ERROR[3894]: utils.c:1019 ast_carefulwrite: write() returned error: Broken pipe
    <SIP/213.208.5.25-7c0078a0>AGI Tx >> 
    [Apr 11 19:47:27] ERROR[3894]: utils.c:1019 ast_carefulwrite: write() returned error: Broken pipe
    <SIP/213.208.5.25-7c0078a0>AGI Rx << verbose "Failed to execute '/var/lib/asterisk/agi-bin/ast_revers.agi': Permission denied" 2
      == ast_revers.agi, Unknown: Failed to execute '/var/lib/asterisk/agi-bin/ast_revers.agi': Permission denied
    <SIP/213.208.5.25-7c0078a0>AGI Tx >> 200 result=1
    [Apr 11 19:47:27] ERROR[3894]: utils.c:1019 ast_carefulwrite: write() returned error: Broken pipe
    [Apr 11 19:47:27] WARNING[3894]: res_agi.c:2788 run_agi: unable to send SIGHUP to AGI process 3895: No such process
        -- Executing [0043720xxxxxx@ankommend:3] Set("SIP/213.208.5.25-7c0078a0", "CALLERID(name)=") in new stack
    Server 1: CentOS 5.6, 64 Bit, Asterisk 1.8.6.0
    Server 2: CentOS 5.6, 64 Bit, Asterisk 10.0.0.0-beta2

  7. #107
    IPPF-Einsteiger
    Registriert seit
    18.02.2007
    Beiträge
    13
    Da bin ich nun auch überfragt. Ich weiß nicht warum der asterisk das agi-script nicht starten darf. Was du noch testen kannst:
    asterisk testweise als root starten.
    agi-script als asterisk user starten.
    Anbindung: DSL 3mbit
    VOIP-Provider: sipgate.de
    Router: iptables
    Telefone: Grandstream GXP-2000
    OS: Ubuntu 8.10 Kernel 2.6.27-11-server
    HW: Intel Q9300
    PBX: Asterisk 1.6.1.0-rc3 ISDN-Gateway Patton SN 4552

  8. #108
    IPPF-Erfahrener
    Registriert seit
    11.04.2007
    Beiträge
    86

    Änderung dasörtliche??

    Hallo,
    hat sich die Seite von DasÖrtliche schon wieder geändert?
    Hab die Abfrage mal geändert. Bin aber nicht so fit mit dem Stream Editor, vielleicht könnte das mal einer prüfen und verbessern.
    Code:
    wget -q -O $TMPFILE "http://www1.dasoertliche.de/?form_name=search_inv&ph=$NUMMER"
    NAME=`grep 'onMouseOut=""  >' $TMPFILE | sed -e :a -e 's/<[^>]*>//g;/</N;//ba'`
    Gruß

    Frank

    AVM Fritzbox 7170 mit Asterisk 1.4.22
    T-Home Call&Surf Comfort ISDN
    WLAN Verbindung über zwei Access-Point ca. 4 km
    mit Anbindung von C450 IP an Gegenstelle

  9. #109
    IPPF-Einsteiger
    Registriert seit
    28.01.2007
    Beiträge
    5

    Das Örtliche hat sich geändert...

    Hallo,
    das script liefert bei mir über das Örtliche keine ergebnisse mehr...
    ich mir das TEMP file angeschaut und fest gestellt das es keine Daten mehr von der Suche enthält.....
    Kenn mich leider nicht soweitaus das ich da einen lösungsansatz bei steuern könnte.

    Würde mich sehr freuen wenn jemand das Problem beheben könnte.

    Mfg Nikon

  10. #110
    IPPF-Erfahrener
    Registriert seit
    11.04.2007
    Beiträge
    86
    @Nikon1982

    hast Du das script mal nach meinen Angaben geändert?

    damit läufts.
    Gruß

    Frank

    AVM Fritzbox 7170 mit Asterisk 1.4.22
    T-Home Call&Surf Comfort ISDN
    WLAN Verbindung über zwei Access-Point ca. 4 km
    mit Anbindung von C450 IP an Gegenstelle

  11. #111
    IPPF-Einsteiger
    Registriert seit
    28.01.2007
    Beiträge
    5
    Danke für die schnelle antwort.
    Ja ich habe das Script nach deinen angaben geändert nur leider ohne erfolg...

    function oertliches {
    wget -q -O $TMPFILE "http://www1.dasoertliche.de/?form_name=search_inv&ph=$NUMMER"
    NAME=`grep 'onMouseOut="" >' $TMPFILE | sed -e :a -e 's/<[^>]*>//g;/</N;//ba'`
    DETAILS=`grep ';.*<br\/>' -m1 $TMPFILE | sed -e s/' '//g -e s/\&nbsp\;/\ /g -e s/'\n'//g -e s/'\t'//g -e s/'<br\/>'// `
    if [ "$BLACKLIST" == "YES" ]; then
    if [ "$AUTOBLACKLIST" != "" ]; then
    BLACK=`grep -i "$AUTOBLACKLIST" $TMPFILE`
    if [ "$BLACK" != "" ]; then
    ISBLACK=Ja
    fi
    fi
    fi
    rm $TMPFILE
    }


    Wenn ich es auf der Konsole teste bekomme ich keinen Eintrag siehe log. Über das Örtliche....

    /var/lib/asterisk/agi-bin# ./ast_revers.agi 033203581..
    SET VARIABLE LONGNAME "kein Eintrag"
    SET VARIABLE LONGDETAILS "Deutschland Kleinmachnow"

    Wenn ich es über die webseite direkt suche bekomm ic die eingekürzte nummer angezeit. Aber nicht mehr über das Script

    Hab ich beim ändern was übersehen?

    Mfg Nikon

  12. #112
    IPPF-Fünfhundert-Club Avatar von abw1oim
    Registriert seit
    26.03.2007
    Ort
    Bonn
    Beiträge
    537
    Tausch am besten mal die ganze Funktion aus:

    Code:
    function oertliches  {
    wget -q --tries=3 --timeout=5 -O $TMPFILE "http://www1.dasoertliche.de/?form_name=search_inv&ph=$SNUM"
    NAME=`grep 'class=\"counter.*' -m1 -A1 /tmp/ast_revers.agi_html_tmp | sed -e s/^.*\"counter\"//g -e s/\<'\/'a\>.*//g -e s/^.*\>//g -e s/\<.*//`
    DETAILS=`grep 'class=\"counter.*' -m1 -A5 $TMPFILE | sed '/\"counter/,+4d;s/^[ \t]*//g;s/\&nbsp\;/ /g;s/<\/.*$//'`
    if [ "$BLACKLIST" == "YES" ]; then
            if [ "$AUTOBLACKLIST" != "" ]; then
                    BLACK=`grep -i "$AUTOBLACKLIST" $TMPFILE`
                    if [ "$BLACK" != "" ]; then
                            ISBLACK=Ja
                    fi
            fi
    fi
    rm $TMPFILE
    }
    Damit funktioniert es hier (Rufnummer und Adressdaten).
    Leider werden wir den Änderungen diverser Webseitenbetreiber wohl immer hinterherrennen
    Anbindung: VDSL2 50MBit
    VOIP-Provider: div. Betamax, dus.net, sipgate.de u.a.
    Router: Lancom 1722 FW 8.50
    Telefone: SX255-ISDN, S685IP, AAstra 57i, Nokia E65, X-Lite
    OS: openSuSE 11.4 - x86_64 Kernel 2.6.37
    HW: AMD Phenom 9350e
    PBX: Asterisk 1.8.17,iaxmodem 1.2.0, HylaFax+ 5.5.2

  13. #113
    IPPF-Einsteiger
    Registriert seit
    28.01.2007
    Beiträge
    5
    Ich glaub ich bin langsam zu blöde dafür des geht noch immer net....

    ich hab mal die ganze ast_revers.agi mit rein gestellt....

    Code:
    #!/bin/bash
    #set -x
    ##################################################
    # Namensänderung.
    # Durch die Erweiterungen des Scriptes hab ich mich dazu entschlossen das Script in
    # >> ast_revers.agi << umzubenennen.
    ##################################################
    #
    # Version: ast_revers.agi-1.0_2009.03.26
    #
    ##################################################
    # Ich bedanke mich auch bei abw1oim aus dem ip-phone-forum.de (http://www.ip-phone-forum.de)
    # ohne seine Hilfe würde das Script nur bei "dasoertliche.de" suchen.
    # 
    # Folgende Funktionen bietet das Script
    # - Internationale Suche bei:
    #  * Deutschland (dasoertliche.de)
    #  * Schweiz	(http://tel.search.ch)
    #  * Ã?sterreich (http://www.tb-online.at)
    #  * Luxemburg  (http://www.editustel.lu)
    #  * USA        (http://www.anywho.com)
    #  * Kanada     (http://411ca.whitepages.com bzw. http://www.411.ca)
    #  * Frankreich (http://www.pagesjaunes.fr)
    #  * Spanien    (http://www.infobel.com)  -> Nur Business-EintrÃ&#164;ge, Achtung: Eigentliche Routine ist php
    #  * weitere in Vorbereitung
    # - Lesen von Parametern
    #	* aus dem Skript selbst
    #	* aus MYSQL (von abw1oim implementiert)
    #	* aus PGSQL-DB (Danke an DirkWolf)
    # - Lesen/Speichern vom Cache in:
    #	* Cache-File
    #  	* SQLite 2 und SQLite 3 Datenbank 
    #	* MYSQL-DB (von abw1oim implementiert)
    #	* PGSQL-DB (Danke an DirkWolf)
    #  	* weitere in Vorbereitung
    # - OSD anzeige in:
    #	* VDR mit svdrpsend.pl
    #	* weiter in Vorbereitung
    #
    ##################################################
    
    
    ######################################################################################################
    # Defaultvariablen
    ######################################################################################################
    
    # Hier bestimmt man, ob die Werte in einer SQL-, MYSQL- DB oder in einem Cache-File gespeichert werden
    SPEICHERORT=CACHE
    
    #Zweiten - manuellen CACHE benutzen (YES|NO) - Achtung: Falls YES, muss der Speicherort über CACHE2 definiert werden!
    USE_CACHE2=NO
    
    # Hier kann man definieren, woher das Skript die Daten fÃ&#188;r die Rufnummernidentifizierung/formatierung
    # bezieht
    PARAMS=SCRIPT
    
    #Nutzung von Blacklisting (YES|NO)
    BLACKLIST=NO
    
    #Automatisiertes Blacklisting über Textbegriffe
    AUTOBLACKLIST="Personal\|Arbeitsvermittlung\|Zeit\|Vermögens\|Wirtschafts"
    
    #Bevorzugter Anbieter fuer Deutschland (OERTLICHE|KLICKTEL)
    DE_PREFERED=KLICKTEL
    
    #Fuer Deutschland: Kaskadierend beide Anbieter nutzen (YES|NO), für den Fall, dass der erste keinen Treffer liefert
    DE_CASCADE=YES
    
    #Hier stehen die Einstellungen fÃ&#188;r den eigenen Anschluss
    OIAC="00"	# Vorwahlziffern fÃ&#188;r internationalen Anruf
    ONAC="0"	# Vorwahlziffern fÃ&#188;r nationalen Anruf long Distance
    OCC=49		# eigener LÃ&#164;ndercode (49 => Deutschland)
    ONDC=30		# eigene Vorwahl ohne 0 ( 30 => Berlin)
    
    
    AFELD=leer
    VBOX=leer
    
    # Umlaute umsetzen ?
    RESET_UML=0
    
    #Anruf_log
    ALYES=0 
    LOGDB=0
    ALPFAD=./AL
    ALFILE=Anruf.log
    
    #VDR-Anzeige
    VDR=0                       #Anzeige VDR 0=Nicht 1=Ja
    
    #CACHE-File Varabeln setzen
    CACHE=/tmp/cache.txt
    CACHE2=/tmp/cache2.txt
    
    #LOG und TMP Files setzen
    TMPFILE=/tmp/ast_revers.agi_html_tmp
    LOGFILE=/tmp/ast_revers.agi_log
    
    #User-Config
    UCONFIG=/etc/asterisk/ast_revers.conf
    
    ######################################################################################################
    # Interne Variablen
    ######################################################################################################
    
    NUMMER=$1
    DEST=$2
    
    PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/var/lib/asterisk/agi-bin"
    
    # Nutzerdefinierte Einstellungen
    if [ -e $UCONFIG ]; then 
    	. $UCONFIG
    fi
    
    
    #Pfad zu den externen Such-Scripte (SE=search engine)
    SE=./search_engine
    
    #Pfad zu anderen Skripten (Jabber&Co)
    SP=./scripts
    
    
    ALDATE=`date +%Y.%m.%d`
    ALTIME=`date +%H:%M:%S`
    FELD=leer
    VBOX=leer
    CACHETRUE=0
    DATE=`date`
    
    CN=""
    CP=""
    PL=""
    STATE=""
    NAME=""
    PRIVATE="TRUE"
    NENTRY="FALSE"
    FOUND="FALSE"
    DETAILS=""
    COUNTRY=""
    CINDEX=-1
    
    # UnterstÃ&#188;tze LÃ&#164;nder
    LAND=("DEUTSCHLAND" "SCHWEIZ" "OESTERREICH" "LUXEMBURG" "USA" "KANADA" "FRANKREICH" "SPANIEN")
    ISO=(DE CH AT LU US CA FR ES)
    CC=(49 41 43 352 1 1 33 34)
    NAC=(0 0 0 "" 1 1 0 0)
    NPA=(0 0 0 0 NPA_US NPA_CA 0 0)
    CLAND=${#LAND[@]}
    
    
    #Area_Codes (optionaler Parameter 4 der unterstÃ&#188;tzten LÃ&#164;nder)
    
    NPA_US=( 
    	201 202 203 205 206 207 208 209 210 212 213 214 215 216 217 218 219 224 225 228 229 231 234 239 240 248 251 252 253 254 256 260 262 267 269 270 276 281 301 302 303 304 305 307 308 309 310 312 313 314 315 316 317 318 319 320 321 323 325 330 331 334 336 337 339 347 351 352 360 361 386 401 402 404 405 406 407 408 409 410 412 413 414 415 417 419 423 424 425 430 432 434 435 440 443 464 469 470 475 478 479 480 484 501 502 503 504 505 507 508 509 510 512 513 515 516 517 518 520 530 540 541 551 557 559 561 562 563 564 567 570 571 573 574 575 580 585 586 601 602 603 605 606 607 608 609 610 612 614 615 616 617 618 619 620 623 626 630 631 636 641 646 650 651 660 661 662 678 682 701 702 703 704 706 707 708 712 713 714 715 716 717 718 719 720 724 727 731 732 734 737 740 754 757 760 762 763 765 769 770 772 773 774 775 779 781 785 786 800 801 802 803 804 805 806 808 810 812 813 814 815 816 817 818 828 830 831 832 835 843 845 847 848 850 856 857 858 859 860 862 863 864 865 866 870 872 877 878 888 901 903 904 906 907 908 909 910 912 913 914 915 916 917 918 919 920 925 928 931 936 937 940 941 947 949 951 952 954 956 959 970 971 972 973 975 978 979 980 984 985 989 
           )
    NPA_CA=(
    	204 250 289 306 403 416 418 438 450 506 514 519 600 604 613 647 705 709 778 780 807 819 867 902 905
    	)
    
    ######################
    #####################
    ####################
    #
    #  Funktionen beginn
    #
    ###################
    ####################
    #####################
    
    ## Parameter aus MYSQL lesen
    function MYSQL_params {
    
    	TEMP=`mysql -h$MYSQLHOST -u$MYSQLUSER -p$MYSQLPASS $MYSQLDB --execute="select concat(cc,'|',ndc,'|',iac,'|',nac) from $PTABLE" | \
                    tail -n +2 | tr '\t' '|'`
    	CC=`echo $TEMP | cut -d '|' -f 1`
    	NDC=`echo $TEMP | cut -d '|' -f 2`
    	IAC=`echo $TEMP | cut -d '|' -f 3`
    	NAC=`echo $TEMP | cut -d '|' -f 4`
    }
    
    ## Parameter aus PGSQL lesen
    function PGSQL_params {
     TEMP=`psql -h$PGSQLHOST -U$PGSQLUSER -p$PGSQLPORT $PGSQLDB -t -c "select cc,ndc,iac,nac from $PTABLE"`
            CC=`echo $TEMP | cut -d '|' -f 1|sed 's/\s//g'`
            NDC=`echo $TEMP | cut -d '|' -f 2|sed 's/\s//g'`
            IAC=`echo $TEMP | cut -d '|' -f 3|sed 's/\s//g'`
            NAC=`echo $TEMP | cut -d '|' -f 4|sed 's/\s//g'`
    }
    
    ## Nummer Normalisierung auf internationales Formaat mit +<CC><NDC><SN>
    function normalisierung {
            # Leerzeichen raus
            NUMMER=`echo $NUMMER | sed -e "s/\ //g"`
            # Pruefen auf +
            TMP=`echo $NUMMER | sed -e s/^\+//`
            TMP2=`echo $NUMMER | sed -e s/^$OIAC//`
            TMP3=`echo $NUMMER | sed -e s/^$ONAC//`
            if [ "$NUMMER" != "$TMP" ]; then
                    # eigener IAC und eigener CC und eigener NDC
                    TMP=`echo $NUMMER | sed -e s/^\+$OCC$ONDC//`
                    TMP2=`echo $NUMMER | sed -e s/^\+$OCC//`
                    if [ "$NUMMER" != "$TMP" ]; then
                            NUM=`echo $NUMMER | sed -e "s/^\+$OCC$ONDC//"`
                     # eigener IAC und eigener CC
                    elif [ "$NUM" != "$TMP2" ]; then
                            NUM=`echo $NUMMER | sed -e "s/^\+$CC$NDC/$NAC/"`
                    else
                            NUM=`echo $NUMMER | sed -e "s/^\+/$IAC/"`
                    fi
            # Pruefen auf eigenen IAC
            elif [ "$NUMMER" != "$TMP2" ]; then
                    # eigener IAC und eigener CC und eigener NDC
                    TMP=`echo $NUMMER | sed -e s/^$OIAC$OCC$ONDC//`
                    TMP2=`echo $NUMMER | sed -e s/^$OIAC$OCC//`
                    if [ "$NUMMER" != "$TMP" ]; then
                            NUM=`echo $NUMMER | sed -e "s/^$OIAC$OCC$ONDC//"`
                    # eigener IAC und eigener CC
                    elif [ "$NUMMER" != "$TMP2" ]; then
                            NUM=`echo $NUMMER | sed -e "s/^$OIAC$OCC/$ONAC/"`
                    else
                            NUM=$NUMMER
                    fi
                    NUMMER=`echo $NUMMER | sed -e "s/^$OIAC/+/"`
            # Pruefen auf long distance domestic
            elif [ "$NUMMER" !=  "$TMP3" ]; then
                    TMP=`echo $NUMMER | sed -e s/^$ONAC$ONDC//`
                    if [ "$NUMMER" != "$TMP" ]; then
                            NUM=`echo $NUMMER | sed -e "s/^$ONAC$ONDC//"`
                    else
                            NUM=$NUMMER
                    fi
                    NUMMER=`echo $NUMMER | sed -e "s/^$ONAC/+$OCC/"`
            # Local Call
            else
                    NUM=$NUMMER
                    NUMMER=+$OCC$ONDC$NUMMER
            fi
            echo "Normalisierung der Rufnummer: " >> $LOGFILE
            echo "Rueckwahlform der Nummer (NUM) : $NUM (gueltig fuer Land $OCC und Ortsnetz $ONDC)"  >> $LOGFILE
            echo "Internationale Form der Nummer : $NUMMER" >> $LOGFILE
    }
    ## Pruefen, ob eine Ermittlungsroutine fuer die Rufnummer vorhanden ist (mit Daten aus Skript)
    function check_land {
    	index=0
    	COUNTRY=""
    	while [ "$index" -lt "$CLAND" ]; do
    		TEST=`echo $NUMMER | sed -e "s/^\+${CC[$index]}//"`
    		 if [ "$TEST"  != "$NUMMER" ]; then 
    			if [ "${NPA[$index]}" != "0" ]; then
    				if [ "${NPA[$index]}" == "NPA_US" ]; then
    					for i in "${NPA_US[@]}"; do
    						TEST=`echo $NUMMER | sed -e "s/^\+${CC[$index]}$i//"`
    						if [ "$TEST"  != "$NUMMER" ]; then
    							COUNTRY=${LAND[$index]}
    							CINDEX=$index
    							break
    						fi
    					done
    				else
    					for i in "${NPA_CA[@]}"; do
    						TEST=`echo $NUMMER | sed -e "s/^\+${CC[$index]}$i//"`
    						if [ "$TEST"  != "$NUMMER" ]; then
    							COUNTRY=${LAND[$index]}
    							CINDEX=$index
    							break
    						fi
    					done
    				fi
    			else
    				COUNTRY=${LAND[$index]}
    				CINDEX=$index
    			fi
    		fi
    		if [ "$CINDEX" -ne "-1" ]; then
    			break
    		fi
    		let "index = $index + 1"
    	done
    	if [ $CINDEX -ne -1 ]; then
    		echo "LÃ&#164;ndererkennung" >> $LOGFILE
    		echo "Erkanntes Land: " $COUNTRY >> $LOGFILE
    	else
    		echo "keine Reverssuche fÃ&#188;r Land des Anrufers" >> $LOGFILE
    	fi
    }
    
    ## Pruefen, ob eine Ermittlungsroutine fuer die Rufnummer vorhanden ist (mit Daten aus MYSQL)
    function check_land_mysql {
            COUNTRY=""
    	index=15
    	TEST=`echo $NUMMER | sed -e "s/^\+/00/"`
    	while [ $index -gt 3 ]; do
    		skey=${TEST:0:$index}
    		TEMP=`mysql -h$MYSQLHOST -u$MYSQLUSER -p$MYSQLPASS $MYSQLDB --execute="select concat(a.iso3166,'|',a.deutsch,'|',b.name) from $ETABLE a,$CTABLE b where a.exten='$skey' and a.iso3166=b.iso3166" | \
                    tail -n +2 | tr '\t' '|'`
    		if [ "$TEMP" != "" ]; then
    			iso=`echo $TEMP | cut -d '|' -f 1`
    			EXTDESC=`echo $TEMP | cut -d '|' -f 2`
    			COUNTRY=`echo $TEMP | cut -d '|' -f 3`
    			index=3
    		fi
    		let "index = $index - 1"	 
    	done
    	if [ "$COUNTRY" != "" ]; then
    		index=0
    		while [ "$index" -lt "$CLAND" ]; do
    			if [ "${ISO[$index]}" == "$iso" ]; then
    				CINDEX=$index
    				break
    			fi
    			let "index = $index + 1"
    		done
    	fi
            if [ $CINDEX -ne -1 ]; then
                    echo "LÃ&#164;ndererkennung" >> $LOGFILE
                    echo "Erkanntes Land: " $COUNTRY >> $LOGFILE
            else
                    echo "keine Reverssuche fÃ&#188;r Land des Anrufers" >> $LOGFILE
            fi
    	
    }
    
    ## Pruefen, ob eine Ermittlungsroutine fuer die Rufnummer vorhanden ist (mit Daten aus PGSQL)
    function check_land_pgsql {
            COUNTRY=""
    	index=15
    	TEST=`echo $NUMMER | sed -e "s/^\+/00/"`
    	while [ $index -gt 3 ]; do
    		skey=${TEST:0:$index}
    		TEMP=`psql -h$PGSQLHOST -U$PGSQLUSER -p$PGSQLPORT $PGSQLDB -t -c "select a.iso3166,a.deutsch,b.name from $ETABLE a,$CTABLE b where a.exten='$skey' and a.iso3166=b.iso3166"`
        if [ "$TEMP" != "" ]; then
    		   iso=`echo $TEMP |cut -d '|' -f 1| sed 's/\s//g'`
           EXTDESC=`echo $TEMP | cut -d '|' -f 2 | sed 's/\s//g'`
           COUNTRY=`echo $TEMP | cut -d '|' -f 3  | sed 's/\s//g'`
           index=3
    		fi
    		let "index = $index - 1"	 
    	done
    
    	if [ "$COUNTRY" != "" ]; then
                    index=0
    		while [ "$index" -lt "$CLAND" ]; do
    			if [ "${ISO[$index]}" == "$iso" ]; then
    				CINDEX=$index
    				break
    			fi
    			let "index = $index + 1"
    		done
    	fi
            if [ $CINDEX -ne -1 ]; then
                    echo "Laendererkennung" >> $LOGFILE
                    echo "Erkanntes Land: " $COUNTRY >> $LOGFILE
            else
                    echo "keine Reverssuche-Fund des Anrufers wg. LAND" >> $LOGFILE
            fi
    	
    }
    
    
    function DEUTSCHLAND {
    SNUM=`echo $NUMMER | sed -e "s/^+${CC[$CINDEX]}/${NAC[$CINDEX]}/"`
    if [ "$DE_PREFERED" == "OERTLICHE" ]; then
    	oertliches
    	if [ "$NAME" == "" ]; then
    		if [ "$DE_CASCADE" == "YES" ]; then
    			klicktel
    		fi
    	fi
    else 
    	klicktel
    	if [ "$NAME" == "" ]; then
    		if [ "$DE_CASCADE" == "YES" ]; then
    			oertliches
    		fi
    	fi
    fi
    }
    
    function oertliches  {
    wget -q --tries=3 --timeout=5 -O $TMPFILE "http://www1.dasoertliche.de/?form_name=search_inv&ph=$SNUM"
    NAME=`grep 'class=\"counter.*' -m1 -A1 /tmp/ast_revers.agi_html_tmp | sed -e s/^.*\"counter\"//g -e s/\<'\/'a\>.*//g -e s/^.*\>//g -e s/\<.*//`
    DETAILS=`grep 'class=\"counter.*' -m1 -A5 $TMPFILE | sed '/\"counter/,+4d;s/^[ \t]*//g;s/\&nbsp\;/ /g;s/<\/.*$//'`
    if [ "$BLACKLIST" == "YES" ]; then
            if [ "$AUTOBLACKLIST" != "" ]; then
                    BLACK=`grep -i "$AUTOBLACKLIST" $TMPFILE`
                    if [ "$BLACK" != "" ]; then
                            ISBLACK=Ja
                    fi
            fi
    fi
    rm $TMPFILE
    }
    
    function klicktel {
    if echo $SNUM | grep '^01';then
    	echo "Das ist ein Handy"
    else
    	wget -q --tries=3 --timeout=5 -O $TMPFILE "http://www.klicktel.de/inverssuche/backwardssearch.html?newSearch=1&boxtype=backwards&sid=270asss9s9u1m4l7bfvhc3tbb6&vollstaendig=$SNUM"
    	if grep -i "1 Treffer" $TMPFILE > /dev/null;then
    		echo "EIN TREFFER!"	
    		NAME=`grep 'class=\"namelink\".*' -m1 $TMPFILE | sed -e 's/<[^>]*>//g'`
    		NAME=`echo $NAME | sed 's/\&ouml\;/ö/g;s/\&auml\;/ä/g;s/\&uuml\;/ü/g;s/\&Ouml\;/Ö/g;s/\&Auml\;/Ä/g;s/\&Uuml\;/Ü/g;s/\&szuml\;/ß/g'`
    		DETAILS=`grep 'class=\"data\ track".*' -m1 -A4 $TMPFILE | sed -e 's/<[^>]*>//g' -e s/\&nbsp\;/\ /g `
    		if [ "$BLACKLIST" == "YES" ]; then
    			if [ "$AUTOBLACKLIST" != "" ]; then
    				BLACK=`grep -i "$AUTOBLACKLIST" $TMPFILE`
    				if [ "$BLACK" != "" ]; then
    					ISBLACK=Ja
    				fi
    			fi
    		fi		
    	fi;	
    	rm $TMPFILE
    fi;
    }
    
    function SCHWEIZ {
    SNUM=`echo $NUMMER | sed -e "s/^+${CC[$CINDEX]}/${NAC[$CINDEX]}/"`
    wget -q --tries=3 --timeout=5 -O $TMPFILE "http://tel.search.ch/result.html?name=&misc=&strasse=&ort=&kanton=&tel=$SNUM"
    NAME=`grep 'class=\"rname\".*' -m1 $TMPFILE | sed -e s/^.*\"rname\"\>//g -e s/\<'\/'a\>.*//g -e s/^.*\>//`
    if [ "$NAME" != "" ]; then
    	DETAILS=`grep 'class=\"raddr\".*' -m1 $TMPFILE | sed -e s/^.*\"raddr\"\>//g -e s/\<'\/'div\>.*//g -e s/\<span.*addrpart\"\>//g -e s/\<'\/'span\>//g`	
    	STRA=`echo $DETAILS | cut -d "," -f 1`
    	ORT=`echo $DETAILS | cut -d "," -f 2`
    	DETAILS="$STRA, ${LAND[$CINDEX]} $ORT"
    fi
    rm $TMPFILE
    }
    
    function OESTERREICH {
    SNUM=`echo $NUMMER | sed -e "s/^+${CC[$CINDEX]}/${NAC[$CINDEX]}/"`
    
    #Variante fÃ&#188;r Lynx, nicht weiter verfolgt (Dunp-Datei ist nicht zum HTML von wget/curl) kompatibel)
    #echo "pc=in&suchmaske=_einfach&aktion=suchein&loga=&selsort=&AktuelleSeite=0&blaettern=_einfach$SNUM&wen=&was=&wo=&karte=nichtanzeigen&telnummer=$SNUM" | \
    #lynx -dump -nolist -force_html -post_data "http://www.tb-online.at/index.php" > $TMPFILE
    
    #Variante mit wget
    wget -q --tries=3 --timeout=5 --post-data="pc=in&suchmaske=_einfach&aktion=suchein&loga=&selsort=&AktuelleSeite=0&blaettern=_einfach$SNUM&wen=&was=&wo=&karte=nichtanzeigen&telnummer=$SNUM" -O $TMPFILE "http://www.tb-online.at/index.php"
    
    
    #Variante mit curl
    #curl -s -d "pc=in&suchmaske=_einfach&aktion=suchein&loga=&selsort=&AktuelleSeite=0&blaettern=_einfach$SNUM&wen=&was=&wo=&karte=nichtanzeigen&telnummer=$SNUM" http://www.tb-online.at/index.php > $TMPFILE
    NAME=`grep 'class=\"name\".*' -m1 $TMPFILE | sed -e s/^.*\"name\"\>//g -e s/\<'\/'p\>.*//g`
    if [ "$NAME" != "" ]; then
    	DETAILS=`grep 'class=\"name\".*' -m1 -A1 $TMPFILE | sed -e s/^.*\"name\"\>.*//g -e s/\<p\ class\=\"telnummer\".*//g -e s/\<'\/'p\>/\|/g -e s/\<p\>//g -e s/\&nbsp\;/\ /g`
    	STRA=`echo $DETAILS | cut -d '|' -f 1`
    	ORT=`echo $DETAILS | cut -d '|' -f 2`
    	DETAILS="$STRA, ${LAND[$CINDEX]}$ORT"
    fi
    rm $TMPFILE
    }  
    
    function LUXEMBURG {
    SNUM=`echo $NUMMER | sed -e "s/^+${CC[$CINDEX]}/${NAC[$CINDEX]}/"`
    wget -q --tries=3 --timeout=5 -O $TMPFILE "http://www.editustel.lu/luxweb/neosearchAT.do?input=$SNUM&imageField.x=47&imageField.y=15&lan=AL&sessionKey=6DPill4msv5kzCdRPsmymxI"
    TEMP=`grep 'class=\"raisSoc\".*' -m1 $TMPFILE | sed -e s/^.*\"raisSoc\".*\<span\>\<strong\>//g -e s/\<'\/'div\>.*//`
    NAME="`echo $TEMP | cut -d '<' -f 1 | cut -d ' ' -f 2 ` `echo $TEMP | cut -d '<' -f 1 | cut -d ' ' -f 1 `"
    if [ "$NAME" != "" ]; then
    	STRA=`echo $TEMP | cut -d '>' -f 3 | sed -e s/\<.*//`
    	ORT=`echo $TEMP | cut -d '>' -f 4 | sed -e s/\<.*// -e s/\&nbsp\;/\ /g -e s/^L\-//`
    	DETAILS="$STRA, ${LAND[$CINDEX]} $ORT"
    fi
    rm $TMPFILE
    }
    
    function USA {
    SNUM=`echo $NUMMER | sed -e "s/^+${CC[$CINDEX]}//"`
    NPA=${SNUM:0:3}
    SN=${SNUM:3}
    wget -q --tries=3 --timeout=5 -O $TMPFILE "http://www.anywho.com/qry/wp_rl/?npa=$NPA&telephone=$SN"
    TEMP=`grep 'Reverse Telephone.*' -m1 -A 12 $TMPFILE | tr '\n' ' '`
    if [ "$TEMP" != "" ]; then
    	NAME=`echo $TEMP |  sed -e s/^.*\<B\>// -e s/\<'\/'B\>.*//`
    	NAME="`echo $NAME | cut -d ',' -f 2 | sed -e s/^\ //` `echo $NAME | cut -d ',' -f 1`"
    	STRA=`echo $TEMP | sed -e s/^.*\-\-\>\ // | cut -d '<' -f 1`
    	ORT=`echo $TEMP | sed -e s/^.*\-\-\>\ // | cut -d '<' -f 2 | sed -e s/.*\>\ //`
    	DETAILS="$STRA, ${LAND[$CINDEX]} $ORT"
    fi
    rm $TMPFILE
    }
    
    
    function KANADA {
    SNUM=`echo $NUMMER | sed -e "s/^+${CC[$CINDEX]}//"`
    # Private EintrÃ&#164;ge
    wget -q --tries=3 --timeout=5 -U 'Mozilla/5.0 (Windows; U; Windows NT 5.0; de; rv:1.8.1.7) Gecko/20070914 Firefox/2.0.0.7' -O $TMPFILE "http://411ca.whitepages.com/search/ReversePhone?phone=$SNUM"
    TEMP=`grep 'div class=\"name\"*' -m1 -A 2 $TMPFILE |  tr '\n' ' ' `
    if [ "$TEMP" != "" ]; then
    	NAME=`echo $TEMP | sed -e s/.*left\;\"\>// -e s/\<'\/'div\>\ \<div.*// -e s/amp\;//`
    	NAME="`echo $NAME | cut -d ',' -f 2| sed -e s/^\ // ` `echo $NAME | cut -d ',' -f 1`"
    	STRA=`echo $TEMP | sed -e s/.*\;\"// |cut -d '<' -f 1` 
    	ORT=`echo $TEMP | sed -e s/.*\;\"// |cut -d '<' -f 2 | sed -e s/.*\>//`	
    	DETAILS="$STRA, ${LAND[$CINDEX]} $ORT"
    else
    	#Business-EintrÃ&#164;ge
    	wget -q --tries=3 --timeout=5 -U 'Mozilla/5.0 (Windows; U; Windows NT 5.0; de; rv:1.8.1.7) Gecko/20070914 Firefox/2.0.0.7' -O $TMPFILE "http://www.411.ca/websearchservlet?lang=eng&click411=null&canoe=null&combined=$SNUM&sessionId=10DCC8A126531A74FCD5FE0D32478080&qid=1004552341838772480&tid=NEW_SEARCH"
    	NAME=`grep 'class=\"cabecera\"' -m1 -A 2 $TMPFILE |  tr '\n' ' ' | sed -e s/.*\<b\>// -e s/\<'\/'b\>.*//g`
    	if [ "$NAME" != "" ]; then
    		STRA=`grep 'span class=\"cabecera\"' -m1 $TMPFILE | sed -e s/.*cabecera\"\>// -e s/\<'\/'span\>.*// -e s/\,\&nbsp\;//g`
    		ORT=`grep 'span class=\"cabecera\"' -m2 $TMPFILE |  tr '\n' ' ' | sed -e s/.*cabecera\"\>// -e s/\<'\/'span\>.*//g` 
    		DETAILS="$STRA, ${LAND[$CINDEX]} $ORT"
    	fi
    fi
    rm $TMPFILE
    }
    
    function FRANKREICH {
    SNUM=`echo $NUMMER | sed -e "s/^+${CC[$CINDEX]}/${NAC[$CINDEX]}/"`
    wget -q --tries=3 --timeout=5 --post-data="actionForwardName=reponseINV&numeroTelephone=$SNUM" -O $TMPFILE "http://www.pagesjaunes.fr/quidonc/aquiestcenumero.do;jsessionid=8005631F6C26F75B86616A34ABE46121.yas41f"
    NAME=`grep 'N4_bloc_parution_raison' -m1 $TMPFILE | sed -e s/.*N4_bloc_parution_raison\ sclear\"\>// -e s/\<'\/'h5\>.*// -e s/\ *$//`
    if [ "$NAME" != "" ]; then
    	TEMP=`grep 'N5_bloc_parution_adresse' -A 3 -m1 $TMPFILE |tr '\n' ' ' | tr '\t' ' ' | sed -e s/^.*\<'\/'strong\>// -e s/\<'\/'p\>.*// -e s/^\ *//`
    	STRA=""
    	ORT=""
    	SO="0"
    	set -- $TEMP
    	for items in $@
    	do   
    		T1=`echo $items | sed -e s/^[0-9][0-9][0-9][0-9][0-9]$//`
    		if [ "$items" != "$T1" ]; then
    			SO="1"
    		fi
    		if [ "$SO" == "0" ]; then
    			STRA="$STRA $items"
    		else
    			ORT="$ORT $items"
    		fi
    	done
    	STRA=${STRA:1}
    	DETAILS="$STRA, ${LAND[$CINDEX]}$ORT"
    fi
    rm $TMPFILE
    }
    
    function SPANIEN {
    SNUM=`echo $NUMMER | sed -e "s/^+${CC[$CINDEX]}/${NAC[$CINDEX]}/"`
    TEMP=`$SE/spanien.php $SNUM`
    NAME=`echo $TEMP | cut -d '|' -f 1`
    STRA=`echo $TEMP | cut -d '|' -f 2`
    ORT=`echo $TEMP | cut -d '|' -f 3`
    if [ "$NAME" != "" ]; then
    	DETAILS="$STRA, ${LAND[$CINDEX]} $ORT"
    fi
    }
    
    ## Die Werte NUMMER NAME und DEATAILS in das cache schreiben
    function write_cache {
    echo "Gefunde Werte ins cache schreiben" >> $LOGFILE
    if [ "$BLACKLIST" == "YES" ]; then
    	echo -e "$NUMMER\t$NAME\t$DETAILS\t$ISBLACK" >> $CACHE
    else
    	echo -e "$NUMMER\t$NAME\t$DETAILS" >> $CACHE
    fi
    }
    
    ## Die Werte NUMMER NAME und DEATAILS aus dem cache lesen
    function read_cache {
    echo "Suche nach $NUMMER im cache" >> $LOGFILE
    NAME=`awk  -F '\t' '{ if ($1 == "'$NUMMER'") print $2 }' $CACHE`
    DETAILS=`awk  -F '\t' '{ if ($1 == "'$NUMMER'") print $3 }' $CACHE`
    if [ "$BLACKLIST" == "YES" ]; then
    	ISBLACK=`awk  -F '\t' '{ if ($1 == "'$NUMMER'") print $4 }' $CACHE`
    	if [ "$ISBLACK" == "NULL" ] ||  [ "$ISBLACK" == "" ]; then
    		ISBLACK=Nein
    	fi
    fi
    }
    
    function read_cache2 {
    echo "Suche nach $NUMMER im cache2 " >> $LOGFILE
    NAME=`awk  -F '\t' '{ if ($1 == "'$NUMMER'") print $2 }' $CACHE2`
    DETAILS=`awk  -F '\t' '{ if ($1 == "'$NUMMER'") print $3 }' $CACHE2`
    if [ "$BLACKLIST" == "YES" ]; then
    	ISBLACK=`awk  -F '\t' '{ if ($1 == "'$NUMMER'") print $4 }' $CACHE2`
            if [ "$ISBLACK" == "NULL" ] ||  [ "$ISBLACK" == "" ]; then
                    ISBLACK=Nein
            fi
    fi
    }
    
    
    ## Die Werte DETAILS, NAME, NUMMER, platzhalter in eine sqlite3 DB schreiben
    function sq3_write {
    echo "Gefunde Werte in die SQL3-DB schreiben" >> $LOGFILE
    #echo -e "$NUMMER\t$NAME\t$DETAILS" >> $CACHE
    $SQLBIN $DB <<SQL_ENTRY_TAG_1
    if [ "$BLACKLIST" == "YES" ]; then
    INSERT 
    INTO dasoertliche
    values ('$AFELD','$DETAILS','$NAME','$NUMMER','$VBOX','$ISBLACK');
    else
    INSERT 
    INTO dasoertliche
    values ('$AFELD','$DETAILS','$NAME','$NUMMER','$VBOX');
    fi
    SQL_ENTRY_TAG_1
    }
    
    ## Die Werte DEATAILS, NAME aus einer sqlite3 DB lesen
    function sq3_read {
    echo "Suche nach $NUMMER in SQL3-DB" >> $LOGFILE
    $SQLBIN $DB "SELECT NAME FROM dasoertliche WHERE NUMBER='${NUMMER}'" | ( while read NAME ; do echo $NAME > $SQL_NAME_CACHE; done )
    $SQLBIN $DB "SELECT DETAILS FROM dasoertliche WHERE NUMBER='${NUMMER}'" | ( while read DETAILS ; do echo $DETAILS > $SQL_DETAILS_CACHE; done )
    NAME=`cat $SQL_NAME_CACHE`
    DETAILS=`cat $SQL_DETAILS_CACHE`
    if [ "$BLACKLIST" == "YES" ]; then
    	$SQLBIN $DB "SELECT BLACK FROM dasoertliche WHERE NUMBER='${NUMMER}'" | ( while read BLACK ; do echo $BLACK > $SQL_BLACK_CACHE; done )
    	ISBLACK=`cat $SQL_BLACK_CACHE`
            if [ "$ISBLACK" == "NULL" ] ||  [ "$ISBLACK" == "" ]; then
                    ISBLACK=Nein
            fi
    	rm $SQL_BLACK_CACHE
    fi
    rm $SQL_NAME_CACHE
    rm $SQL_DETAILS_CACHE
    }
    
    ## Die Werte DETAILS, NAME, NUMMER, platzhalter in eine MYSQL- DB schreiben
    function mysql_write {
    echo "Gefunde Werte in die MYSQL-DB schreiben" >> $LOGFILE
    if [ "$BLACKLIST" == "YES" ]; then
    	echo "insert ignore into $CACHETAB(nummer,name,details,black) values ('$NUMMER','$NAME','$DETAILS','$ISBLACK')" | mysql -h$MYSQLHOST -u$MYSQLUSER -p$MYSQLPASS $MYSQLDB
    else
    	echo "insert ignore into $CACHETAB(nummer,name,details) values ('$NUMMER','$NAME','$DETAILS')" | mysql -h$MYSQLHOST -u$MYSQLUSER -p$MYSQLPASS $MYSQLDB
    fi
    }
    
    
    ## Die Werte DETAILS, NAME, NUMMER, platzhalter aus einer MYSQL- DB lesen
    function mysql_read {
    echo "Suche nach $NUMMER in MYSQL-DB" >> $LOGFILE
    if [ "$BLACKLIST" == "YES" ]; then
    	TEMP=`mysql -h$MYSQLHOST -u$MYSQLUSER -p$MYSQLPASS $MYSQLDB --execute="select concat(name,'|',details,'|',black) from $CACHETAB where nummer='$NUMMER'" | \
    	                tail -n +2 | tr '\t' '|'`
    else
    	TEMP=`mysql -h$MYSQLHOST -u$MYSQLUSER -p$MYSQLPASS $MYSQLDB --execute="select concat(name,'|',details) from $CACHETAB where nummer='$NUMMER'" | \
    	                tail -n +2 | tr '\t' '|'`
    fi	          
    if [ "$TEMP" != "" ]; then
    	NAME=`echo $TEMP | cut -d '|' -f 1`
    	DETAILS=`echo $TEMP | cut -d '|' -f 2`
    	if [ "$BLACKLIST" == "YES" ]; then
    		ISBLACK=`echo $TEMP | cut -d '|' -f 3`
    	        if [ "$ISBLACK" == "NULL" ] ||  [ "$ISBLACK" == "" ]; then
            	        ISBLACK=Nein
    	        fi
    	fi
    fi
    }
    
    ## Die Werte DETAILS, NAME, NUMMER, platzhalter in eine PGSQL- DB schreiben
    function pgsql_write {
      echo "Gefunde Werte in die PGSQL-DB schreiben" >> $LOGFILE
      if [ "$BLACKLIST" == "YES" ]; then
    	psql -h$PGSQLHOST -U$PGSQLUSER -p$PGSQLPORT $PGSQLDB -t -c "insert into $CACHETAB(nummer,name,details,black) values ('$NUMMER','$NAME','$DETAILS','$ISBLACK')" 
      else
      	psql -h$PGSQLHOST -U$PGSQLUSER -p$PGSQLPORT $PGSQLDB -t -c "insert into $CACHETAB(nummer,name,details) values ('$NUMMER','$NAME','$DETAILS')" 
      fi
    }
    
    ## Die Werte DETAILS, NAME, NUMMER, platzhalter aus einer PGSQL- DB lesen
    function pgsql_read {
      echo "Suche nach $NUMMER in PGSQL-DB" >> $LOGFILE
      if [ "$BLACKLIST" == "YES" ]; then
      	TEMP=`psql -h$PGSQLHOST -U$PGSQLUSER -p$PGSQLPORT $PGSQLDB -t -c "select name,details,black from $CACHETAB where nummer='$NUMMER'"`
      else
      	TEMP=`psql -h$PGSQLHOST -U$PGSQLUSER -p$PGSQLPORT $PGSQLDB -t -c "select name,details from $CACHETAB where nummer='$NUMMER'"`
      fi
      if [ "$TEMP" != "" ]; then
    	  NAME=`echo $TEMP | cut -d '|' -f 1`
    	  DETAILS=`echo $TEMP | cut -d '|' -f 2`
    	  if [ "$BLACKLIST" == "YES" ]; then
    		ISBLACK=`echo $TEMP | cut -d '|' -f 3`
    	        if [ "$ISBLACK" == "NULL" ] ||  [ "$ISBLACK" == "" ]; then
            	        ISBLACK=Nein
    	        fi
    	  fi
      fi
    }
    
    ## Anrufliste_log 
    # wunsch von kombjuder
    function anruf_log {
    if [ -e $ALPFAD/$ALFILE ]; then
    	   echo "Anruf.log ($ALFILE) erstellt" >> $LOGFILE
    		echo "$ALDATE - $ALTIME - $NUMMER - $NAME - $DETAILS" >> $ALPFAD/$ALFILE
    	else
    		echo "bestehendes Anruf.log ($ALFILE) verwendet" >> $LOGFILE
    		echo "$ALDATE - $ALTIME - $NUMMER - $NAME - $DETAILS" > $ALPFAD/$ALFILE
    fi
    }
    
    
    ## Anrufliste_log in DB 
    function anruf_log_db {
    if [ "$LOGDB" == "MYSQL" ]; then
    	echo "insert ignore into $LOGTAB (nummer,destination) values ('$NUMMER','$DEST')" | mysql -h$MYSQLHOST -u$MYSQLUSER -p$MYSQLPASS $MYSQLDB
    fi
    if [ "$LOGDB" == "PGSQL" ]; then
    	psql -h$PGSQLHOST -U$PGSQLUSER -p$PGSQLPORT $PGSQLDB -t -c "insert into $LOGTAB(nummer,destination) values ('$NUMMER','$DEST')" 
    fi
    }
    
    
    ## OSD Mitteilung an den VDR per "svdrpsend.pl"
    ## im svdrpsend.pl script wirde "localhost" durch die VDR-IP ersetzt
    function osdvdr {
    svdrpsend.pl "mesg ANRUF: $NAME $NUM"
    svdrpsend.pl "mesg $DETAILS"
    }
    
    ## LONGNAME an die Asterisk uebergeben
    function asterisk {
    echo 'SET VARIABLE LONGNAME '"\"$NAME\"" >/dev/stdout
    # FÃ&#188;r mein Fax-Script wird auch Details zurÃ&#188;ckgeschrieben
    echo 'SET VARIABLE LONGDETAILS '"\"$DETAILS\"" >/dev/stdout
    #falls BLACKLISTING-Funktionalitaet gesetzt, dieses auch zuückgeben
    if [ "$BLACKLIST" == "YES" ]; then
    	echo 'SET VARIABLE BLACK '"\"$ISBLACK\"" >/dev/stdout
    fi
    }
    
    ## Mailbenachrichtigung über gmail absetzen
    function jabber {
    	TEMP=`$SP/sendmessage.php $JUSER $JPASS $JMAIL "$JTEXT"`
    	if [ "$TEMP" == "OK" ]; then
    		echo "Anrufnachricht erfolgreich versendet" >> $LOGFILE
    	fi
    }
    
    ######################
    #####################
    ####################
    #
    #  Funktionen ende
    #
    ###################
    ####################
    #####################
    
    if [ -e $LOGFILE ]; then
    	rm $LOGFILE
    fi
    touch $LOGFILE
    
    echo "-----------------------------------------------------" >> $LOGFILE
    echo "Logfile Reverssuche vom $DATE" >> $LOGFILE
    echo "-----------------------------------------------------" >> $LOGFILE
    echo "" >> $LOGFILE
    
    # Pruefen ob eine Nummer uebermittelt wurde (nur reine Ziffernfolge und +)
    TEST=`echo $NUMMER | sed -e s/[\+0-9]//g` 
    if [ "$TEST" != "" ] || [ "$NUMMER" == "" ] ; then
    	echo "Keine Rufnummer uebermittelt" >> $LOGFILE
    	NAME="geheim"
    	asterisk
    	exit 0
    fi
    
    #Initialisieren
    if [ "$BLACKLIST" == "YES" ]; then
    	ISBLACK=Nein
    fi
    
    echo "Suchen nach Nummer $NUMMER" >> $LOGFILE
    
    #Wenn Parameter von MYSQL, dann Parameter lesen
    if [ "$PARAMS" = "MYSQL" ]; then
    	MYSQL_params
    fi
    if [ "$PARAMS" = "PGSQL" ]; then
    	PGSQL_params
    fi
    
    # Nummer normalisieren und anschlieÃ?end im Cache suche
    echo "Nummer Normalisieren " >> $LOGFILE
    normalisierung
    
    if [ "$SPEICHERORT" == "SQL3" ]; then
    	echo "SQLite-DB gewaehlt" >> $LOGFILE
    	sq3_read
    elif [ "$SPEICHERORT" == "CACHE" ]; then
    	echo "Cache-File gewaehlt" >> $LOGFILE
    	#CACHE-File erzeugen
    	if [ -e $CACHE ]; then
    	   echo "Cache-File vorhanden" >> $LOGFILE
    	else
    	   touch $CACHE
    	   echo "Cache-File erstellen" > $LOGFILE
    	fi
    	read_cache
    	if [ "$USE_CACHE2" == "YES" ]; then
    		read_cache2
    	fi
    elif [ "$SPEICHERORT" == "MYSQL" ]; then
    	echo "MYSQL-DB gewaehlt" >> $LOGFILE
    	mysql_read
    elif [ "$SPEICHERORT" == "PGSQL" ]; then
    	echo "PGSQL-DB gewaehlt" >> $LOGFILE
    	pgsql_read
    fi
    
    # Wenn im Cache nichts steht wird ueber eine passende I-Net Seite gesucht
    if [ "$NAME" == "" ]; then
            echo "Cache hat keinen passenden Eintrag" >> $LOGFILE
    	if [ "$PARAMS" == "MYSQL" ]; then
    		check_land_mysql
    	elif [ "$PARAMS" == "PGSQL" ]; then
    		check_land_pgsql
    	elif [ ""=="" ]; then 
    		check_land
    	fi
    	if [ $CINDEX -ne -1 ]; then
    		echo "I-Net Reverssuche in " $COUNTRY >> $LOGFILE
    		${LAND[$CINDEX]}
    	        NAME=`echo $NAME| sed 's/\r//g'`	
                    DETAILS=`echo $DETAILS| sed 's/\r//g'`
    		if [ "$RESET_UML" == 1 ]; then
    			NAME=`echo $NAME| sed 's/ö/oe/g;s/ü/ue/g;s/ä/ae/g;s/ß/ss/g;s/Ö/Oe/g;s/Ü/Ue/g;s/Ä/Ae/g'`
    			DETAILS=`echo $DETAILS| sed 's/ö/oe/g;s/ü/ue/g;s/ä/ae/g;s/ß/ss/g;s/Ö/Oe/g;s/Ü/Ue/g;s/Ä/Ae/g'`
    		fi
                    echo " Name: $NAME   DETAILS: $DETAILS per I-Net gefunden" >> $LOGFILE
    	fi
     else
     	echo "Wert im Cache gefunden" >> $LOGFILE
    	CACHETRUE=1
    	echo "CACHETRUE auf 1 gesetzt" >> $LOGFILE
    	echo " Name: $NAME   DETAILS: $DETAILS" >> $LOGFILE
    fi
    
    
    # Wenn dasOertliche.de nichts findet NAME und DETAILS fÃ?Â&#188;llen
    if [ "$NAME" == "" ]; then
    	if [ $CINDEX -ne -1 ]; then
    		echo "Reverssuche in " $COUNTRY " gab keinen Treffer" >> $LOGFILE
    	fi
    	if [ "$PARAMS" == "MYSQL" ] && [ "$EXTDESC" != "" ]; then
    		NAME="kein Eintrag"
    		DETAILS=$EXTDESC
    		echo "Werte mit gefundener Extension fuer Name: $NAME und Details: $DETAILS" >> $LOGFILE
    	else 
    		NAME="kein Eintrag"
    		DETAILS="keine Adresse"
    		echo "Standartwerte fuer Name: $NAME und Details: $DETAILS" >> $LOGFILE
    	fi
    fi
    
    
    if [ "$CACHETRUE" == 0 ]; then
    	echo "Werte in den Cache schreiben" >> $LOGFILE
    	if [ "$SPEICHERORT" == "SQL3" ]; then
            echo "SQLite-DB gewaehlt" >> $LOGFILE
    		sq3_write
    	elif [ "$SPEICHERORT" == "CACHE" ]; then
            echo "Cache-File gewaehlt" >> $LOGFILE
    		write_cache
    	elif [ "$SPEICHERORT" == "MYSQL" ]; then
            echo "MYSQL-DB gewaehlt" >> $LOGFILE
    		mysql_write
    	elif [ "$SPEICHERORT" == "PGSQL" ]; then
            echo "PGSQL-DB gewaehlt" >> $LOGFILE
    		pgsql_write
    	fi
    fi
    
    echo "Variable fuer Asterisk setzen" >> $LOGFILE
    asterisk
    
    if [ "$VDR" == 1 ];then
    	echo "VDR-OSD ansteuern" >> $LOGFILE
    	osdvdr
    fi
    
    echo "Anruflog="$ALYES >> $LOGFILE
    if [ "$ALYES" == 1 ]; then
    	anruf_log
    	echo "Werte in Anruflog schreiben" >> $LOGFILE
    	if [ "$LOGDB" != "0" ]; then
    		anruf_log_db;
    	fi
    else
    	echo "Anruflog ausgeschaltet" >> $LOGFILE
    fi
    
    if [ "$JABBER" == "1" ]; then
    	echo "Anrufnachricht versenden" >> $LOGFILE
    	jabber
    fi
    wenn ich es über die Console aufrufe immer noch des selbe....
    /var/lib/asterisk/agi-bin# ./ast_revers.agi 03320358134
    SET VARIABLE LONGNAME "kein Eintrag"
    SET VARIABLE LONGDETAILS "Deutschland Kleinmachnow"

    mir gehn die ideen aus

    MfG Nikon

  14. #114
    IPPF-Einsteiger
    Registriert seit
    28.01.2007
    Beiträge
    5
    Hab grade noch mal was getestet das script zieht die daten von das Örtliche nur bei eingekürzten nummer gibts Problem....

    Hab das TEMP file mal gesichert ....... hier mal nur der relevante
    Code:
    			<div class="nummer">
    				&nbsp;(03 32 03) 5 81-0<br/>
    		           				&nbsp;<br/>
    		           				<a href="" onclick="javascript:window.open('http://www1.dasoertliche.de/?form_name=freecall_loading&fcID=1222001399179106165720&service=std&c4allHost=http://ecs.c4all.net/dasoertliche/&orgin='+encodeURIComponent('%0Dq%1D%F0%F4%1E%25%08%04%2C%DA%EDv%92%BC%94Y%18%89%E2it%3B%9E-%BA%3C%B0%08%60%B2%F8%3C%A4APMkA%3A%3C%12%B9%5E%C9%80O%CF%60%8E%7E%989%D8l%A2%91%82%22%B0%3BV%C7%7D%82X%F3%D9%E7%12%C6%EFA%AE%3D%248%B2%11%C7%06%7F%94%98re%29%F7%A4Z%94%24f%C0%13%B6%B5%1E%FDZ%3C%D4%BBcr%5B%09%3C%97%C8+%CBfDl%3A%C1%28-%F9%FD%5B%85VO%05%3D%BE%B8%8A%0AI%F1%ACR%B1z*A%FF%3D%A9%DC%1F%CC%B2P%B9D8%88%A5%B2%0F%9D%DE%02.F%07%0CnY%91%3E%1F%E4%7E%E8%9F%D3v%00B%DF%F9%EB%21%B5%BD%01%90AN%AD%F1%88%98%5B%89%0D%1C%FB%11fs%B9%B1%BF%DF%9B%24%BD%D8I%A3%3F%06')+'&showAd=true&book=1222&kw=&verl=161&na=' + escape('Wasser- und Schifffahrtsdirektion Ost Berufsbildungszentrum Kleinmachnow') + '&phv=&ph=(03 32 03) 5 81-0','BCS','width=780,height=600,menubar=no,status=no,toolbar=no,resizable=no');; return false;" class="btn_freecall_normal"></a>
    
                    </div>
    			<div class="zusatz">
    								<div class="zusatz">
    
    </div>
                                		
    </div>
    						<script language="javascript">
    
    // alert("NA:" + 'Wasser- und Schifffahrtsdirektion Ost Berufsbildungszentrum Kleinmachnow');
    var data = {id : "1222001399179106165720", 
    	    	pc: "14532", 
    	    	ci: "Kleinmachnow", 
    	    	na: "Wasser- und Schifffahrtsdirektion Ost Berufsbildungszentrum Kleinmachnow", 
    		    st: "Stahnsdorfer Damm%201",
    		    bi: "1222"};
    var custom = {previews : [],
    thumbnails : [],
    addText : "type=infotext&text=",
    moreButton: false};
    $v$.itemHandler.addItem (data,custom);
    </script>
    </div>
    Hoffe das es was bringt

    und das ist die Consolen ausgabe.....


    /var/lib/asterisk/agi-bin# ./ast_revers.agi 03320358134 SET VARIABLE LONGNAME "kein Eintrag"
    SET VARIABLE LONGDETAILS "Deutschland Kleinmachnow"

  15. #115
    IPPF-Fünfhundert-Club Avatar von abw1oim
    Registriert seit
    26.03.2007
    Ort
    Bonn
    Beiträge
    537
    Nächster Versuch, hat in Deinem Beispiel jetzt funktioniert, ohne meinen anderen Testfall abzuschießen:

    Code:
    function oertliches  {
    wget -q --tries=3 --timeout=5 -O $TMPFILE "http://www1.dasoertliche.de/?form_name=search_inv&ph=$SNUM"
    NAME=`grep 'class=\"counter.*' -m1 -A1 $TMPFILE |  sed '/\"counter/d;s/<a .* onMouseOut//;s/<.*$//;s/^.*>//'`
    DETAILS=`grep 'class=\"counter.*' -m1 -A5 $TMPFILE | sed '/\"counter/,+4d;s/^[ \t]*//g;s/\&nbsp\;/ /g;s/<\/.*$//'`
    if [ "$BLACKLIST" == "YES" ]; then
            if [ "$AUTOBLACKLIST" != "" ]; then
                    BLACK=`grep -i "$AUTOBLACKLIST" $TMPFILE`
                    if [ "$BLACK" != "" ]; then
                            ISBLACK=Ja
                    fi
            fi
    fi
    rm $TMPFILE
    }
    Im Ursprung von mir war unabhängig vom jetzt geänderten sed noch ein Fehler mit der direkte Angabe des Filenamens statt Nutzung der entsprechenden Variablen.

    Wünsche Gutes Gelingen!
    Anbindung: VDSL2 50MBit
    VOIP-Provider: div. Betamax, dus.net, sipgate.de u.a.
    Router: Lancom 1722 FW 8.50
    Telefone: SX255-ISDN, S685IP, AAstra 57i, Nokia E65, X-Lite
    OS: openSuSE 11.4 - x86_64 Kernel 2.6.37
    HW: AMD Phenom 9350e
    PBX: Asterisk 1.8.17,iaxmodem 1.2.0, HylaFax+ 5.5.2

  16. #116
    IPPF-Einsteiger
    Registriert seit
    28.01.2007
    Beiträge
    5
    Hallo abw1oim Du bist der beste jetzt läuft das Script wieder wie es soll.

    Vielen Dank.

    MfG Nikon

  17. #117
    IPPF-Einsteiger
    Registriert seit
    12.12.2007
    Beiträge
    1
    Hallo zusammen,

    habt ihr bereits bemerkt, dass sich der Seitenaufbau von http://www.dasoertliche.de/ geändert hat? Ich habe sed leicht abgeändert und bei bei mir läuft's.

    Code:
    NAME=`grep 'class=\"counter c01.*' -m1 $TMPFILE |  sed 's/.*<a .* onMouseOut//;s/<.*$//;s/^.*>//'`
    DETAILS=`grep 'class=\"counter c01.*' -m1 $TMPFILE | sed 's/.*<div class=\"strasse\">//;s/<\/.*$//;s/\&nbsp\;/ /g'`
    HTH Thomas

  18. #118
    IPPF-Aufsteiger
    Registriert seit
    11.01.2008
    Beiträge
    46
    Hallo praesepe.

    Vielen Dank für deine Info, leider funktioniert deine Änderung bei mir nicht.
    --
    kasper-ls

  19. #119
    IPPF-Fünfhundert-Club Avatar von abw1oim
    Registriert seit
    26.03.2007
    Ort
    Bonn
    Beiträge
    537
    @kasper-ls und andere:

    Folgendes sollte funktionieren und ist gegenüber der letzten Fassung nur minimal angepasst:

    Code:
    NAME=`grep 'class=\"counter.*' -m1 -A1 $TMPFILE |  sed '/\"counter/d;s/<a .* onMouseOut//;s/<.*$//;s/^.*>//'`
    DETAILS=`grep 'class=\"counter.*' -m1 -A4 $TMPFILE | sed '/\"counter/,+3d;s/^[ \t]*//g;s/\&nbsp\;/ /g;s/<\/.*$//'`
    (Geänderte Stellen gegenüber letzter Fassung fett markiert)

    Probier mal, ob das bei Dir auch funktioniert
    Anbindung: VDSL2 50MBit
    VOIP-Provider: div. Betamax, dus.net, sipgate.de u.a.
    Router: Lancom 1722 FW 8.50
    Telefone: SX255-ISDN, S685IP, AAstra 57i, Nokia E65, X-Lite
    OS: openSuSE 11.4 - x86_64 Kernel 2.6.37
    HW: AMD Phenom 9350e
    PBX: Asterisk 1.8.17,iaxmodem 1.2.0, HylaFax+ 5.5.2

  20. #120
    IPPF-Aufsteiger
    Registriert seit
    27.09.2005
    Ort
    Altenkirchen / WW
    Beiträge
    44
    Hallo zusammen,

    ich habe das Script auf einer Trixbox mit Asterisk 1.6 installiert.

    Auf der Konsole läuft es gut.
    Ich bekomme es nur nicht in der extensions.conf ans laufen.

    Hat es schon einer hin bekommen oder kann mir helfen?

    Hier sollte der Code für das agi rein, nur wie?:

    Code:
    exten => s,1,GotoIf($["${MOHCLASS}" = ""]?dial)
    exten => s,n,SetMusicOnHold(${MOHCLASS})
    exten => s,n(dial),AGI(dialparties.agi)
    exten => s,n,NoOp(Returned from dialparties with no extensions to call and DIALSTATUS: ${DIALSTATUS})
    Edit:

    Es geht nun...


    Danke
    Stefan
    Geändert von snaker (24.06.2009 um 07:51 Uhr)

    Router: Cisco 836 Pix 501
    DSL-Modem: Cisco 836
    ISP: DSL 6Mbit 1und1
    PBX: Trixbox 2.8
    Endgeräte: VOIP: 4X Snom 360 1X Nokia E60
    Anbindung: ISDN Patton SmartNode SN4638

Seite 6 von 10 ErsteErste ... 2345678910 LetzteLetzte

Ähnliche Themen

  1. Neues Script zum Setzen von Rufumleitungen
    Von joesy23 im Forum FRITZ!Box Fon: Modifikationen
    Antworten: 1
    Letzter Beitrag: 14.07.2011, 14:38
  2. [erledigt] DasOertliche-Rückwärtssuche auf FBF 7170 ?
    Von nevermore im Forum FRITZ!Box Fon: Modifikationen
    Antworten: 8
    Letzter Beitrag: 31.12.2009, 16:41
  3. Neues Script - Neue Labor-Firmware
    Von Ernest015 im Forum Speedport2Fritz
    Antworten: 2
    Letzter Beitrag: 12.09.2008, 19:58
  4. Suche Script um mit Klicktel Rückwärtssuche durchzuführen
    Von Frank online im Forum FRITZ!Box Fon: Modifikationen
    Antworten: 9
    Letzter Beitrag: 12.06.2008, 20:10
  5. Rückwärtssuche bei dasoertliche.de
    Von pbx-stefan im Forum Asterisk Skripte
    Antworten: 2
    Letzter Beitrag: 13.12.2006, 20:43

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •