Ergebnis 1 bis 19 von 19

Thema: CallerID per OSD anzeigen lassen

  1. #1
    IPPF-Fan Avatar von Ber5erker
    Registriert seit
    06.04.2004
    Beiträge
    305

    CallerID per OSD anzeigen lassen

    So, hab noch ein bisschen "getüftelt"...

    Da mein Telefon partout nicht die Nummer im Display anzeigen will ("Telekom Tarsis C") habe ich mir etwas einfallen lassen.
    Mein VDR läuft ja nicht den ganzen Tag, also muß die Nummer auf dem PC angezeigt werden.
    Erste Versuche mit "callerid.agi", hier zu finden: http://www.bschwarz.com/asterisk/ , hatten den Nachteil, daß das Fenster nicht in den Vordergrund kam.

    Was liegt also näher als OSD (On-Screen-Display)?

    Unter http://www.netzmafia.de/skripten/server/server4.html fand ich erste Schritte zu Client/Server-Basierten Perl-Scripts.

    Auf dem Client läuft nun ein "Server"-Script (empfaenger.pl). Es lauscht, ob etwas vom Asterisk-Server kommt:
    Code:
    #!/usr/bin/perl
    # empfaenger.pl -- Ein Single-threaded-TCP-Server
    
    $|=1;
    use strict;
    use IO::Socket;
    
    use constant MYPORT => 2001;
    my ($pid, $i);
    
    $pid = fork();
    die "cannot fork: $!\n" if ($pid == -1);
    
    # Parent beendet sich
    if ($pid > 0)
      {
      print "Parent exits\n";
      exit(0);
      }
    
    # Kindprozess wird von init adoptiert
    chdir "/tmp" or die "could not chdir to /tmp: $!\n";
    
    my $sock = '';
    my $client = 0;
    
    $sock = new IO::Socket::INET(LocalPort => MYPORT,
                                 Reuse     => 1,
                                 Listen    => 5)
        or die "can't create local socket: $@\n";
    print "Accepting connections on Port ", MYPORT, "...\n";
    
    while ($client = $sock->accept())
      {
      # Ausgabe des Anrufers:
      while &#40;<$client>&#41;
        &#123;
        chomp;
        system "echo 'Eingehender Anruf von\n$_' | osd_cat -p middle -A center -f -adobe-helvetica-bold-*-*-34-*-*-";
        &#125;
      $client->close&#40;&#41; if defined $client;
      &#125;
    Auf dem Asterisk-Server liegt ein "Sende"-Script (sender.pl), welches mittels AGI gestartet wird:
    Code:
    #!/usr/bin/perl
    # sender.pl -- Ein einfacher TCP-Client.
    
    use strict;
    use IO&#58;&#58;Socket;
    
    use constant TIMEOUT => 5;
    my $ipaddr = '10.0.0.199';
    my $portnr = '2001';
    my $sock = '';
    my $reply = '';
    
    $sock = new IO&#58;&#58;Socket&#58;&#58;INET&#40;PeerAddr => $ipaddr,
                                 PeerPort => $portnr,
                                 Proto    => 'tcp', Timeout => TIMEOUT&#41;
        or die "can't connect to $ARGV&#91;0&#93;&#58;$ARGV&#91;1&#93;&#58; $@\n";
    
    print $sock $ARGV&#91;0&#93;;
    
    $sock->close&#40;&#41;;
    In der extensions.conf kommt folgender Eintrag rein:
    [...]
    exten => 100,1,agi(sender.pl|${CALLERID})
    exten => 100,2,Dial(SIP/100,60,tr)
    [...]

    Kommt nun ein Anruf herein wird das Script sender.pl mit der Rufnummer aufgerufen, connectet zur eingetragenen IP (diese muß in der sender.pl angegeben werden!) und auf dem Client ruft das empfaenger.pl das OSD-Programm osd_cat auf.
    Unter Debian ist osd_cat im Paket xosd-bin

    TODO:
    - Einstellung der Schriftgröße. Weis einer wie das geht? -> siehe Zeile 24 der empfaenger.pl
    - Wenn die empfaenger.pl gestartet wird soll diese sich beim sender.pl "registrieren", sodaß bei mehreren Clients der richtige erwischt wird - ich sitze nicht immer am selben PC...

    Bitte keine Schelte, ich bin KEIN Programmierer! Der Code wird für Profis fürchterlich aussehen, aber er geht!

    Gruß
    Seb

    ---EDIT---

    Im empfaenger.pl sind noch 3-4 Zeilen dazu gekommen, sodass das Script nun im Hintergrund läuft.

    ---EDIT 2---

    Habe den Font geändert. Sollte jetzt unkomplizierter laufen. Port ist auf 2001 geändert, da Port 2000 schon belegt war.
    Angehängte Grafiken Angehängte Grafiken
    • Dateityp: jpg osd.jpg (49,8 KB, 303x aufgerufen)
    Anbindung Bremen: Arcor-DSL flat (2048/196)
    Anbindung Hamburg: Alice-DSL flat (2048/196)
    Router: AVM FBF 7050
    SIP-Accounts: Sipgate (040) sowie freenet.de (0421)
    OS: Mac OS X Tiger, Windows XP, Ubuntu Linux

  2. #2
    Admin-Team Avatar von rajo
    Registriert seit
    31.03.2004
    Beiträge
    1.961
    Was verstehst Du mit "Einstellung der Schriftgröße"? Einfach per Kommandozeilenparameter übergeben? Oder aus einem vorher definierten Set an Schriften per Parameter eine auswählen? Oder einfach nur irgendeine andere Schrift haben?

    Beim empfaenger.pl frage ich mich grade nur, warum Du das ganze in eine temporäre Datei reinsteckst. Kann man das evtl. nicht gleich in osd_cat reinpipen? (also "echo 'Eingehender ...' | osd_cat -p ...")

    Was jetzt das registrieren betrifft weiss ich so direkt jetzt auch nicht, müsste ich schauen.

    BTW: Netzmafia.de ist cool Sehr viele und schöne Doku, v.a. auch zu Shell-Skripts etc.

  3. #3
    IPPF-Fan Avatar von Ber5erker
    Registriert seit
    06.04.2004
    Beiträge
    305
    osd_cat möchte die Schrift und -größe in Form von "-Adobe-Helvetica-Bold-R-Normal--24-240-75-75-p-124-iso8859-15" haben. Habe schon versucht, einzelne Zahlen (z.B. die ..-24-.., die soll für die Größe stehen) zu ändern, aber ohne Erfolg.
    Mir ist und bleibt diese Form der Schriften einfach ein Rätsel

    Temporär hatte ich deswegen, weil das osd_cat ne Datei wollte...
    Das mit "echo 'Eingehender ...' | osd_cat -p ..." hab ich mal getestet und auch gleich eingebaut. Funzt super!

    Wie gesagt, ich bin kein Programmierer (oder ist PHP programmieren?) - schon gar nicht Perl. Es fängt aber an, Spass zu machen!

    Bis jetzt lief das Teil jedenfalls ohne einen Ausfall
    Anbindung Bremen: Arcor-DSL flat (2048/196)
    Anbindung Hamburg: Alice-DSL flat (2048/196)
    Router: AVM FBF 7050
    SIP-Accounts: Sipgate (040) sowie freenet.de (0421)
    OS: Mac OS X Tiger, Windows XP, Ubuntu Linux

  4. #4
    Admin-Team Avatar von rajo
    Registriert seit
    31.03.2004
    Beiträge
    1.961
    Die Schriftarten sind in dieser Schreibweise für Linux "üblich"

    Schau doch einfach mal in /etc/X11/fonts/*/ und dann in die dort liegenden Dateien. Das sind die auf Deinem System verfügbaren Schriften.

    Was das Programmieren betrifft... hmm... Definitionssache
    Aber egal -- jedenfalls sind das bisher alles recht tolle Ideen -- btw: Du hattest doch auch mal was mit Kmail-Adressbuch->SIP-Anruf gebastelt?
    *interesseanmeld*

  5. #5
    IPPF-Fan Avatar von Ber5erker
    Registriert seit
    06.04.2004
    Beiträge
    305
    Hier das call.pl für das KDE-Adressbuch.

    Das originale Script stammt von Tony Wasson, http://www.azxws.com/asterisk/

    Wie immer: das Script sieht wüst aus, funktioniert aber (bei mir jedenfalls)...

    Ein Klick auf die Telefonnummer im Adressbuch veranlasst Asterisk dazu, das Telefon klingeln zu lassen.
    Wird der Höhrer abgenommen wird die eigentliche Nummer gewählt.
    Angehängte Grafiken Angehängte Grafiken
    Angehängte Dateien Angehängte Dateien
    Anbindung Bremen: Arcor-DSL flat (2048/196)
    Anbindung Hamburg: Alice-DSL flat (2048/196)
    Router: AVM FBF 7050
    SIP-Accounts: Sipgate (040) sowie freenet.de (0421)
    OS: Mac OS X Tiger, Windows XP, Ubuntu Linux

  6. #6
    Admin-Team Avatar von rajo
    Registriert seit
    31.03.2004
    Beiträge
    1.961
    Thx Funktioniert prima!

    (btw: bei einer einzelnen Datei lohnt kein tar, da reicht gzip )

  7. #7
    IPPF-Fan Avatar von Ber5erker
    Registriert seit
    06.04.2004
    Beiträge
    305
    War etwas faul und habs auf die schnelle über das Kontex des Konqueror gemacht

    Das ist gut, wenns bei dir auch geht. Das original-Script wollte bei mir nämlich nicht funktionieren...

    Muss sagen, dass nach all den anfänglichen Schwierigkeiten mir dieses Asterisk immer besser gefällt - vor allem die vielen Schnittstellen, die man nutzen kann!
    Anbindung Bremen: Arcor-DSL flat (2048/196)
    Anbindung Hamburg: Alice-DSL flat (2048/196)
    Router: AVM FBF 7050
    SIP-Accounts: Sipgate (040) sowie freenet.de (0421)
    OS: Mac OS X Tiger, Windows XP, Ubuntu Linux

  8. #8
    Admin-Team Avatar von rajo
    Registriert seit
    31.03.2004
    Beiträge
    1.961
    Muss sagen, dass nach all den anfänglichen Schwierigkeiten mir dieses Asterisk immer besser gefällt - vor allem die vielen Schnittstellen, die man nutzen kann!
    Jupp, genau das ist eine *der* Stärken von Asterisk (neben den Protokollen und Codecs) - man kann sich im Prinzip fast jede fehlende Anwendung ergänzen. (z.B. auch Steuerung von Dingen über Telefon durch Senden von DTMF -> DialAnMP3)

    (siehe auch http://graphics.cs.uni-sb.de/VCORE/recordings.html -> "Asterisk Open Source PBX" falls Du das Video noch nicht kennst)

  9. #9
    Grandstream-Guru Avatar von betateilchen
    Registriert seit
    30.06.2004
    Ort
    am Letzenberg
    Beiträge
    12.888
    Tolle Sache - hat das mit der OSD-Anzeige mal jemand getestet, wenn der Asterisk-Server in Frankfurt (mit fester IP) steht und der Client-PC in einer anderen Stadt (mit dynamischer IP - DynDNS registriert) ?

    Habe mich selbst mit Perl noch nicht befaßt, aber so ein großer Aufwand kann es glaub ich nicht sein, das auch über einen DynDNS-Namen als Client zu realisieren.

    Doku lesen vor dem Posten einer Frage würde helfen, einen Großteil der hier immer wiederkehrenden Grundsatzfragen zu vermeiden!

    Alles mit ...box am Ende ist mir suspekt. Egal ob Fritz... Trix... Horst... oder was anderes am Anfang steht. Einzige Ausnahme: Match...

    Jetzt erhältlich: Das Buch zum Kurs! Betateilchen's Asterisk Baukasten

    Bitte keine unaufgeforderten Supportanfragen per PN !

  10. #10
    IPPF-Fan Avatar von Ber5erker
    Registriert seit
    06.04.2004
    Beiträge
    305
    Sollte gehen, da es ein einfaches Client/Server-Prinzip ist. Port lässt sich in dem Script für die eigenen Bedürfnisse einstellen.

    Das Script ist für die Nutzung unter Linux - sowohl Server als auch Client - weil sich dort mit einfachen Mitteln die OSD-Ausgabe einbinden lässt.
    Obs auch unter Win zum laufen zu bringen ist weiß ich leider nicht
    Anbindung Bremen: Arcor-DSL flat (2048/196)
    Anbindung Hamburg: Alice-DSL flat (2048/196)
    Router: AVM FBF 7050
    SIP-Accounts: Sipgate (040) sowie freenet.de (0421)
    OS: Mac OS X Tiger, Windows XP, Ubuntu Linux

  11. #11
    Grandstream-Guru Avatar von betateilchen
    Registriert seit
    30.06.2004
    Ort
    am Letzenberg
    Beiträge
    12.888
    Ich arbeite ausschließlich unter Linux

    Meine Frage ging einfach nur dahin, wie das Skript auf der Server-Seite abzuändern wäre, um dort einen Rechnernamen anstatt einer IP zu verwenden.

    Doku lesen vor dem Posten einer Frage würde helfen, einen Großteil der hier immer wiederkehrenden Grundsatzfragen zu vermeiden!

    Alles mit ...box am Ende ist mir suspekt. Egal ob Fritz... Trix... Horst... oder was anderes am Anfang steht. Einzige Ausnahme: Match...

    Jetzt erhältlich: Das Buch zum Kurs! Betateilchen's Asterisk Baukasten

    Bitte keine unaufgeforderten Supportanfragen per PN !

  12. #12
    IPPF-Aufsteiger Avatar von dora71
    Registriert seit
    25.09.2004
    Beiträge
    50
    Hallo zusammen,

    wollte auch die beiden Scripts von Ber5erker ausprobieren, leider habe ich wohl noch Probleme mit OSD und keine Ahnung wie ich die beseitigen kann. Ich bekomme als Fehlermeldung immer, egal welchen Font ich mit der Option -f bei osd_cat eingebe: "Error initializing osd: Default font not found".
    Die Ausgabe bleibt auch unter dem root-Benutzer gleich, kann also keine Rechte-Problematik sein (oder?).

    Habe daraufhin schon einmal ein wenig recherchiert:
    Sowohl die Eingabe von "xlsfonts" als auch die Eingabe von "fslsfonts -server unix/:7100" zeigen mir die gesamten Fonts auf, also das scheint ok zu sein.

    Habt Ihr dafür eine Lösung parat? Ich benutze hier übrigens Debian Sarge.

    Grüsse

    Dora71

  13. #13
    IPPF-Zweitausend-VIP
    Registriert seit
    22.08.2004
    Ort
    LE
    Beiträge
    2.027

    noch ein script für die D-BOXII

    Hi,

    hab mal ebend ein Script für die D-BoxII (unter Neutrino) verfasst. Hiermit ist es möglich Informationen über den Anrufer direkt auf dem Bildschirm darzustellen.

    Code:
    #!/usr/bin/perl -w
    # dboxmessage.pl -- Sendet eine Nachricht an die D-BoxII unter Neutrino. 
    # ARGV&#91;0&#93; - IPadresse der Box
    # ARGV&#91;1&#93; - Port des nhttpd &#40;zu finden unter /var/tuxbox/config/nhttpd.conf&#41;
    # ARGV&#91;2&#93; - Machrichtentyp popup|nmsg  
    # ARGV&#91;3&#93; - informationen über den Anrufer
    
    use strict; 
    use LWP&#58;&#58;UserAgent;
    
    my &#40;$url, $ua, $request, $response&#41;;
    my $ip = $ARGV&#91;0&#93;;
    my $port = $ARGV&#91;1&#93;;
    my $messagetype = $ARGV&#91;2&#93;;
    my $anrufer = $ARGV&#91;3&#93;;
    
    #$url = "http&#58;//172.17.1.150/control/message?popup=Anruf von&#58; ".$ARGV&#91;0&#93;;
    $url = "http&#58;//".$ip."&#58;".$port."/control/message?".$messagetype."=Anruf von&#58; ".$anrufer;
    
    print $url, "\n";
    $ua = LWP&#58;&#58;UserAgent->new&#40;&#41;;
    
    $request = HTTP&#58;&#58;Request->new&#40;'GET', $url&#41;;
    $response = $ua->request&#40;$request&#41;;
    #print $response->code ,"\n";
    Anbindung: T-DSL 768/128, Arcor DSL-Flat 2 MBit/256kbits
    Router: Cisco 806
    Server: Asterisk branch 1.8
    Phone(s): Cisco 7970, Cisco 7971, Cisco 7906, Cisco 7912, Cisco 7921, Cisco 7940, iphone
    channel: chan-sccp-b v4.2 IPv6
    Provider: sipgate.de, sipphone.com

  14. #14
    IPPF-Fan Avatar von Ber5erker
    Registriert seit
    06.04.2004
    Beiträge
    305
    @dora71: versuchs mal mit

    -adobe-helvetica-bold-*-*-34-*-*-

    als Font. Sollte dann eigentlich gehen.
    Anbindung Bremen: Arcor-DSL flat (2048/196)
    Anbindung Hamburg: Alice-DSL flat (2048/196)
    Router: AVM FBF 7050
    SIP-Accounts: Sipgate (040) sowie freenet.de (0421)
    OS: Mac OS X Tiger, Windows XP, Ubuntu Linux

  15. #15
    Grandstream-Guru Avatar von betateilchen
    Registriert seit
    30.06.2004
    Ort
    am Letzenberg
    Beiträge
    12.888
    Ok - Nachdem ich es nun geschafft habe, das Skript auch "quer durch die Republik" zum Laufen zu bringen (Danke Ber5erker !) bleibt eine einzige Frage.

    Und zwar zum Thema "Programm läuft im Hintergrund"

    Wann, Wo und Wie muß ich den Client starten, damit das Programm auch wirklich stabil im Hintergrund funktioniert ?

    Wenn ich nach dem Start des X den Client in einem Terminalfenster starte und dieses Fenster offen lasse - dann klappt alles.

    Wenn ich dieses Terminalfenster dann schließe, läuft der Prozeß zwar weiter, aber ich erhalte keine Anzeigen mehr.

    Wenn ich den Client im Rahmen der allgemeinen Start-Skripte (also VOR X) starte, dann funktioniert es überhaupt nicht, obwohl der Client im Hintergrund als Prozeß läuft.

    Doku lesen vor dem Posten einer Frage würde helfen, einen Großteil der hier immer wiederkehrenden Grundsatzfragen zu vermeiden!

    Alles mit ...box am Ende ist mir suspekt. Egal ob Fritz... Trix... Horst... oder was anderes am Anfang steht. Einzige Ausnahme: Match...

    Jetzt erhältlich: Das Buch zum Kurs! Betateilchen's Asterisk Baukasten

    Bitte keine unaufgeforderten Supportanfragen per PN !

  16. #16
    IPPF-Fan Avatar von Ber5erker
    Registriert seit
    06.04.2004
    Beiträge
    305
    Ich habe bei mir im Ordner ~/.kde/Autostart eine Datei namens empfaenger.sh mit folgendem Inhalt angelegt:

    Code:
    #!/bin/bash
    
    perl ~/bin/empfaenger.pl
    Anbindung Bremen: Arcor-DSL flat (2048/196)
    Anbindung Hamburg: Alice-DSL flat (2048/196)
    Router: AVM FBF 7050
    SIP-Accounts: Sipgate (040) sowie freenet.de (0421)
    OS: Mac OS X Tiger, Windows XP, Ubuntu Linux

  17. #17
    IPPF-Einsteiger
    Registriert seit
    07.11.2005
    Beiträge
    1
    dora71, wahrscheinlich liegt das Problem mit osd an deinen locales Einstellungen. Mit LANG=de_DE@Euro bekam ich den selben Fehler wie du. Als ich die locales dann auch LANG=de_DE umstellte hat alles einwandfrei funktioniert.
    Danke an Martin Maurer, dem Verfasser des licq-osd-plugins.

    Achja, in der /etc/profile kannst du die LANG-Variable verändern.

  18. #18
    Grandstream-Guru Avatar von betateilchen
    Registriert seit
    30.06.2004
    Ort
    am Letzenberg
    Beiträge
    12.888
    Ich habe nach langer Zeit mal wieder das Script ausgegraben und aktiviert. Übrigens verwende ich als Font für osd_cat:

    -f '-b&h-lucida-bold-r-normal-*-*-240-*-*-p-*-*-*'

    da sieht man wenigstens was auf dem Bildschirm
    [hr:237dfa200b]
    Was mir jetzt noch fehlt, ist das Sender-Script in einer Version, die mit "microperl" auf dem Linksys-Asterisk-Router laufen würde ...

    Doku lesen vor dem Posten einer Frage würde helfen, einen Großteil der hier immer wiederkehrenden Grundsatzfragen zu vermeiden!

    Alles mit ...box am Ende ist mir suspekt. Egal ob Fritz... Trix... Horst... oder was anderes am Anfang steht. Einzige Ausnahme: Match...

    Jetzt erhältlich: Das Buch zum Kurs! Betateilchen's Asterisk Baukasten

    Bitte keine unaufgeforderten Supportanfragen per PN !

  19. #19
    IPPF-Fan
    Registriert seit
    12.06.2008
    Beiträge
    236
    Ich weiß ja nicht, ob außer mir noch jemand ein auf Windows basierendes Mediacenter einsetzt, aber ich sowas für .Net realisiert. Läuft bei mir schon ganz gut. Das Ergebnis meiner Bemühungen gibt es hier:
    http://www.gsurf.de/index.php?id=63
    Meine Webseite mit Infos zu Asterisk: www.gsurf.de

Ähnliche Themen

  1. CallerID auf anderem Telefon anzeigen mit GS idle Screen
    Von dasgute im Forum GXP2000 / GXP2020 / BT200
    Antworten: 15
    Letzter Beitrag: 12.10.2009, 04:48
  2. Ort anzeigen lassen
    Von djangp im Forum JFritz
    Antworten: 11
    Letzter Beitrag: 07.08.2008, 12:20
  3. locale ip anzeigen lassen
    Von Fishi im Forum FRITZ!Box Fon: Modifikationen
    Antworten: 2
    Letzter Beitrag: 18.11.2007, 22:16
  4. Festnetz Nr. anzeigen lassen
    Von alicante im Forum Freenet VoIP
    Antworten: 5
    Letzter Beitrag: 10.10.2006, 11:53
  5. CallerID und CallerIDName auf Gigaset m740 anzeigen
    Von glotzi im Forum Asterisk Skripte
    Antworten: 4
    Letzter Beitrag: 05.07.2006, 20:33

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •