ISDN Monitor

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • ISDN Monitor

    Hallo!

    Passt zwar nicht direkt zu PHP/SQL/HTML/JS/CSS, aber ich denke dass meine Frage im Brainstorming Forum trotzdem am besten aufgehoben ist...

    Also Folgendes: Ich will in eines meiner PHP/MySQL Systeme einen ISDN Monitor einbinden. Dazu werden auf einem Linux Server mit ISDN Karte alle Anrufe registriert und bei jedem Anruf ein Script aufgerufen welches die Daten (Uhrzeit, Telefonnummer) in einer MySQL Datenbank abspeichert. Nun habe ich ein zweites einfaches PHP Script das in der Datenbank nach dem letzten Eintrag schaut, die Telefonnummer mit dem Telefonbuch (ebenfalls in einer MySQL Datenbank) vergleicht, und dann den Name des Anrufers zurückgibt (nur wenn der Anruf nicht länger als als z.b. 10 Sekunden her ist).

    Dies funktioniert soweit ganz gut! Um es jedoch nutzen zu können müsste ich das Script jede Sekunde neu aufrufen, was natürlich ziemlich blöd ist.

    Nun meine Frage: wie würdet ihr das am besten Lösen? Ich hatte es mal mit einem Java-Applet getestet, welches im Sekundentakt das PHP Script abfrägt und deren Ausgabe anzeigt. Allerdings ist dies ziemlich unstabil, und ich möchte nicht unbedingt dass auf jedem Rechner Java geladen werden muss...

    Kann man mit Flash so etwas (ständige Datenbankabfragen) auch realisieren? Oder habt ihr andere Ideen?!?


    Über eine Antwort würde ich mich freuen!

  • #2
    Regelmäßigen Datenfluß, ohne die ganze Seite im Browser neu laden zu müssen, kriegst Du mit Java, Flash (Ja, das geht - aber auch hier wird natürlich nur ein PHp-Skript aufgerufen und verarbeitet) oder mit "JavaScript Remote Scripting":

    http://www.ashleyit.com/rs/main.htm

    Javascript Remote Scripting (JSRS) is a client-side javascript library which uses Dynamic HTML elements to make hidden remote procedure calls to the server. It only works asynchronously, but is known to work on Win9x, WinNT/2000, WinXP, Unix/Linux/BSD, and Mac with IE4+, NS4.x, NS6.x, Mozilla, Opera7 and Galeon. There are server-side implementations for ASP, ColdFusion, PerlCGI, PHP,Python, and JSP(servlet). JSRS is in production use on intranet and public sites in Canada, the US, South America, Australia, Europe, and the Middle East. JSRS is free of charge and its source is open and freely available.
    Die Datenbankabfrage mußt Du aber auf jeden Fall machen - außer, der ISDN-Monitor kann bei eingehendem Anruf eigenständig ein Skript aufrufen, das die Ausgabe aktualisiert..
    Last edited by pekka; 07-01-2005, 17:19.

    Comment


    • #3
      Wenn das mit Flash geht ist das optimal für mich!
      Dieses JavaScript Remote Scripting habe ich noch nie gehört! Muss ich mir mal genauer anschauen. Das wäre evtl. auch eine Möglichkeit.

      Dass auch bei Flash nur ein PHP Skript aufgerufen wird ist ja auch in meinem Interesse... und die vielen Datenbankabfragen sind egal da Performance genug da ist und sich alles nur im LAN abspielt.

      Vielen Dank für deine hilfreiche Antwort!

      Comment


      • #4
        Hi,

        meine Frage passt zwar gar nicht in dies Topic, aber zur ursprünglichen Frage:

        Wie schaffst Du es, bei Aktivität am S0-Bus ein Skript zu starten. Ich will das auch mit folgendem Hintergrund:
        - Unsere TK-Anlage (Elmeg) hat eine Klinkenbuchse für Wartemusik (ersetzt dann das unglaublich nervtötende Gedudel, was auf der Anlage drauf ist.)
        - diese Buchse will ich nicht von einem Diskman oder MP3-Player versorgen, sondern über die Soundkarte unseres Servers (woody). Ich will aber nicht, dass die Festplatte / der Player 24h am Tag orgelt, sondern es soll nur Musik gespielt werden, wenn sie gebraucht wird.
        - Meine Idee ist, bei Aktivität auf dem S0-Bus die Musik zu starten und bei Inaktivität wieder zu stoppen. (Ob der Anrufer dann immer in Schleife hängt und die Musik hört, ist egal.)
        - Auf dem Server laufen Hylafax und vbox mit einer Fritzcard classic.

        Habe bereits gegoogelt.
        Würde mich über Hinweise sehr freuen, auch über links mit Anleitungen.
        Danke
        www.e-kv.de

        Comment


        • #5
          hab' zwar noch nicht gemacht, aber ein Freund von mir hat über TAPI sowas ähnliches realisiert, und zwar er hat so gemacht, dass der Name und Adresse des Anrufer auf dem Moni aufgepoptwird, sobald es klingelt, dazu muss der Anrufer natürlich im Telefonbuch stehen, und es ist eine WinApp mit C++ geschrieben.

          Comment


          • #6
            hi!

            es ist zwar schon etwas länger her und ich weiß nicht mehr genau wie ich es gamacht habe, aber es funktioniert bisher super

            also zunächst muss natürlich in den linux server (bei mir suse) eine isdn karte rein (habe wie du auch eine fritz classic drin). dann muss auf dem server i4l (isdn 4 linux) installiert werden (am einfachsten natürlich mit dem package).

            das waren die voraussetzungen. jetzt muss noch i4l konfiguriert werden. dazu habe ich in der config datei isdnlog.options.contr0 folgende notwendigen optionen aktiviert:
            Code:
            # -M                      monitor={yes|no}
            # imon/imontty/isdnmon Emulator
            # Hiermit erzeugt isdnlog eine den obigen Tools entsprechende Ausgabe
            # (Achtung: -m2048 muss dann zusaetzlich angegeben werden!)
            monitor=yes
            
            # -m                      stdout="value"
            # Angabe der gewuenschten Meldungen, die angezeigt werden sollen.
            # Normalerweise ist das stderr. Es kann aber mit -C X ein anderes
            # Device sein.
            stdout=2048
            
            # -S                      start={yes|no}
            # isdnlog soll bei diversen Event's die in der 5. Spalte der isdn.conf
            # angegebenen externen Programme starten
            start=yes
            jetzt sind die voraussetzungen gegeben dass beim anruf ein programm/script gestartet wird. abschließend muss noch in der isdn.conf festgelegt werden welches programm/script ausgeführt werden soll...
            Code:
            [ISDNLOG]
            LOGFILE = /var/log/isdn.log
            ILABEL  = %b %e %T %ICall to tei %t from %N2 on %n2
            OLABEL  = %b %e %T %Itei %t calling %N2 with %n2
            REPFMTWWW       = "%X %D %17.17H %T %-17.17F %-20.20l SI: %S %9u %U %I %O"
            REPFMTSHORT     = "%X%D %8.8H %T %-14.14F%U%I %O"
            REPFMT  = "  %X %D %15.15H %T %-15.15F %7u %U %I %O"
            START = {
            	[FLAG]
            	FLAGS = IRL
            	PROGRAM = php -f /usr/local/bin/isdnmoni.php \$2
            }
            wie du sehen kannst steht da bei START ein programm dass ich starte (php -f). in meinem fall lasse ich einfach ein php script ausführen, welches als parameter die nummer des anrufers übergeben bekommt (\$2). in dem script speichere ich dann diese nummer mit uhrzeit,... in eine mysql datenbank.

            ich hoffe ich konnte dir helfen.

            Comment


            • #7
              Sollte sowas nicht mit AJAX machbar sein?
              gruss Chris

              [color=blue]Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."[/color]

              Comment


              • #8
                @magman:
                Danke für die schnelle Antwort, werde mich gleich dransetzen!
                www.e-kv.de

                Comment

                Working...
                X