Unterscheidung zwischen "anonymen Anrufern"

thorsten.gehrig

Mitglied
Mitglied seit
14 Jun 2004
Beiträge
493
Punkte für Reaktionen
0
Punkte
16
Hi
es gibt ja immer 2 Arten von anonymen Anrufern:
a) "alte" bekannte die vom analoganschluss keine Nummer übermitteln
b) Callcenter und andere die aktiv ihre nummer unterdrücken.

Letztere möchte man ja meistens *nicht* sprechen (wer mich sprechen will soll mir vorher auch sagen wer er ist...)

Das das entsprechende Parameter von chan_capi nicht in Asterisk auswertbar ist habe ich mir ein umweg gebastelt:
ich habe mir "isdnlog" installiert. Damit bekomme ich im syslog massig informationen über die ein- und ausgehenden ISDN calls.
Ankommende analog-calls ohne nummer haben einen eintrag
"blablabla RING (3.1 kHz audio)"
ankommende isdn-calls mit rufnummernunterdrückung (auch vom Handy) haben
"blbla RING (speech)"

Schwups - das ganze in ein agi eingebaut (z.b. in das reverse-lookup - oder in ein eigenes)

Hier meine erste Testversion
Code:
#!/bin/sh 

#Zuerst die gewünschte Zeile in eine eigene Datei schreiben
echo | tail -n 10 /var/log/syslog | grep "RING (" >>/var/log/asterisk/anrufliste_ID

#Jetzt schauen was drinn steht 
if [ "`tail -c 10 /var/log/asterisk/anrufliste_ID`" == "z audio)  " ]; then
    echo 'SET VARIABLE LONGNAME '"\"analoger Anrufer\"" >/dev/stdout
fi

if [ "`tail -c 10 /var/log/asterisk/anrufliste_ID`" == "(Speech) " ]; then
    echo 'SET VARIABLE LONGNAME '"\"aktiv unterdrueckt\"" >/dev/stdout
fi

read in

exit 0

Und schon sieht man wer anruft - und kann auch entsprechen basteln (die callcenter bekommen eine Ansage "Hallo liebes Callcenter - sie hören nun ein wenig wartemusik - drücken Sie die 0 um aufzulegen oder die 1 um weiterhin in der Warteschlange zu bleiben ;-)"

Gruß
Thorsten
 
das ist super das script, muss ich gleich mal einbauen

THX
 
Und was ist mit Anrufen aus Telefonzellen oder Deine Bank ruft Dich an um Dir etwas wichtiges mitzuteilen oder die support-Hotline die Dein Problem gelöst hat und es Dir jetzt mitteilen möchte oder ein Freund ruft aus dem Büro an wo immer die Nummer unterdrückt wird oder oder oder.

Also wenn man keine wichtigen Anrufe erwartet oder seine Freunde gern verärgern möchte, dann ist das =vielleicht= in Erwägung zu ziehen, ich persönlich glaube kaum, dass der Nutzen den evtl. Schaden aufwiegt. Ich erhalte aber auch nur sehr selten unerwünschte Anrufe von callcentern, vielleicht einmal im halben Jahr....
 
Dann würde ich aber etliche Leute aussperren, denn standardmässig wurde bei mehreren meiner Kumpels die Rufnummernunterdrückung bei der T-Com fest eingebaut. Begründung: Sie stünden ja nicht im Telefonbuch. Jetzt müssten die alle das Feature umschalten lassen? :(
Technisch gesehen vielen Dank für dieses Feature, denn damit kann ich mich evtl. anders melden am Telefon, aber die automatische Nutzung im Rufnummernplan ist für mich zu heikel.
 
Hi
@madiehl: derzeit nutze ich das ganze auch nur zur unterschiedlichen anrufsignalisierung.... will das aber später umschalten :)
Haben deine Kumpels einen Analog-Anschluss? Dann müsste ja dies als 3.1 kHz angezeigt werden -> kein Problem.
Haben deine Kumpels ISDN und keine Übermittlung - dann müssten Sie dies selbst am telefon (bzw. telefonanlage) konfigurieren können...
Ich bin mir zwar nicht sicher, aber ich denke CLIP gehört zu den standardfeatures eines "normalen" T-ISDN-Anschlusses...

Gruß
Thorsten
 
thorsten.gehrig schrieb:
Hi
Ich bin mir zwar nicht sicher, aber ich denke CLIP gehört zu den standardfeatures eines "normalen" T-ISDN-Anschlusses...

stimmt nicht ganz - es ist wirklich so, dass wenn man keinen Telefonbucheintrag hat auch die Rufnummer nicht übertragen wird (kann dann auch nicht vom Telefon eingeschaltet werden). Man muss erst bei der Hotline anrufen und explizit die Übermittlung freischalten lassen - das kostet aber nichts und erfolgt sofort.
 
Es ist leider genau wie chaos2000 schreibt. Man muss das über die T-COM freischalten lassen, über die Telefone geht das leider nicht.
 
Hi
also technisch gesehen gibt es
CLIP (Calling Line Identification PRESENTATION) -Anzeige - vom Endgerät abschaltbar
CLIR (.................................... RESTRICTION) - Unterdrückung - vom Endgerät abschaltbar
oder eben keinen von beiden diensten - keine Nummernanzeige...

In meinem script ist übrigens ein kleiner/großer fehler! Das script darf natürlich nur ausgeführt werden wenn KEINE nummer übermittelt wird - sonst wird der Anrufername überschrieben... beachtet das bei eurem aufruf... (mir ists gerade zu heiß um das in das script einzubauen)

Gruß
Thorsten
 
@thorsten.gehrig

ich hab es mal gemacht ;)
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
echo "true"
   echo |tail -n 20 /var/log/messages |grep "RING (" >>/var/log/asterisk/anrufliste_ID
   #defaultwerte
   NAME="n.a."
   DETAILS="Keine details"
   #Jetzt schauen was drinn steht 
   if [ "`tail -c 10 /var/log/asterisk/anrufliste_ID`" == "z audio) " ]; then 
	NAME="analoger Anrufer"
	DETAILS="Keine details"
   fi 
	
   if [ "`tail -c 10 /var/log/asterisk/anrufliste_ID`" == "(Speech) " ]; then 
	NAME="aktiv unterdrueckt"
	DETAILS="Keine details"
   fi
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
    # reverse Lookup via www.dasoertliche.de"
        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="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

###
### Here you can add "additional alert code" 
###

echo -e "`date +%e.%m\ %H:%M ` $NAME " >>$LOG
echo 'SET VARIABLE LONGNAME '"\"$NAME\"" >/dev/stdout
echo 'SET VARIABLE DETAILS '"\"$DETAILS\"" >/dev/stdout
#wget -O /dev/null "http://172.17.1.151/control/message?popup=Anruf%20von:%20$NAME%0A$DETAILS"
#wget -O/dev/null "http://172.17.1.151/control/message?nmsg=Anruf%20von:%20$NAME%0A$DETAILS" >/dev/null
read in

exit 0

Bitte beachtet aber den Unterschied der log-Files


EDIT 27.06.2005: Achtung in dem Script war noch ein kleiner Fehler, es war ein Leerzeichen zwischen audio) und " zu viel - jetzt kunktioniert es
 
Hi,

ich würde jetzt gerne diese Informationen an mein an einer HFC Karte angeschlossenes ISDN Telefon weitergeben. Leider zeigt das Telefon aber trotz SetCallerPres(prohib_passed_screen) nicht an, dass es sich um eine aktiv unterdrückte Telefonnummer handelt. Geht das wirklich nur mit PRI Karten?
 
@chaos2000

Hast Du CAPI installiert?
Ich habe mit Bristuff keine isdn-Infos in der /var/log/messages
drin!!

Gruß
britzelfix
 
@britzelfix

ja habe dafür capi im einsatz.
Wie es mit bristuff/HFC ausschaut weiss ich noch nicht, habe z.Z. keine Karte um es zu testen.
 
hi
@chaos2000: wollte gerade meine version einstellen - danke für deine :)
@simoneh: ja, leider schon.
@britzelfix: hast du isdnlog installiert (bei debian "apt-get install isdnlog"). dann siehst du was in den logfiles. UNABHÄNGIG von Asterisk!!

Gruß
Thorsten
 
@tg

nee, ich habe kein i4l installiert.
Meine gesamten * logs landen in /var/log/asterisk/ .
(debug,event_log,full,messages,queue_log,cdr-*/)

Gruß
britzelfix
 
@britzelfix: ich weiss nicht ob isdnlog von i4l abhängig ist! aber die logs die ich auswerte kommen von isdnlog - und nicht von asterisk!!

die auswertung funktioniert also auch ohne asterisk - selbst wenn der pc nur paralell am isdnbus hängt und die gespräche an einer "richtigen" telefonanlage entgegengenommen werden...

gruß
thorsten
 
Vielleicht könnte man eine Ansage einbauen:
"Hallo, Sie rufen mit aktiver Rufnummernunterdrückung an. Wegen ständigen Mißbrauchs unserer Telefonleitung, können diese Anrufe nur noch mit einer PIN durchgestellt werden. Falls Sie noch keine PIN haben, können Sie Ihre Nachricht durch Eingabe von # auf dem AB hinterlassen, ..."
 
@tg

Die Logs im /var/log/asterisk haben mich auf die
falsche Fährte geführt.

Es interessiert mich nun, ob so etwas mit * auch möglich ist,
bzw. welche Möglichkeiten das SIP-Protokol dafür parat hat.
Es könnte ja sein, daß ein SIP-Provider mehr infos sendet,
als von * ausgewertet werden.

Gruß
britzelfix
 
Hi......habe den Thread gerade erst entdeckt! .....und mir kam da noch 'ne Idee! :gruebel:
So weit ich weiß, "heißt" das Flag im ISDN _nicht_ "schicke die CID nicht mit" sondern ist ein Signal für die empfangende TelCom-Einheit und "heißt": "Zeige die CID nicht an". Das bedeutet, die CID liegt - zumindest bei einem ISDN-Anrufer - immer mit an! Darum gibt es ja auch so viele D-Kanal-Tracer-Projekte im Netz! Kann man dann nicht "einfach" die CID aus dem Trace (mit einem ähnlichen Mechanismus wie thorsten.gehrig es gemacht hat) wieder in den Dialplan einfügen und sich so die CID doch wieder anzeigen lassen? Dann hätte man wesentlich mehr Entscheidungssicherheit bez. des Abweisens von Anrufern!
Wenn das so wirklich funktioniert könnte man im nächsten Schritt die unerwünschten Nr.n in die *-interne DB eintragen und beim nächsten Mal gleich "qualifiziert" abweisen! ......also nicht "mit der Gießkanne"!
Ist nur so eine Idee!
Grüße
Stevie
 
hi
imho hast du zwar a) recht (die nummer ist immer im isdn vorhanden) wird aber b) nicht zu dir als (normaler) b-teilnehmer übermittelt.
da du keinen zugriff auf die Vermittlungsstelle hast bringt dir das auch nichts..

Übrigens werden 2 nummern übermittelt: die "wirkliche" und die die angezeigt werden soll - (bei clip-no-screening kann man selbst einstellen was angezeigt werden soll - für callcenter u.ä.)

Gruß
Thorsten
 
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.