CallerID mit AGI an VDR per Telnet übermitteln

Irgendwo scheint es noch zu klemmen. Zwar behält Asterisk jetzt den Namen aus dem LDAP-Server aber wenn zur Mobil-Nummer kein Eintrag gefunden wird, wird der Anruf immer noch nicht weitergereicht. Der letzte Eintrag der Asterisk-Konsole ist der Aufruf des php-Skripts.
 
Das sollte eigentlich nicht mehr passieren. Bei meinen Tests mit meinem Handy hat es wunderbar funktioniert. Mach im Skript mal $debug = 1 und maile mir reverse.log an die im Skript angegebene Adresse.

Gruss,
Sachmet.
 
Hallo ihr,

ich beschäftige mich seid ein paar tagen mit Asterisk. (Das ist ja ne super Sache).

Ich möchte jetzt auch eine Inverssuche einbinden. Ich habe mir das Script aus diesem Thread eingerichtet. Doch leider funktioniert die Abfrage bei dasoertliche.de nicht. Wenn ich in dem Cache-File die Einträge von hand vornehme klappt alles.

Ich habe mir mal die Ausgaben von Lynx angeguckt und festgestellt, dass das "RTRTRTRT" wonach mit grep gesucht wird, gar nicht auftaucht. Kann das das Problem sein? Gibt es mittlerweile eine Lösung?

Danke
Heiko
 
Hallo,

ich habe noch mal weiter gesucht und aus dieversen Foren was zusammengebastellt:

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/spool/asterisk/inverssuche/invsuche_cache"

#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/0049/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 --tries=3 --timeout=5 -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`
		DETAILS=`grep ';.*<br\/>' $TMPFILE  | sed -e s/\&nbsp\;/\ /g -e s/'\n'//g -e s/'\t'//g -e s/\<br.*//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\t$DETAILS" >> $CACHE
        fi;
    fi
fi

echo -e "`date +%e.%m\ %H:%M ` $NAME " >>$LOG
echo 'SET VARIABLE LONGNAME '"\"$NAME\"" >/dev/stdout
read in

exit 0

Es scheint zu funktionieren.

Gruß
Heiko
 
Geht des bei euch, bei mir funkts nämlich nicht.
 
Schaut mal , dies hier habe ich zZt auf meinem Schreibtisch liegen - muss ich noch durchgehen, aber das wird wohl die Lösung zu diesem Problem sein :

[FONT=&quot]scheinbar wurde in den letzten 2 tagen mal wieder die webseite geändert. siehe hier http://www.ip-phone-forum.de/showthread.php?t=60980&goto=newpost[/FONT] [FONT=&quot] [/FONT]
[FONT=&quot]eine lösung wird mit sicherheit in kürze da auftauchen - von mir oder jemand anderem...[/FONT]
[FONT=&quot] [/FONT]
[FONT=&quot]- - edit - eine lösung ist schon da...[/FONT]
[FONT=&quot]
[/FONT]
[FONT=&quot]
Code:
[/FONT][/COLOR][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=2][COLOR=black][COLOR=windowtext][FONT=&quot] [/FONT][/COLOR][/COLOR][/SIZE][/FONT] 
  [FONT=Courier New][SIZE=2][COLOR=black][COLOR=windowtext][FONT=&quot]wget -q --tries=3 --timeout=5 -O $TMPFILE "[/FONT][/COLOR][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=2][COLOR=black][COLOR=windowtext][FONT=&quot][URL="http://www1.dasoertliche.de/?form_name=search_inv&ph=$NUMMER"]http://www1.dasoertliche.de/?form_name=search_inv&ph=$NUMMER[/URL][/FONT][/COLOR][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=2][COLOR=black][COLOR=windowtext][FONT=&quot]"[/FONT][/COLOR][/COLOR][/SIZE][/FONT] 
  [FONT=Courier New][SIZE=2][COLOR=black][COLOR=windowtext][FONT=&quot]        NAME=`grep 'class=\"entry\".*' $TMPFILE | sed -e s/^.*\"entry\"\>//g -e s/\<'\/'a\>.*//g`[/FONT][/COLOR][/COLOR][/SIZE][/FONT] 
  [FONT=Courier New][SIZE=2][COLOR=black][COLOR=windowtext][FONT=&quot]        DETAILS=`grep ';.*<br\/>' $TMPFILE  | sed -e s/\&nbsp\;/\ /g[/FONT][/COLOR][/COLOR][/SIZE][/FONT] 
  [FONT=Courier New][SIZE=2][COLOR=black][COLOR=windowtext][FONT=&quot]- -e s/'\n'//g -e s/'\t'//g -e s/\<br.*//g`

Grüsse, Stefan
[/FONT]
 
Hat jemand Neues zu dem reverse.agi vorliegen ?

Bei mir läuft IMHO diese Lösung auch nicht (mehr)..

Grüsse, Stefan
 
Hi
das hier funktioniert bei mir:
Code:
        wget -q --tries=3 --timeout=5 -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`
        DETAILS=`grep ';.*<br\/>' $TMPFILE  | sed -e s/\&nbsp\;/\ /g -e s/'\n'//g -e s/'\t'//g -e s/\<br.*//g`

Gruß
Thorsten
 
Hallo Thorsten,

:verdaech:

ich habe den Code gerade nochmals durchgesehen, er ist exakt derselbe den ich auch bei den ersten Versuchen gewählt hatte, nur Deiner funktioniert nun ..

Wie dem auch sei - Vielen Dank für den Schubs in die richtige Richtung !

Grüsse, Stefan
 
Gehört zwar nicht so richtig hier her, aber ich bekomme keine Meldung auf den VDR.

Wie und wo mache ich das, reicht das reverse.agi Script nicht?


Gruß
 
ich nochmal!

Ich stehe aufm Schlauch:

wie bekomme ich die angerufende Nummer (${EXTEN}) in die anrufliste_log?


Danke.


Gruß
Sammlerjaeger
 
Erfolgsmeldung in Sachen Skalierbarkeit ...

Hallo,
habens einfach mal ausprobiert und von Hand ;-) ca. 250.000 Telefonnummern aller umliegenden Städte und Dörfer in das invcache-File getippt ... Sahne ! Dachte, es gebe Verzögerungen bei der Suche durch das mehrere MBs große File, aber man merkt überhaupt nichts ! Nun weiß man bei 90% der Anrufer schon am Display, wen man gleich begrüßen darf, und wenn mal doch ein anderer dabei ist, dann machts das telefonbuch.de. Danke für das Script Thorsten G. !
Grüße

o_dapenguin
 
Hi
@ o_dapenguin: wie hast du denn die nummern eingelesen? von einer telefonbuch-cd?

gruß
thorsten
 
Hi !
Aber nein ;-) ... die Verlage sind ja daran, sich selbst den Markt kaputt zu machen, indem sie gerade das verhindern ... immer nur 15 Einträge exportieren .. . aber natürlich gibts da ja kleine quick&dirty Scripthelferlein, die auch in 15-Eintrag-Portionen eine ganze Stadt in ein Textfile bringen ... wenn man wollte ... ;-) Ich habe das natürlich NICHT so gemacht und alles abgetippt.

Gruß

o_dapenguin
 
Hallo o_dapenguin,
nur um Mal zu sehen wie ein solches Script aufgebaut sein kann, hast du einen Tip wo ich mir so etwas mal angucken kann ;)

Gruß
Heiko
 
Hi,
scheinbar hat das örtliche das format mal wieder angepasst.
Die passenden Codezeilen lauten nun:
Code:
NAME=`grep 'entry' $TMPFILE | sed -e s/\"entry\"\ \>/\!\!\!/ -e s/^.*\"entry\"\>//g -e s/\<'\/'a\>.*//g | awk -F '
DETAILS=`grep ',\&nbsp\;' $TMPFILE  | sed -e s/\&nbsp\;/\ /g -e s/\<br.*//g`

AWK und SED werden da etwas "mishandelt" - aber hauptsache es geht (SED und AWK versteh ich nicht wirklich...)

Gruß
Thorsten
 
Danke Thorsten,

das gemeine ist ja das man es eigentlich nicht wirklich merkt daß das reverse agi keine daten mehr abholt wenn man bereits einen grossen bestand an daten hat...

Ich sehne mich noch immer nach www.handynummerauskunft.de ;)

Grüsse, Stefan
 
Code:
NAME=`grep 'entry' $TMPFILE | sed -e s/\"entry\"\ \>/\!\!\!/ -e s/^.*\"entry\"\>//g -e s/\<'\/'a\>.*//g | awk -F '
DETAILS=`grep ',\&nbsp\;' $TMPFILE  | sed -e s/\&nbsp\;/\ /g -e s/\<br.*//g`


Irgendwas stimmt da noch nicht. Es kommen gar keine Daten mehr an. Wenn man den Abschnitt zB mit Notepad++ mit Syntaxfarben ansieht, ist auch alles einfarbig.
Ich habe das letzte ' (Hochkomma) durch ein ` (Rückwärtsapostroph, oder wie man das nennt) ersetzt. Oder müsste da ein '` stehen? Sieht im Editor rein optisch besser aus. Nun ruft nur wieder keiner an....
 
hi
du kannst das script auch auf der console testen!
Einfach
./reverse.agi 0693050
Dann sollte die Rufnummer gesucht und aufgelöst werden.
Danach musst du die nummer natürlich wieder aus dem Cache schmeissen bevor du nochmal testest!

Aber du hattest recht - die Zeile ist nicht vollständig.
So sollte es besser aussehen:
Code:
NAME=`grep 'entry' $TMPFILE | sed -e s/\"entry\"\ \>/\!\!\!/ -e s/^.*\"entry\"\>//g -e s/\<'\/'a\>.*//g | awk -F '!!!' '{ print $2 }'`
DETAILS=`grep ',\&nbsp\;' $TMPFILE  | sed -e s/\&nbsp\;/\ /g -e s/\<br.*//g`

Gruß
Thorsten
 
hi
du kannst das script auch auf der console testen!
Einfach
./reverse.agi 0693050


Das hat bei mir noch nie funktioniert, als agi aufgerufen per Asterisk klappt es aber einwandfrei. Was kann das nur sein?? Es gibt keine Fehlermeldung, es hängt einfach in der Console und wartet so vor sich hin.
 
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.