.titleBar { margin-bottom: 5px!important; }

Anrufinfo auf Windows PC

Dieses Thema im Forum "Asterisk Allgemein" wurde erstellt von e18, 28 Jan. 2006.

  1. e18

    e18 Mitglied

    Registriert seit:
    9 Sep. 2004
    Beiträge:
    420
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Hallo,

    ich hab jetzt alle Suchworte mal durchprobiert aber noch nix gefunden:

    Wie kann ich mir von meinem Asterisk eingehende Anrufe auf meinem Windows-PC signalisieren lassen (nur die CLI-Informationen, nicht den Anruf selbst, der geht über SPA3K an analoge Nebenstelle).

    Mir schwebt so was vor wie ein kleines "blub" rechts unten in der Taskleiste:

    "Da ist schon wieder Herr Meier aus Schwabing, Tel: 300033 am Apparat"

    wenn das Telefon anfängt zu klingeln.

    Einige haben es ja irgendwie schon am VDR hinbekommen, aber ich schaue nicht die ganze Zeit Glotze....
     
  2. chaos2000

    chaos2000 Aktives Mitglied

    Registriert seit:
    22 Aug. 2004
    Beiträge:
    2,028
    Zustimmungen:
    0
    Punkte für Erfolge:
    36
    Ort:
    LE
  3. Liquido

    Liquido Neuer User

    Registriert seit:
    13 Jan. 2006
    Beiträge:
    57
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Beruf:
    System-Engineer
    Such mal nach Asterisk + Tapi. Wir sind gerade dran ein Freeware Programm umzuschreiben, ist für Asterisk 1.0 Programmiert worden und hat auf Asterisk 1.2 den Fehler das es die eigene Nr. anzeigt anstatt die es anrufers.

    Wenn wir das Programm gefixt haben, kann ich es dir ja Mailen.
    Ansonsten findest du auch noch kommerzielle Tapi Programme die mit Asterisk laufen.

    Du kannst dir natürlich auch selber ein Programm schreiben, wenn du nur eine Anzeige haben möchtest wer Anrufst brauchst du im Prinzip nur ein Telnet Programm und dann auf den Asterisk Manager connecten.

    telnet xxx.xxx.xxx.xxx 5038

    Den Syntax und die Konfiguration des Managers guckst du auf www.voip-info.org

    Gruss
    Liquido
     
  4. e18

    e18 Mitglied

    Registriert seit:
    9 Sep. 2004
    Beiträge:
    420
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    ich hab nur einen schlanken * auf der kleinen linksys nlsu laufen, mir gefällt das traymessage Java-Teil (danke @chaos), auf dem Windows-PC hab ich es schon zum laufen, jetzt muss ich mir nur noch das Reverse-Lookup-Klicktel script, was ich hier irgendwo schon mal gefunden habe, umbasteln.....

    falls das schon mal jemand gemacht hat, nur vor....ansonsten werde ich Vollzug melden :)
     
  5. chaos2000

    chaos2000 Aktives Mitglied

    Registriert seit:
    22 Aug. 2004
    Beiträge:
    2,028
    Zustimmungen:
    0
    Punkte für Erfolge:
    36
    Ort:
    LE
    @e18

    ich kenne das script jetzt nicht, ich verwende das "oertliche"; Wie willst Du das umbsteln?
     
  6. e18

    e18 Mitglied

    Registriert seit:
    9 Sep. 2004
    Beiträge:
    420
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    @chaos: korrektur, geht auch an das oertliche, habe von einem Freund gehört, goyellow sei besser?!?

    @alle: helft doch mal einem unbegabten cut&paste-programmierer weiter:

    habe jetzt in der extensions.conf

    exten => 111,1,agi(notify.sh|${CALLERIDNUM})

    stehen und im agi-bin-verzeichnis folgendes script:
    notify.sh
    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="/opt/var/spool/asterisk/invsuche_cache"
    
    #pfad um das tempfile anzulegen
    TMPFILE="/tmp/tmpsuche"
    LOG="/opt/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_inver
    s=$NUMMER&main=Antwort&s=2" \
    #        -dump -nolist -connect_timeout=3>  $TMPFILE
    wget "http://www.dasoertliche.de/DB4Web/es/oetb2suche/home.htm?kw_invers=$NUMMER
    &main=Antwort&s=2" -O $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) pri
    nt $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
    
    wget -t 1 -O /dev/null "http://192.168.0.100:23232/@$NAME/$DETAILS"
    echo -e "`date +%e.%m\ %H:%M ` $NAME " >>$LOG
    echo 'SET VARIABLE LONGNAME '"\"$NAME\"" >/dev/stdout
    read in
    
    exit 0
    
    
    aber irgendwie bekomme ich immer nur eine leere Blase. Wie muss ich das script auf der kommandozeile aufrufen (mit $1=Telefonnnummer), um es zu debuggen?
     
  7. chaos2000

    chaos2000 Aktives Mitglied

    Registriert seit:
    22 Aug. 2004
    Beiträge:
    2,028
    Zustimmungen:
    0
    Punkte für Erfolge:
    36
    Ort:
    LE
    #7 chaos2000, 29 Jan. 2006
    Zuletzt bearbeitet: 29 Jan. 2006
    ja versuche es mal in der Konsole mit

    ./notify.sh $telefonnummer

    edit:
    Hast du auf die Zeilenumbrüche geachtet?
    Wenn es wie das obige Code ausschaut geht es nicht!!!!
     
  8. e18

    e18 Mitglied

    Registriert seit:
    9 Sep. 2004
    Beiträge:
    420
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    das habe ich schon probiert, da passiert nix (wartet auf weitere eingabe), wie schicke ich EOF?

    EDIT: Ja, (Zeilenumbrüche), hatte nur probleme beim zurückkopieren hier ins forum)

    EDIT2: irgendwie kommt immer permission denied, müssen die Klammern beim if eckig sein?
     
  9. e18

    e18 Mitglied

    Registriert seit:
    9 Sep. 2004
    Beiträge:
    420
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    hier nochmal sauber kopiert:

    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="/opt/var/spool/asterisk/invsuche_cache"
    
    #pfad um das tempfile anzulegen
    TMPFILE="/tmp/tmpsuche"
    LOG="/opt/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=3>  $TMPFILE
    wget "http://www.dasoertliche.de/DB4Web/es/oetb2suche/home.htm?kw_invers=$NUMMER&main=Antwort&s=2" -O $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
    
    wget -t 1 -O /dev/null "http://192.168.0.100:23232/@$NAME/$DETAILS"
    echo -e "`date +%e.%m\ %H:%M ` $NAME " >>$LOG
    echo 'SET VARIABLE LONGNAME '"\"$NAME\"" >/dev/stdout
    read in
    
    exit 0
    
    
    
    
    Danke für#s draufschauen!
     
  10. chaos2000

    chaos2000 Aktives Mitglied

    Registriert seit:
    22 Aug. 2004
    Beiträge:
    2,028
    Zustimmungen:
    0
    Punkte für Erfolge:
    36
    Ort:
    LE
    funktioniert bei mir;
    nach dem ausführen mal ein wenig ENTER drücken (ca 15 mal)
    und die datei /opt/var/spool/asterisk/invsuche_cache anlegen und schreibrechte setzen
     
  11. cibi

    cibi Mitglied

    Registriert seit:
    6 Apr. 2005
    Beiträge:
    561
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Ort:
    Ba-Wü
    Eine ganz andere Lösung wäre einfach ein Softwaretelefon auf dem Windowsrechner zu installieren und das Mitklingeln lassen.
    Nachteil:
    - Sollte das eigentliche Telefon besetzt sein, klingelt das Computer Telefon noch weiter
    wg. "nur die CLI-Informationen, nicht den Anruf selbst, der geht über SPA3K an analoge Nebenstelle"
    - extra Telefonbuch (außer man hat eins mit LDAP und ebenso auf dem Asterisk)
     
  12. e18

    e18 Mitglied

    Registriert seit:
    9 Sep. 2004
    Beiträge:
    420
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    ich bekomme immer diesen Fehler:

    [: ==: unknown operand
    [: ==: unknown operand
    --13:43:51-- http://192.168.0.100:23232/@/
    => `/dev/null'
    Connecting to 192.168.0.100:23232... connected.
    HTTP request sent, awaiting response...

    sowie eine Leere Blase angezeigt
     
  13. chaos2000

    chaos2000 Aktives Mitglied

    Registriert seit:
    22 Aug. 2004
    Beiträge:
    2,028
    Zustimmungen:
    0
    Punkte für Erfolge:
    36
    Ort:
    LE
    if hat bei mir runde klammern
     
  14. e18

    e18 Mitglied

    Registriert seit:
    9 Sep. 2004
    Beiträge:
    420
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    bin ein schritt weiter: habe in der ersten Zeile sh durch bash ersetzt. Jetzt läuft es soweit, aber beim grep gibts eine Fehlermeldung, der Parameter -A wird bei meinem mini-linux offensichtlich nicht unterstützt:

    Options:
    -H prefix output lines with filename where match was found
    -h suppress the prefixing filename on output
    -i ignore case distinctions
    -l list names of files that match
    -n print line number with output lines
    -q be quiet. Returns 0 if result was found, 1 otherwise
    -v select non-matching lines
    -s suppress file open/read error messages

    grep: invalid option -- A

    kann ich das was anderes nehmen?
     
  15. chaos2000

    chaos2000 Aktives Mitglied

    Registriert seit:
    22 Aug. 2004
    Beiträge:
    2,028
    Zustimmungen:
    0
    Punkte für Erfolge:
    36
    Ort:
    LE
    orginal ist:

    Context control:
    -B, --before-context=NUM print NUM lines of leading context
    -A, --after-context=NUM print NUM lines of trailing context
    -C, --context=NUM print NUM lines of output context
    -NUM same as --context=NUM
    --color[=WHEN],
    --colour[=WHEN] use markers to distinguish the matching string
    WHEN may be `always', `never' or `auto'.
    -U, --binary do not strip CR characters at EOL (MSDOS)
    -u, --unix-byte-offsets report offsets as if CRs were not there (MSDOS)


    dann sollte man das ganze mal nach perl umschreiben
     
  16. e18

    e18 Mitglied

    Registriert seit:
    9 Sep. 2004
    Beiträge:
    420
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    #16 e18, 29 Jan. 2006
    Zuletzt bearbeitet: 29 Jan. 2006
    oh nee, perl kann die kleine box erst recht nicht.

    habe schon mit grep Detailansicht den korrekten Ausschnitt (mit allen Infos, jetzt noch dieses awk-Zeugs.....
     
  17. chaos2000

    chaos2000 Aktives Mitglied

    Registriert seit:
    22 Aug. 2004
    Beiträge:
    2,028
    Zustimmungen:
    0
    Punkte für Erfolge:
    36
    Ort:
    LE
    da kann ich dir leider nicht weiter helfen, kenne mich damit nicht aus
     
  18. e18

    e18 Mitglied

    Registriert seit:
    9 Sep. 2004
    Beiträge:
    420
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    ERFOLG: jetzt klappts zusammen mit dem traymessage JAVA progrämmchen von oben:

    Code:
    #!/bin/bash 
    # 
    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="/opt/var/spool/asterisk/invsuche_cache"
    
    #pfad um das tempfile anzulegen
    TMPFILE="/tmp/tmpsuche"
    LOG="/opt/var/log/asterisk/anrufliste_log"
    
    if [ "$1" == " " ]; then
        NAME="anonymer_Anrufer"
    else
        NUMMER=`echo $1 | sed -e "s/\ //g" -e "s/+49/0/"`
         echo "Suche nach $NUMMER im cache"
        NAME=`grep $NUMMER $CACHE | sed -e "s/$NUMMER#//"`
         echo "Name: $NAME"
        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=3>  $TMPFILE
    wget "http://www.dasoertliche.de/DB4Web/es/oetb2suche/home.htm?kw_invers=$NUMMER&main=Antwort&s=2" -O $TMPFILE
    
    
            NAME=`grep Detailansicht  $TMPFILE |  sed  -e "s/<br>/;/; s/<[^>]*>//g; s/	//g; s/ /_/g; s/_//"` 
    
            if [ "$NAME" == "" ]; then
                if grep "Kein Teilnehmer gefunden" $TMPFILE > /dev/null; then
                    NAME="Telefonnummer_$NUMMER"
                fi;
            fi;
            if [ "$NAME" == "" ]; then
                NAME="Telefonnummer_$NUMMER"
            else
                echo -e "$NUMMER#$NAME" >> $CACHE
            fi;
        fi
    fi
    echo "*$NAME*"
    wget -t 1 -O /dev/null "http://192.168.0.102:23232/@$NAME"
    wget -t 1 -O /dev/null "http://192.168.0.100:23232/@$NAME"
    echo -e "`date +%e.%m\ %H:%M ` $NAME " >>$LOG
    echo 'SET VARIABLE LONGNAME '"\"$NAME\"" >/dev/stdout
    read in
    
    exit 0
    
    
    
    
    Danke für Eure Unterstützung!
     
  19. e18

    e18 Mitglied

    Registriert seit:
    9 Sep. 2004
    Beiträge:
    420
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    telnet zeilenweise interpretieren

    Neue Challenge: Jetzt habe ich eine Fritzbox, von der kann ich per Telnet eingehende Anrufinfos lesen, nur -> wie bekomme ich mit Hilfe eines scriptes Zeile für Zeile des Telnet-Output verarbeitet?

    wenn ich
    #nc fritz.box 1012 | grep RING | notify.sh
    aufrufe, habe ich das Problem, dass - weil die Fritzbox ja ein continuous output liefert, kein EOF kommt und das script notify nie aufgerufen wird, gibts da einen anderes Kommando, das man nutzen kann?