CallerID mit AGI an VDR per Telnet übermitteln

Hallo Fuchs,

zuerstmal ist der "lynx-aufruf" nur abgekupfert - und nicht aus meiner feder...
aber zu deiner frage: ich vermute dass lynx besser dafür geeignet ist weil ja eine webseite abgerufen wird - und kein file.
warum die frage? hast du kein lynx drauf? ist ja doch nur ein kleines file?!

gruß
thorsten.gehrig
 
das ganze geht auch genau so gut mit wget. Dann halt nur die Parameter anpassen:

wget "http://www.dasoertliche.de/DB4Web/es/oetb2suche/home.htm?kw_invers=$NUMMER&main=Antwort&s=2" -O $TMPFILE

curl würde auch gehen.
 
Hi Leute.
Bin heute noch mal über den Beitrag gestolper.
Das Teil ist ja super, eine genauere Auskunft geht wohl net.
den Umbau auf "wget" hat bei mir nicht funktioniert
Super Idee, super Umsetzung. Das bietet warscheinlich keine andere TK-Anlage.
 
Danke fürs Lob.
Ich habe es auch nicht auf wget umgebaut - wüsste nicht warum...
Gruß
Thorsten
 
das mit dem wget hätte den Vorteil das ich ein Softwarepacket für mein minimal System weniger benötige.
 
Hallo,

Nettes Feature was ihr da für den VDR gebastelt habt.
Ich habe mich dessen mal angenommen und ein zwei äÄderungen gemacht (thorsten meinte irgendwo, das sei ok). Zunächst werden nun 49 oder +49 nach 0 konvertiert, war nur ein wenig bei dem sed Befehl.
Aber der Punkt der mich störte war, das die svdrp Messages zu schnell nacheinander folgten und das auch nur einmal. Von meinem ISDN Skript war ich es gewohnt die Message dreimal in drei Sekunden abständen angezeigt zu bekommen. Geht mit Thorstens Skript auch nur dauert es dann ewig, bis es auch tatächlich an den Sip-Phones klingelt. Also schreibe ich einen Befehl mit Parametern in eine Datei und lasse Ihn direkt per at starten. Das AGI-Skript ist somit ruckzuck fertig und ich bekomme die Message dreimal angezeigt. Im at-Befehl wird einfach ein kleines Shell-Skript gestartet. Da ich Problem mit dem Telnet auf Port 2001 hatte (fragt mich nicht warum, aber VDR hat danach keine sends mehr auf 2001 empfangen) verwende ich einfach das svdrpsend.pl des VDR um die Message auf das OSD zu beamen. Bei Interesse stell cih das hier gerne zu Verfügung.

tschökes
klingeljoe
 
@klingeljoe

nur her mit deiner Lösung.
Wir sind immer an neuen Ideen Interesiert.
 
Ich hab das ganze auch noch erweiter.

Ich lass mir an mein E-Mail Adresse eine Anruferliste schicken.
Damit das funktioniert hab ich das Script um folgende Zeile erweitert:
Code:
...

echo -e -n "mesg Anruf von TEL: $NAME \nquit\n" | telnet <IP-Adresse> 2001 &
echo -e -n "mesg $DETAILS \nquit\n"  | telnet <IP-Adresse> &

# Meine Erweiterung
echo -e "$NUMMER\t$NAME\t$DETAILS" > /tmp/lastnummer.txt
#

exit 0

den Mailversand löse ich durch die extensions.conf aus.

Code:
 exten => xxxxx,3,System(/bin/echo "${CALLERID} hat am ${DATETIME} angerufen."
| nail -s "Anruf von ${CALLERID} am ${DATETIME} fuer ${EXTEN}" -a /tmp/lastnumme
r.txt -r [email][email protected][/email] [email][email protected][/email] )
 
Nun gut hier meine Lösung.

im reverse.agi script den sed Befehl anpassen, damit 49 und +49 erkannt und mit 0 ersetzt werden.
Code:
NUMMER=`echo $1 | sed -e "s/\ //g" -e "s/+\?49/0/"`

Dann das Skript svdrpsend.pl vom VDR irgendwo hinkopieren und den Pfad merken.

Die Punkte mit den Messages an den VDR via Telnet auskommentieren und diese Zeilen einfügen.
Code:
#echo -e -n "mesg TEL:$NAME \nquit\n" | telnet VDRHOST 2001
#echo -e -n "mesg $DETAILS \nquit\n"  | telnet VDRHOST 2001

echo -e "/bin/callcheckasterisk.sh \"$NAME\" \"TelNr $NUMMER\"" > /tmp/vdrmessage.txt
/usr/bin/at now -f /tmp/vdrmessage.txt

So nun das Skript /bin/callcheckasterisk.sh nach /bin kopieren
Code:
#!/bin/sh
NAME=$2
TELNR=$1
CNT=3

while [  $CNT -ne 0 ]
do echo `/PFAD/zum/svdrpsend.pl -d VDRHOST MESG $NAME >/dev/null 2>&1`
sleep 3
echo `/PFAD/zum/svdrpsend.pl -d VDRHOST MESG $TELNR >/dev/null 2>&1`
CNT=`expr $CNT - 1`
sleep 3
done

Das war`s.
Für VDRHOST setzt ihr einfach den Namen des Hosts ein auf dem der VDR läuft oder ihr nehmt die IP-Adresse.
Es wird die Datei /tmp/vdrmessage.txt erstellt, welche dann als Inputfile für einen at-Befehl dient.
Dann blinkt es schön regelmäßig auf dem OSD.
Hoffe ihr habt Spass dran

klingeljoe
 
ich habe die version auch noch mal angepasst

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/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/+\?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=5 >  $TMPFILE
        NAME=`grep printselected.gif -A 6 $TMPFILE | awk '{ if (FNR == 6) print $0 }' |  sed  -e "s/\ \+//" -e "s/\ \+/\ /g" -e "s/\[_\]//g"`
        DETAILS=`grep printselected.gif -A 6 $TMPFILE | awk '{ if (FNR == 7) print $0 }' |  sed  -e "s/\ \+//" -e "s/\ \+/\ /g" -e "s/\[_\]//g"`
        if [ "$NAME" == "" ]; then
            if grep "Kein Teilnehmer gefunden" $TMPFILE > /dev/null; then
                NAME="Telefonnummer $NUMMER"
                DETAILS="Kein Eintrag $2"
            fi;
        fi;
        if [ "$NAME" == "" ]; then
            NAME="Telefonnummer $NUMMER"
            DETAILS="Fehler $2"
        else
            echo -e "$NUMMER\t$NAME\t$DETAILS" >> $CACHE
        fi;
    fi
fi

echo "svdrpsend.pl -d vdr 'mesg TEL:$NAME'
sleep 1
svdrpsend.pl -d vdr 'mesg $DETAILS'
sleep 1
svdrpsend.pl -d vdr 'mesg TEL:$NAME'
sleep 1
svdrpsend.pl -d vdr 'mesg $DETAILS'
sleep 1
svdrpsend.pl -d vdr 'mesg TEL:$NAME'
sleep 1
svdrpsend.pl -d vdr 'mesg $DETAILS'
sleep 1" | at now

echo -e "`date +%e.%m\ %H:%M ` $NAME " >>$LOG
echo 'SET VARIABLE LONGNAME '"\"$NAME\"" >/dev/stdout
read in
exit 0
 
Vielen Dank für dieses tolle Script , Thorsten et al.

Leider bekomme ich es hier aus dem Forum irgendwie nicht richtig rüber auf meinen Linux Server, es kommen immer "not a valid identifier" messages bei der Ausführung. Ich nehme an, das kommt weil ich es in notepad abgespeichert habe und/oder binär übertragen habe, habe es auch schon versucht vorher zu zippen, aber das brachte auch nichts.

Kann jemand helfen?

Danke,
Tin
 
Am einfachsten unter Windows markieren, kopieren und dann eine ssh-session zum Linux-System. Dort Text-editor starten und "einfügen".
So mache ich das meistens....
Gruß
Thorsten
 
@TinTin

Es gibt das Tool "dos2unix". Diese Tool konvertiert das "DOS"-Textfile.
 
Hallo Thorsten & Lothar,

danke für die Hinweise, muß mich erstmal schlau machen, wie man eine ssh Verbindung aufbaut ;) Ich habe es über FTP geschafft im Ascii Modus, nur ein Zeilenumbruch war dann wohl noch falsch, den habe ich manuell behoben.

Nur klappt's immer noch nicht so 100%, der Name wird zwar angezeigt nach Ausführung von reverse.agi und Signalisierung auf dem Telefon, doch die angezeigte Telefonnummer ist plötzliche eine ganz andere *lol*, na ich muß das später nochmal weiter testen - habe leider im Moment niemanden zur Verfügung, der mich auf der Nummer anruft.

Recht herzlichen Dank nochmal,
Tin
 
hallo zusammen, das sind ja super skripte!

was macht denn so ein armer windoz-Nutzer wie ich, der die Anrufinfo gerne als "Blase" von der Toolbar bekommen will? So a la "Peter Meier, Müllerstr. 18, 86666 München ruft an".

Ginge das vielleicht mit snmp-Messages?
 
Moin,
also das Script ist ja richtig genial!
Auch von mir: DANKE!
Mal eine Frage zur invsuche_cache Datei:
Wie sieht das Format aus damit ich dort einfach Einträge hinzufügen kann?

so funktioniert es nicht...:

olaf_tt 0511999999
0511999999 olaf_tt

Die Datei ist bei mir nämlich ohne Inhalt.

Danke für eure Hilfe.
olaf_TT
 
Zuletzt bearbeitet:
z.B. so sieht bei mir ein Eintrag aus:
Code:
0177XXXXXXX	Telefonnummer 0177 XXXXXXX	Matthias Handy
 
Hier hat sich was geändert:


ALT:
Code:
http://www.dasoertliche.de/DB4Web/es/oetb2suche/home.htm?kw_invers=123456&main=Antwort&s=2

NEU:
Code:
http://www0.dasoertliche.de/DB4Web/es/oetb2suche/home.htm?main=Antwort&s=2&kw_invers=123456
 
Zuletzt bearbeitet:
HI
@swaesch: danke dass du mir die arbeit abgenommen hast :)
Für alle die es ganz "vorgekaut" haben wollen:
Code:
	lynx "http://www0.dasoertliche.de/DB4Web/es/oetb2suche/home.htm?main=Antwort&s=2&kw_invers=$NUMMER" \
	-dump -nolist -connect_timeout=3>  $TMPFILE

Gruß
Thorsten Gehrig
 
Da bleibt nur die Frage wie lange www0.dasoertliche.de noch geschaltet bleibt und so aufrufbar ist wie jetzt. Bei der neuen Homepage von das oertliche ist die Rückwertssuche auch noch möglich, allerdings noch mit einzelnen Fehlern.
 
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.