CallerID mit AGI an VDR per Telnet übermitteln

Natürlich kann man auch ein Pattern-Matching machen, sodass z.B. 288-1234 auch auf 288-0 zutrifft. Braucht alles nur ein bisschen mehr Rechenzeit.
 
nur zu, gerne.

bin leider nur ein cut-and-paste programmierer :-(


P.S.: ist aber recht aufwendig, man weiss ja nicht, wo die nebenstelle anfängt. Eigentlich reicht es, wenn das örtliche den Aufwand, das rauszufinden übernimmt :)
 
Nun, da würde ein schrittweises Matching ja reichen. z.B.

05971-42-9999 ruft an

DasOertliche.de gibt zurück

Sägewerk A. 05971-1234567 (der Fehler halt)
Matthias Spital 05971-42-0 (den will ich)

Programm checkt

05971-42-9999 und 05971-1234567 die ersten 5 Ziffern stimmen überein (5 von 12 Ziffern gesamt)
05971-42-9999 und 05971 42 0 die ersten 7 Ziffern stimmen überein. (7 von 8 Ziffern gesamt)

Die Logik dahinter: Die Einträge im Örtlichen Telefonbuch sind in der Regel auf die Kopfnummer beschränkt. Ein Treffer würde deshalb bei der Nummer im Telefonbuch bis auf ein oder zwei Stellen übereinstimmen. Schwer zu erklären ;)
 
Hi Pito - und all die anderen die hier ein Problem haben.
Auf die Anfrage 05971-42-9999 bekomme ich - bei meinem script - auch das Matthias Spital zurück. Auch bei dem auf Seite 3 geposteten Link (wo die Detail-Anzeige genutzt wird) funktioniert die Auflösung des Matthias-Spitals.
( http://www.ip-phone-forum.de/showthread.php?t=115339&page=2&highlight=r%FCckw%E4rtssuche )
Also wo ist das Problem?

Nachtrag: wenn man statt 05971-42-9999 die durchwahlen 7-stellig macht gibts Probleme - bis 6 Stellige durchwahlen gehts! Wenn man also "reelle" Durchwahlen Abfragt - kein (für mich nachvollziehbares) Problem.

Gruß
Thorsten
 
Das war jetzt ein Fallbeispiel.

In bestimmten Städten bekomme ich Chaos-Ergebnisse. In Rheine vielleicht nicht, aber z.B. bei 0203450119 bekomme ich eine total falsche Antwort.
 
Hi
okay. Ist nachvollziehbar. Aber auch auf dem Webinterface.
Einfach mal eine Mail an "das oertliche" schreiben - wenn die ihr system nicht in den griff kriegen haben wir natürlich keine chance.

Gruß
thorsten
 
swaesch schrieb:
Hier hat sich was geändert:

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

Das scheint schon wieder alt zu sein. Bei mir kommt nur eine Fehlermeldung.
 
Zuletzt bearbeitet:
Ich glaube die Leute haben gemerkt, dass (nicht nur wir) ihr System benutzen um Daten abzugreifen - und ändern dementsprechend häufig ihr UI ;)

Edit:

Mittlerweile scheinen die auf POST umgestellt zu haben, damit hat sich das sowieso erstmal erledigt, die Parameter sind jetzt nicht mehr so einfach mitzugeben :-(
 
@pito: wo ist dein problem? es sind doch genügend varianten beschrieben die noch funktionieren. nix mit "POST"-Problematik etc.
Ansonsten gibts ja noch das www.telefonbuch.de - siehe eine seite vorher in diesem thread....
Gruß
Thorsten
 
Also, ich habe ein Firefox-Plugin (Search-Plugin) von dem Örtlichen. Das hat bisher immer gefunzt. Könnte man da nicht was draus lernen?
 
Meine Ignoranz. Natürlich funktioniert das noch über die URL, hatte nur die falschen probiert :-(
 
Ich bin jetzt total verwirrt. Geht jetzt wieder irgend eine Version mit der Rückwärtssuche?

Gruß

Marcel
 
Hi
meine version geht. die ganze zeit. ohne große probleme (bis auf ein paar exotische falschauflösungen - die sind bei mir aber eher theoretisch als praktisch)
Habs zwar schonmal gepostet - hier nochmal damit du nicht suchen musst:
Code:
        lynx "http://www.dasoertliche.de/Controller?form_name=search_inv&ph=$NUMMER" \
        -dump -nolist -connect_timeout=3>  $TMPFILE
        NAME=`grep RTRTRTRT -A 6 $TMPFILE | awk '{ if (FNR == 1) print $0 }' |  sed  -e "s/RTRTRTRT//" -e "s/\ \+//" -e "s/\ \+/\ /g" -e "s/\[_\]//g"`
        DETAILS=`grep RTRTRTRT -A 6 $TMPFILE | awk '{ if (FNR == 2) print $0 }' |  sed  -e "s/\ \+//" -e "s/\ \+/\ /g" -e "s/\[_\]//g"`

Gruß
Thorsten
 
LinuxQ schrieb:
Ich bin jetzt total verwirrt. Geht jetzt wieder irgend eine Version mit der Rückwärtssuche?

Ahem, ich habe irgendwann aufgehört, die Skripts zu ändern, und was soll ich sagen: Bei mir funzt alles prächtiger als je zuvor! Ich bekomme sogar inzwischen Infos zur Hauptnummer, falls es sich um irgendeine (im ÖTB nicht registrierte) Durchwahl handelt ... :rolleyes:

Gruß,
Olaf
 
Sorry, daß ich nerve, aber ich bekomms nicht hin :-(

Ich habe nun folgendes gemacht:

Da Script /var/lib/asterisk/agi-bin/reverse.agi erstellt

-rwxr-xr-x 1 root root 2126 2006-10-28 11:28 reverse.agi

#!/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"
echo "Hallo"
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 www.dasoertliche.de"
lynx "http://www.dasoertliche.de/Controller?form_name=search_inv&ph=$NUMMER" \
-dump -nolist -connect_timeout=3> $TMPFILE
NAME=`grep RTRTRTRT -A 6 $TMPFILE | awk '{ if (FNR == 1) print $0 }' | sed -e "s/RTRTRTRT//" -e "s/\ \+//" -e "s/\ \+/\ /g" -e "s/\[_\]//g"`
DETAILS=`grep RTRTRTRT -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 -e -n "mesg TEL:$NAME \nquit\n" | telnet vdr.gehrig.lan 2001
#echo -e -n "mesg $DETAILS \nquit\n" | telnet vdr.gehrig.lan 2001
#echo -e "/bin/callcheckasterisk.sh \"$NAME\" \"TelNr $NUMMER\"" > /tmp/vdrmessage.txt /usr/bin/at now -f /tmp/vdrmessage.txt
echo -e "`date +%e.%m\ %H:%M ` $NAME " >>$LOG
echo 'SET VARIABLE LONGNAME '"\"$NAME\"" >/dev/stdout
read in

exit 0

Mit Erweiterung für den vdr, aber der ist Zweitranging, daher noch auskommentiert.

In der Extensions.conf habe ich eingefügt:
exten => 436...,1,Set(Language()=de)
exten => 436...,2,AGI,reverse.agi | ${CALLERIDNUM}
exten => 436...,3,Set(CALLERID(name)=${LONGNAME})
exten => 436...,4,Set(CALLERID(number)=${CALLERIDNUM})
exten => 436...,5,Dial(SIP/200&IAX2/100) ; auf Nokia E 60 und PC

Wenn ich nun angerufen werde wird nur die Nummer auf die Geräte übertragen. Sonst nix!

-- Accepting voice call from '6233.....' to '436.....' on channel 0/1, span 1
-- Executing Set("Zap/1-1", "Language()=de") in new stack
Oct 28 11:37:22 ERROR[14725]: pbx.c:1418 ast_func_write: Function Language not registered
-- Executing AGI("Zap/1-1", "reverse.agi | 6233.....") in new stack
-- Launched AGI Script /var/lib/asterisk/agi-bin/reverse.agi
-- AGI Script reverse.agi completed, returning 0
-- Executing Set("Zap/1-1", "CALLERID(name)=") in new stack
-- Executing Set("Zap/1-1", "CALLERID(number)=6233.....") in new stack
-- Executing Dial("Zap/1-1", "SIP/200&IAX2/100") in new stack
-- Called 200
-- Called 100
-- Call accepted by 192.168.0.106 (format ulaw)
-- Format for call is ulaw
-- IAX2/100-2 is ringing
-- SIP/200-0817db88 is ringing
-- Channel 0/1, span 1 got hangup, cause 16
-- Hungup 'IAX2/100-2'
== Spawn extension (isdn, 436..., 5) exited non-zero on 'Zap/1-1'
-- Hungup 'Zap/1-1'
maryland*CLI>

Auf dem Nokia (mein momentan einziges mit Text-CLIP) wird nur die Nummer angezeigt! Es wird auch keine /var/log/asterisk/anrufliste_log und /var/spool/asterisk/invsuche_cache erstellt!

Wo kann der Fehler noch liegen? Rechtevergabe?

Danke

Marcel
 
Fehler Gefunden!

Ein Leerzeichen hinter reverse.agi war zu viel! Sorry! Jetzt läuft es:) Danke!!

Gruß

Marcel
 
Hi,
versuche gerade das reverse.agi zu integrieren. Habe es 1:1 kopiert und wie oben angegeben in das agi-bin Verzeichnis gelegt.

Ich rufe es auf und bekomme komische Ausgaben:
(habe erst einmal eine statische Rufnummer übergeben)

PHP:
    -- AGI Script agi-test.agi completed, returning 0
    -- Executing AGI("SIP/217.10.67.5-081c2ce8", "reverse.agi|0822xxxx") in new stack
    -- Launched AGI Script /var/lib/asterisk/agi-bin/reverse.agi
: No such file or directory
    -- AGI Script reverse.agi completed, returning 0
    -- Executing SetCIDName("SIP/217.10.67.5-081c2ce8", "") in new stack

das reverse.agi ist aber da, hat 777 und ist lokal auch aufrufbar, spuckt natürlich aus, dass ihm AGI_... Informationen fehlen.
Wonach könnte ich noch schauen?

Selbst eine simple Datei (reversedummy.agi) nutzt er nicht:
PHP:
#!/bin/sh 
# 
echo "Hallo"
echo $1
exit 0


Kann es sein, dass mein Interpreter nicht ganz tickt?
Nutze Suse 9.3 und /bin/sh ist vorhanden.

agi-test.agi funzt einwandfrei.

Danke.
Gruß Stefan
 
chown asterisk:asterisk reverse.agi
 
e18 schrieb:
chown asterisk:asterisk reverse.agi
Danke Dir,
aber astersisk läuft unter root :-( und die Dateirechte sowie Eigentümer sehen aus wie beim agi-test.agi

Gruß Stefan
 
Erweiterung mit Jabber

Hi,
falls es jemand braucht, ich habe das reverse.agi mit einem Jabber-Bot erweitert. Nun kann man die Nachrichten statt per smbclient -M auch netzübergreifend ganz woanders hinschicken, das ist ganz praktisch wenn man die Anrufe aufs Handy weiterleitet und sehen möchte, wer da anruft (sonst sieht man ja nur die eigene Nummer). Ein Jabberclient fürs Handy und einen vernünftigen GPRS-Tarif sollte man allerdings haben!


Ich benutze dazu den http://jpb.sphene.net/wiki/show/JPB
Etwas schlapp dokumentiert das ganze, aber erstmal ok.
Einfach unten im reverse.agi einfügen:
Code:
/usr/local/bin/sendmessage.pl [email protected] "$NUMMER $NAME $DETAILS" &
bot.pl aus dem jpb-Paket muss konfiguriert sein und laufen.

Wers braucht....
 
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.