TAPI aus Browser ansprechen?

  • Moin,

    ziemlich OT, aber einfach mal ins Blaue gefragt:
    Weiß jemand, wie ich aus einem Webrowser heraus eine Windows-API (speziell: die Telefon-API) ansprechen kann?
    Wozu?
    Wir haben hier unsere Telefone (Siemens) via USB mit den Rechnern verbunden, so daß es möglich ist, aus Outlook oder anderen Anwendungen per Mausklick Telefonverbindungen herzustellen. Dazu wird die TAPI genutzt. Jetzt wollen wir mittelfristig Outlook ersetzen, z.B. durch "PHProjekt". Da gibt es eine ähnliche Funktionalität, nur verwendet die das callto-Protokoll und damit verbunden Netmeeting. Ich dachte mir, man könnte da ja was bauen, damit eben die TAPI angesprochen wird. Das daß mit PHP nicht geht, ist mir klar. Aber vielleicht JavaScript o.ä.? Bin für jeden Hinweis dankbar.

    Gruß
    Zap

    "Wer grundlegende Freiheiten aufgibt, um vorübergehend ein wenig Sicherheit zu gewinnen, verdient weder Freiheit noch Sicherheit."
    Benjamin Franklin

    mein Rechenknecht

  • Wir haben übrigens jetzt eine Möglichkeit gefunden. Es geht zwar nur mit dem IE und niedrigsten Sicherheitseinstellungen, aber es ist ja fürs Intranet und da paßt es schon. Wenn daran jemand Interesse hat...

    Zap

    "Wer grundlegende Freiheiten aufgibt, um vorübergehend ein wenig Sicherheit zu gewinnen, verdient weder Freiheit noch Sicherheit."
    Benjamin Franklin

    mein Rechenknecht

  • Warum sollte sowas nicht mit php gehen? Ich kenne die API zwar nicht, aber eigentlich sollte man auch mit php APIs ansprechen können.

    AC-Sama(Robert Vincenz)
    (werde für das -Chan zu alt :zunge: )

  • Zitat von ac-chan

    Warum sollte sowas nicht mit php gehen? Ich kenne die API zwar nicht, aber eigentlich sollte man auch mit php APIs ansprechen können.


    wenn die API auf dem server liegen, hast du recht, aber
    a) der läuft unter Linux
    b) die Kommunikation zwischen TAPI (Rechner) und Telefon läuft lokal über eine Callbridge Software von Siemens. Die legt sich im Prinzip hinter die Windows Wählhilfe und schickt die dort eingetragene Nummer über USB an das Telefon (steht neben dem rechner). da hat der server selber nix mit zu tun. ist sicher nicht die glücklichste lösung, aber
    a) es war schon alles dafür da, nur ein fitzelchen code fehlte (falls da jetzt jemand mit der Komplettlösung XYZ kommt, die das doch alles und noch viel mehr kann)
    b) es funktioniert

    Zap

    "Wer grundlegende Freiheiten aufgibt, um vorübergehend ein wenig Sicherheit zu gewinnen, verdient weder Freiheit noch Sicherheit."
    Benjamin Franklin

    mein Rechenknecht

  • Es gibt, wie mir inzwischen zugetragen wurde, noch eine andere Möglichkeit, die ich der Vollständigkeit halber erwähnen will.
    Man kann auch ein neues Protokoll anlegen (so wie http, ftp, ...) und so beim Klick auf einen Link in der Form
    <a href="phone:+491721234567">Anrufen</a>
    die mit dem Protokoll verknüpfte Anwendung mit den gewünschten Daten füttern.
    Die Grundlagen sind hier erklärt, man braucht noch eine batch-datei, die die Nummer extrahiert, und eine "Zwischen-EXE", die die MS-Wählhilfe anspricht (direkte Parameterübergabe geht da nicht). Klingt umständlich, dafür funktionierts aber mit allen Browsern und ohne ActiveX-Installation.
    Selber ausprobiert noch nicht, aber es soll wohl klappen.

    Zap

    "Wer grundlegende Freiheiten aufgibt, um vorübergehend ein wenig Sicherheit zu gewinnen, verdient weder Freiheit noch Sicherheit."
    Benjamin Franklin

    mein Rechenknecht

  • Hi Leute!

    Ich würde gerne ebenfalls die TAPI über den Webbrowser ansprechen. Mit PHP siehts eher schlecht aus, so weit ich weiss ist das wohl nicht möglich.
    Gibt es ein ActiveX-Modul oder ähnl. welches man auf den Rechner installieren könnte und somit mit bestimmten Kommandos die TAPI ansprechen.
    Leider konnte ich dazu nix finden.

    ZapBee: Wie hast du das denn realisiert? Kannst du mir das mal Bitte erklären?

    Ich hoffe der Post wird noch gelesen, da der Thread ja nun schon über'n Jahr her ist

    Vielen Dank im Voraus!!!

  • Da ja hier immer mal wieder nachgefragt wird, nun doch eine kleine Anleitung:

    1. telefon.cab (Anhang) herunterladen
    2. telefon.cab in das Verzeichnis speichern, wo auch die "Telefonier.html" steht (bzw. von dort aus erreichbar)
    3. in deine Webseite(n) muß dieser Code rein

    Code
    <script type='text/javascript'>
      nummer = '+49 (1234) 56789'; #Die Nummer wird per HTML-Link übertragen und hier mit PHP eingefügt
    </script>
    <OBJECT ID = 'Call' CLASSID='CLSID:0B174863-3CD1-4DD6-AD57-8AE7B972754F' CODEBASE='<Pfad>/telefon.cab'></OBJECT>
    <script type='text/javascript'>
      Call.Anruf(nummer);
    </script>


    4. Beim ersten Anklicken eines Telefonier-Links erscheint ein Installationsdialog, dem zustimmen, danach gehts automatisch.

    Tipps:
    a) Am besten eine eigene kleine Seite öffnen und nach Call.Anruf(nummer) mit Window.close() wieder schließen, merkt man kaum
    b) iirc müssen die Telefonnummern im o.g. Format übergeben werden. Im Zweifelsfall an der windowseigenen Wählhilfe direkt testen, das ActiveX-Control macht nichts anderes als diese aufzurufen.

    Ich habe das ActiveX-Control nicht geschrieben, kann also nichts daran ändern, verbessern oder genauer erklären. Benutzung auf eigene Gefahr.

    Gruß
    Zap

    EDIT: Die .zip nur in .cab UMBENENNEN! nicht entpacken!

  • Kannst Du Dir Bitte nochmal das Archiv anschauen? Irgendwo iss da ein Fehler drin. Es kommt immer eine Fehlermeldung.

    THX!


    siehe EDIT: nur in cab umbenennen, nicht unzippen.

    "Wer grundlegende Freiheiten aufgibt, um vorübergehend ein wenig Sicherheit zu gewinnen, verdient weder Freiheit noch Sicherheit."
    Benjamin Franklin

    mein Rechenknecht

  • Hi! Ich muss nochmal nerven. Sorry!

    Ich hab jetzt alles so gemacht.

    Cab Datei wurde auch installiert, jedoch erscheint beim Aufruf der Seite ein Fehler.

    "Das Objekt unterstützt diese Eigenschaft oder Methode nicht."
    Zeile 6, Zeichen 3 (also "Call.Anruf" )

    <script type='text/javascript'>

    </script>
    <OBJECT ID = 'Call' CLASSID='CLSID:0B174863-3CD1-4DD6-AD57-8AE7B972754F' CODEBASE='telefon.cab'></OBJECT>
    <script type='text/javascript'>
    Call.Anruf('123456789');
    </script>
    Habs auch so probiert:

    <script type='text/javascript'>
    nummer = '123456789';
    </script>
    <OBJECT ID = 'Call' CLASSID='CLSID:0B174863-3CD1-4DD6-AD57-8AE7B972754F' CODEBASE='telefon.cab'></OBJECT>
    <script type='text/javascript'>
    Call.Anruf(nummer);
    </script>
    Kannst du mir da weiter helfen?

    Darf ich fragen wo du das Script her hast. Hab im Netz nichts dazu gefunden.

    Danke!


  • "Das Objekt unterstützt diese Eigenschaft oder Methode nicht."
    Zeile 6, Zeichen 3 (also "Call.Anruf" )
    Kannst du mir da weiter helfen?


    Funktioniert die TAPI (Wählhilfe) mit genau dieser Nummer?
    Welcher Browser/ Version? Wir habens mit dem IE 6 am Laufen, höher nicht getestet, anderer Browser geht eh nicht (wg. ActiveX)
    Niedrige Sicherheitsstufe eingestellt?


    Darf ich fragen wo du das Script her hast. Hab im Netz nichts dazu gefunden.


    habe vor zwei Jahren nach dem Threadtitel gegoogelt. Da kam eine Seite in einem Forum mit diesem Script drin. Ausprobiert, lief. Die Seite gibts inzwischen nicht mehr. Der Mann der das Teil geschrieben hat, war auch damals nicht mehr erreichbar.

    Zap

    "Wer grundlegende Freiheiten aufgibt, um vorübergehend ein wenig Sicherheit zu gewinnen, verdient weder Freiheit noch Sicherheit."
    Benjamin Franklin

    mein Rechenknecht

  • Zitat

    Funktioniert die TAPI (Wählhilfe) mit genau dieser Nummer?
    Welcher Browser/ Version? Wir habens mit dem IE 6 am Laufen, höher nicht getestet, anderer Browser geht eh nicht (wg. ActiveX)
    Niedrige Sicherheitsstufe eingestellt?

    Sollte die Wählhilfe (dialer.exe) anspringen wenn ich die Seite aufrufe?
    Ist vielleicht der Tapi-treiber Voraussetzung damit über die Seite die Wählhilfe gestartet wird?
    Also ich bin jetzt @home und ich dachte ich kanns Probeweise mal testen wobei ich hier kein Tapifähiges Endgerät habe. Hab gedacht das beim Seitenaufruf wenigstens die Wählhilfe gestartet wird.
    Browserversion ist 6.0.2900.2180.
    Sicherheitsstuffe ist auf niedrig.

    ThX

  • Also hab an meinem Laptop noch'ne Teledat USB-2ab hängen, über dieser kann ich über die Windows-Wählhilfe und der TAPI telefonieren.

    Leider kommt immer noch der Fehler beim Aufrufen der Seite.

    Hast du zufällig mal den Quellcode von deiner funktionierenden Seite?

    ThX!


  • Hast du zufällig mal den Quellcode von deiner funktionierenden Seite?


    Bin jetzt auch zuhause, Quellen liegen auf dem Arbeitsrechner. Morgen.

    Zap

    "Wer grundlegende Freiheiten aufgibt, um vorübergehend ein wenig Sicherheit zu gewinnen, verdient weder Freiheit noch Sicherheit."
    Benjamin Franklin

    mein Rechenknecht

  • So, also per Link wird die Telefonnummer übergeben:

    Code
    echo "<a href=\"anruf.php?phonenumber=".$phonenumber."\">Anrufen</a>";


    Klick darauf öffnet die anruf.php und übergibt die Nummer:

    Code
    [...]
       echo "<script type='text/javascript'>";
       echo "nummer = '" . $phonenumber . "';";
       echo "</script>";
       echo "<OBJECT ID = 'Call' CLASSID='CLSID:0B174863-3CD1-4DD6-AD57-8AE7B972754F' CODEBASE='Telefon.cab'></OBJECT>";
       echo "<script type='text/javascript'>";
       echo "Call.Anruf(nummer);";
       echo "</script>";
    [...]


    mehr mach ich nicht.
    Die Nummer mußt Du in PHP je nach Einstellung des Webservers mit $_GET[<variable>] auslesen.

    Zap

    "Wer grundlegende Freiheiten aufgibt, um vorübergehend ein wenig Sicherheit zu gewinnen, verdient weder Freiheit noch Sicherheit."
    Benjamin Franklin

    mein Rechenknecht

  • So hab den Fehler gefunden.

    Irgendwo muss meiner Meinung nach ein Fehler in der *.ini Datei sein. Diese installiert ja die Bibliotheken *.dll. Die VB6DE.DLL wurde jedoch nicht installiert, die anderen DLL's sind standardmässig vorhanden. Ich habe dann die VB6DE.DLL in's system32 kopiert.

    Das ActiveX Steuerelement *.ocx wurde auch nicht installiert -> manuell kopiert und mittels Kommando "Regsvr32.exe telefon.ocx" registriert.

    Danach klappte es wunderbar.

    Ich werd mir mal die *.ini Datei mal genauer anschauen, irgendwo da muss der Fehler liegen.

    Vielen Dank nochmal!

  • Gern geschehen.


    Irgendwo muss meiner Meinung nach ein Fehler in der *.ini Datei sein. Diese installiert ja die Bibliotheken *.dll. Die VB6DE.DLL wurde jedoch nicht installiert, die anderen DLL's sind standardmässig vorhanden. Ich habe dann die VB6DE.DLL in's system32 kopiert.


    Keine Ahnung woran das liegt. Weißt du, wenn alles klappt, frage ich nicht warum... ;D
    Aber die User, die auf ähnliche Probleme stoßen, werden's Dir danken.

    Zap

    "Wer grundlegende Freiheiten aufgibt, um vorübergehend ein wenig Sicherheit zu gewinnen, verdient weder Freiheit noch Sicherheit."
    Benjamin Franklin

    mein Rechenknecht

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!