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

anzeigen des Anrufers auf der D-BoxII

Dieses Thema im Forum "Asterisk Skripte" wurde erstellt von chaos2000, 9 Nov. 2004.

  1. chaos2000

    chaos2000 Aktives Mitglied

    Registriert seit:
    22 Aug. 2004
    Beiträge:
    2,028
    Zustimmungen:
    0
    Punkte für Erfolge:
    36
    Ort:
    LE
    Is zwar nicht fein, aber nützlich kann es sein ;)

    Code:
    #!/usr/bin/perl -w
    # dboxmessage.pl -- Sendet eine Nachricht an die D-BoxII unter Neutrino. 
    # ARGV[0] - IPadresse der Box
    # ARGV[1] - Port des nhttpd (zu finden unter /var/tuxbox/config/nhttpd.conf)
    # ARGV[2] - Machrichtentyp popup|nmsg  
    # ARGV[3] - informationen über den Anrufer
    
    use strict; 
    use LWP::UserAgent;
    
    my ($url, $ua, $request, $response);
    my $ip = $ARGV[0];
    my $port = $ARGV[1];
    my $messagetype = $ARGV[2];
    my $anrufer = $ARGV[3];
    
    $url = "http://172.17.1.150/control/message?popup=Anruf von: ".$ARGV[0];
    #$url = "http://".$ip.":".$port."/control/message?".$messagetype."=Anruf von: ".$anrufer;
    
    print $url, "\n";
    $ua = LWP::UserAgent->new();
    
    $request = HTTP::Request->new('GET', $url);
    $response = $ua->request($request);
    #print $response->code ,"\n";
    
     
  2. Fred4711

    Fred4711 Neuer User

    Registriert seit:
    10 Nov. 2004
    Beiträge:
    8
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    wie soll das funktionieren ??
     
  3. chaos2000

    chaos2000 Aktives Mitglied

    Registriert seit:
    22 Aug. 2004
    Beiträge:
    2,028
    Zustimmungen:
    0
    Punkte für Erfolge:
    36
    Ort:
    LE
    unter Vorraussetzung D-BoxII mit Neutinosystem (Linux):

    is recht simple;

    1. du speichert das script unter /var/lib/asterisk/agi-bin/dboxscript.pl
    2. in /etc/asterisk/extensions.conf trägst du in dem gewünschten abschitt
    [...]
    exten => 20,1,agi(dboxscript.pl|${CALLERID})
    [...]
    3. reload von asterisk

    --> fertig


    P.S.: wenn du zeile 17 auskommentierst und in zeile 18 das # entfernst kannst du in der extensions.conf alle parameter zum verbindungsaufbau und den messagetype angeben
     
  4. lxuser

    lxuser Mitglied

    Registriert seit:
    4 Nov. 2004
    Beiträge:
    287
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Hallo,

    könnte man die Inverssuche der Telekom einbinden um den Namen des Anrufers anzeigen zu lassen?

    Habe hier folgendes gefunden:
    Gruss lxuser
     
  5. Fux

    Fux Mitglied

    Registriert seit:
    3 Juni 2004
    Beiträge:
    420
    Zustimmungen:
    0
    Punkte für Erfolge:
    16
    Habe zu diesem Zweck bei mir ein
    Code:
    exten => 62,6,System(wget -bq -o /dev/null -O /dev/null http://dbox/control/message?popup="""Anruf von ${CALLERIDNAME} ${CALLERIDNUM}""" >/dev/null)
    
    in der extensions.conf stehen.
    Wo liegt der Vorteil deiner Lösung ?
     
  6. chaos2000

    chaos2000 Aktives Mitglied

    Registriert seit:
    22 Aug. 2004
    Beiträge:
    2,028
    Zustimmungen:
    0
    Punkte für Erfolge:
    36
    Ort:
    LE
    prinzipell kein problem, werde ich in der nächsten zeit einmal einbauen und veröffentlichen
    THX für den tipp
     
  7. thorsten.gehrig

    thorsten.gehrig Mitglied

    Registriert seit:
    14 Juni 2004
    Beiträge:
    490
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    [edit]
    falscher thread... sorry.
     
  8. jui

    jui Mitglied

    Registriert seit:
    18 Dez. 2004
    Beiträge:
    229
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    @fux

    habe es mal mit Deinem Einzeilder versucht:
    Ich bekommezwar eine Meldung auf dem Fernseher, aber ohne die Variablen. Im CLI meldet er :

    /bin/sh: CALLERIDNAME: command not found
    /bin/sh: CALLERIDNUM: command not found

    Ich habe dem exten => bei mir die Priorität 1 gegeben. Warum hat es bei dir die Priorität 6, was läuft bei dir davor noch ab?

    Vielleicht hast Du ja einen Tipp warum er die Werte für die Variablen nicht setzt. Werde wohl auch mal das Perl-Script testen als Alternative. Ausserdem möchte ich noch In der Meldung das Ziel des Anrufs haben (Anruf von 089xxx für Teilnehmer 99 - Privat)

    @chaos2000
    Bei Deinem Script ist mir nicht klar welchen Namen die Definition in der Extensions.conf tragen müssen . Definiere ich dort dann "ip" oder "ARGV[0]"? Bin mit Perl nicht sehr bewandert, wundere mich daher über die Variablendefinitionen. Hilfreich wäre es Deine extensions.conf mal dazu zu sehen.
     
  9. chaos2000

    chaos2000 Aktives Mitglied

    Registriert seit:
    22 Aug. 2004
    Beiträge:
    2,028
    Zustimmungen:
    0
    Punkte für Erfolge:
    36
    Ort:
    LE
    zum besseren Verständnis hier noch mal ein Ausschnitt aus der Extension

    /etc/asterisk/extensions.conf
    Code:
    exten => 21,2,agi(dboxmessage.pl|${CALLERID})
    

    das dazugehörige script
    /var/lib/asterisk/agi-bin/dboxmessage.pl
    Code:
    #!/usr/bin/perl -w
    # dboxmessage.pl -- Sendet eine Nachricht an die D-BoxII unter Neutrino. 
    # ARGV[0] - IPadresse der Box
    # ARGV[1] - Port des nhttpd (zu finden unter /var/tuxbox/config/nhttpd.conf)
    # ARGV[2] - Machrichtentyp popup|nmsg  
    # ARGV[3] - informationen über den Anrufer
    
    use strict; 
    use LWP::UserAgent;
    
    my ($url, $ua, $request, $response);
    my $ip = $ARGV[0];
    my $port = $ARGV[1];
    my $messagetype = $ARGV[2];
    my $anrufer = $ARGV[3];
    
    
    $url = "http://172.17.1.151/control/message?nmsg=Anruf von: ".$ARGV[0];
    #$url = "http://".$ip.":".$port."/control/message?".$messagetype."=Anruf von: ".$anrufer;
    
    $ua = LWP::UserAgent->new();
    
    $request = HTTP::Request->new('GET', $url);
    $response = $ua->request($request);
    print $response->code ,"\n";
    
     
  10. jui

    jui Mitglied

    Registriert seit:
    18 Dez. 2004
    Beiträge:
    229
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    @chaos

    Genau da habe ich das Problem

    $ARGV[0] wurde doch oben als

    # ARGV[0] - IPadresse der Box

    definiert aber eigentlich soll hier rein ja ${CALLERID} übergeben werden. Das tut es wohl auch, aber dann ist doch dieobige Definition/Dokumentation falsch.

    Ich muss noch irgendwie hinzufügen für welches Ziel der Anruf ist, also

    Anruf von ${CALLERID} für ???

    Das sollte sich aber machen lassen denke ich, aber ich bin halt noch etwas verwirrt, insbesondere von der momentan auskommentierten Zeile im Perl-Script und wie die Variablen dann alle aus der extensions.conf kommen sollen. Müssen dann halt alle hintereinander übergeben werden, aber wie gesagt verwirren dann die Definitionen oben, denn die können sich nur auf den Fall übergebener Variablen beziehen.

    Danke erstmal!

    Gruß,

    Jui
     
  11. lxuser

    lxuser Mitglied

    Registriert seit:
    4 Nov. 2004
    Beiträge:
    287
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Hallo,

    gibt es schon was neues von dir?

    Ansonsten sieht die Lösung von thorsten.gehrig für den VDR auch sehr gut aus. Wie müsste hier der geänderte Aufruf für die dbox aussehen?

    Grüsse lxuser
     
  12. thorsten.gehrig

    thorsten.gehrig Mitglied

    Registriert seit:
    14 Juni 2004
    Beiträge:
    490
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    HI
    es gibt doch schon einen Thread für die Anrufanzeige auf dem VDR - mit Reservssuche. Wenn man nun dieses Script nimmt und die Ausgaberoutinen für die dbox2 einbaut hat man beides - reversesuche und anzeige auf der dbox2...
    Mit ein bisschen wollen kein problem - wenn doch: problem schildern und ich helfe...

    Gruß
    Thorsten Gehrig
     
  13. lxuser

    lxuser Mitglied

    Registriert seit:
    4 Nov. 2004
    Beiträge:
    287
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Hallo,

    wenn ich das richtig verstehe wird aus
    %0A sorgt für einen Zeilenumbruch und %20 für ein Leerzeichen.
    Hier ist die HTTP-Ansteuerung der d-box2 beschrieben: http://cvs.tuxbox.org/cgi-bin/viewc...rev=1.31&content-type=text/vnd.viewcvs-markup


    Ausserdem würde ich noch gerne den Namen per netsend auf einen Windows Rechner schicken. Dazu müsste dann doch auch nur eine Zeile eingefügt werden?
    Die beiden Sachen habe ich vorher über den fli4l gemacht, der jetzt einem ipcop und einem Debian-Server weichen musste.


    Da mein Asterisk zur Zeit nicht läuft, kann ich die skripte leider nicht testen.

    Erstmal danke für die Hilfe.


    @ thorsten.gehrig

    Wäre es nicht sinnvoll dein Skript in die VDR-Wiki zu stellen?

    Gruss lxuser
     
  14. DerDominic

    DerDominic Neuer User

    Registriert seit:
    1 Dez. 2004
    Beiträge:
    151
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Beruf:
    Dipl. Ing. tI
    Ort:
    Quierschied
    Ich würde das Script aber noch abändern, sodaß nicht bie jedem Anruf gleich auf teleauskunft gesucht wird, sondern erst in der lokalen DB, dann erst teleauskunft und dann der Eintrag in der lokalen DB verweigt wird.
    Das ahtden Vorteil, daß das auch schneller geht und ausserdem ist ja auch nicht jeder Teilnehmer oder Mobiltelefon bei teltarif verewigt.
    Auch finde ich hier wird mit Perl auf Säue geschossen, der Perl-Interpreter schluckt gleich mal minimum 10 MB, das ganze geht auch mit der normalen bash. Ich bin gerade dabei sowas zusammen zu nageln, leider fehlt mit im Moment der Antrieb das auch zu ende zu bringen....
    Also Leute, wer nicht so stinkfaul ist wie ich, ran an die Arbeit !!!!
     
  15. lxuser

    lxuser Mitglied

    Registriert seit:
    4 Nov. 2004
    Beiträge:
    287
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    @ DerDominic

    Genau so wie du die Lösung beschreibst ist die Lösung von thorsten.gehrig für den VDR. Also mit lokalem Speicher und als bask-skript ausgeführt. Siehe http://www.ip-phone-forum.de/forum/viewtopic.php?t=968&start=15

    Es ist eigentlich nur noch der telnet-Aufruf zum VDR am Ende des Skriptes mit einen http-Aufruf der d-box auszutauschen. Daran habe ich mich mal oben versucht :?

    Gruss lxuser
     
  16. DerDominic

    DerDominic Neuer User

    Registriert seit:
    1 Dez. 2004
    Beiträge:
    151
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Beruf:
    Dipl. Ing. tI
    Ort:
    Quierschied
    Ja, muß zugeben, ich habe mich nicht durch das ganze Script gequält, ich hatte halt das Script von Chaos2000 (welch ein Name) gesehen, da schleuderte mir doch glatt als erstes ein .pl und Perl ins Gesicht, da wollte ich auch nicht mehr genauer nachlesen.

    Für die DBox ist das absolut kein Problem, kansst Du mit wget machen, wurde hier in einem anderen Thread ja auch schon sehr schön gezeigt.....

    Dominic
     
  17. thorsten.gehrig

    thorsten.gehrig Mitglied

    Registriert seit:
    14 Juni 2004
    Beiträge:
    490
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Hallo @DerDominic,

    sieht gut aus was du da geschrieben hast.
    Die sache mit dem netsend ist auch eine gute idee - ich werde die mal bei mir lokal implementieren...

    Auf die idee mit dem Wiki bin ich garnicht gekommen - wahrscheinlich hatte/habe ich auch keine List das auf englisch zu dokumentieren - wobei es eh nur für deutsche interessant ist...

    Ich werd mich mal aufraffen...

    Gruß
    Thorsten
     
  18. thorsten.gehrig

    thorsten.gehrig Mitglied

    Registriert seit:
    14 Juni 2004
    Beiträge:
    490
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
  19. lxuser

    lxuser Mitglied

    Registriert seit:
    4 Nov. 2004
    Beiträge:
    287
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    @ thorsten.gehrig

    Super, das es jetzt im wiki steht. Ich dachte eigentlich eher an die wikis zum VDR bzw. später zur d-box. So sind aber alle drei Möglichkeiten schön übersichtlich zusammen.

    Ich hoffe, dass die Aufrufe für die d-box und den Windows-Nachrichtendienst so in Ordnung sind.
    Kann sein das noch Parameter an wget, um die Ausgabe von wget nach /dev/null umzuleiten, übergeben werden müssen wie im Beispiel aus dem dbox-Forum beschrieben:
    Da ist auch noch ein Beispiel für die Dream-Box vorhanden.

    Daher bitte ich mal jemanden zu testen und eine Rückmeldung zu geben.

    Ich selbst habe leider erst wieder nächsten Mittwoch nach meiner Klausur Zeit mich mit dem Asterisk zu befassen. Dann wird unser kleines WG-Netzwerk mit 6 Teilnehmern und ebensovielen d-boxen, PCs und Rufnummern endlich wieder vervollständigt.

    Gruss lxuser
     
  20. lxuser

    lxuser Mitglied

    Registriert seit:
    4 Nov. 2004
    Beiträge:
    287
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Noch eine kleine Anregung.

    Die Rufanzeige ist ja schon ganz nett :)
    Perfekt wäre aber noch der Zugriff auf die Anrufliste.

    thorsten.gehrig hat folgendes zum VDR geschrieben
    Da Neutrino jetzt skripte unterstützt http://wiki.tuxbox.org/Neutrino:Skripte und diese auch eine Rückmeldung auf OSD geben können, könnte man die Anrufliste am Fernseher abrufen.
    Leider ist in der busybox kein tac enthalten. Wie würde ein skript mit netcat aussehen, das nur die letzten x Anrufe anzeigt ?

    Da es für die dbox und den VDR ein Newsticker-Plugin gibt und wäre es auch nicht schlecht ein Newsticker-rdf zu erstellen. Damit könnte man sich sogar plattformübergreifend mit KDE/GNOME oder Windows bzw. über Internet und evt. auch mit dem Handy die Anrufliste anschauen.

    Vielleicht kann man aus dem Skript von http://217.172.178.142/~frank/mlcomplete.htm einiges übernehmen.

    Gruss lxuser