1. Ich nutze die Version 2.0 von topTapi und möchte nun ein Update auf die neue Version 3.0 durchführen. Wie muss ich vorgehen?
Ein Update von Version 2.0 auf die Version 3.0 ist möglich. Wir bieten ein kostengünstiges Update an. Weitere Informationen erhalten Sie unter:
http://www.toptapi.de/bestellung.html
TopTapi Version 3.0 ist nicht kompatibel mit toptTapi Version 2.0
2. Kann ich topTapi auch unter .NET nutzen?
Ja, Sie können topTapi auch in .NET einsetzen. Dies gilt für die DLL Version sowie die ActiveX Version. Bei der Installation werden entsprechende Beispiele angelegt.
3. Ich möchte in meiner Anwendung keine Fenster nutzen, die Anwendung soll als reine Konsolenanwendung oder als Windows Dienst im Hintergrund arbeiten. Kann ich topTapi in diesem Fall einsetzen?
Sie können hierzu das topTapi ActiveX Steuerelement nicht einsetzen, da dieses immer ein Fenster benötigt (Container) auf dem es plaziert wird. Nutzen Sie hierzu die DLL Version von topTapi. Diese DLL (topTapi3.dll) ist im topTapi Paket enthalten und muß nicht getrennt lizensiert werden.
4. Im Event OnCallState wird der CallState DISCONNECTED nicht immer gemeldet, wenn ein Gespräch beendet wurde. Ist das ein Problem des genutzten TSP?
LINECALLSTATE_DISCONNECTED wird nur gemeldet wenn die Gegenstelle das Gespräch beendet oder die Verbindung auf Grund eines Fehlers getrennt wurde.
5. Funktioniert topTapi auch mit einer Telefonanlage des Herstellers xyz oder einem Telefon der Marke ABC?
topTapi arbeitet mit allen tapifähigen Geräten zusammen. Uns sind keine Einschränkungen im Bezug auf spezielle Hersteller bekannt. Wenn Ihnen ein passender TSP (Tapitreiber) zur Verfügung steht, sollte dieser auch mit topTapi funktionieren. Beachten Sie jedoch bitte, dass nur die Features von topTapi funktionieren, die vom verwendeten TSP unterstützt werden.
6. Ich versuche einen TSP zu öffnen, aber es wird nur die Fehlermeldung „LINEERR_INVALMEDIAMODE“ gemeldet.
topTapi versucht, den TSP mit folgender Standardeigenschaft zu öffnen:
LINEMEDIAMODE_INTERACTIVEVOICE
Das sollte für alle TSP (Telefon) funktionieren.
Rufen Sie "getMediaModes (CDeviceId As Long) As- " auf, um zu erfahren welche Mediamodes vom ausgewählten TSP unterstützt werden und setzten sie dann die entsprechende Eigenschaft vor dem öffnen des TSP.
7. Einige topTapi Funktionen funktionieren nicht. Ich erhalte nur eine Fehlermeldung „LINEERR_OPERATIONUNAVAIL“.
Warum kann ich diese Funktionen nicht nutzen?
Alle Funktionen die topTapi anbietet stehen nur dann zur Verfügung, wenn sie vom ausgewählten TSP unterstützt werden. Führen sie die Methode "getCallFeatures (CDeviceId As Long) As- " aus, um zu erfahren welche Callfeatures (Funktionen für ein Gespräch) zur Verfügung stehen.
Die Funktion getActiveCallFeatures (CDeviceId As Long, Optional CCallHandle As Long) As- gibt die Features zurück, die für den aktuellen CallState zur Verfügung stehen.
8. Wenn von meinem Telefon aus eine Verbindung aufgebaut wird, möchte ich über „CalledID“ die gewählte Rufnummer auslesen.
Der installierte TSP unterstützt das CallInfo „CalledID“, aber das Event „OnCalledID“ wird nicht ausgelöst.
Ob und wann die „CalledID“ gesendet wird, hängt vom TSP ab. Manche TSP senden die „CalledID“ erst, wenn eine Verbindung (CONNECT) zustande kommt, andere wiederum senden eine „CalledID“ nur dann, wenn die Verbindung über die eigene Anwendung aufgebaut wurde.
9. Wie kann ich alle installierten TSP in einer Liste sichtbar machen, um dann den Gewünschten auszuwählen?
Nach dem TapiLineInit- ausgeführt worden ist, stehen Ihnen alle benötigten Angaben zur Verfügung um dieses zu realisieren.
DeviceCount- gibt die Anzahl der installierten TSP zurück.
Sie können jetzt über eine For/Next Schleife alle TSP in eine Liste (z.B. ComboBox) schreiben.
Beispiel:-
Dim x As Long-
Dim Anzahltreiber As Long-
Anzahltreiber = topTapi1.DeviceCount-
For x = 0 To Anzahltreiber - 1-
Combo1.AddItem topTapi1.getDeviceName(x)-
Next
10. Ich möchte ein Gespräch Parken, der TSP unterstützt diese Funktion auch, aber es funktioniert nicht.
Woran liegt das?
topTapi unterstützt nur das „Direkte“ Parken (LINEPARKMODE_DIRECTED) von Gesprächen.Rufen Sie getParkModes (CDeviceId As Long) auf, um zu erfahren ob das direkte Parken von Ihrem TSP unterstützt wird.
Beachten sie auch, dass ein Parameter benötigt wird, der den „Parkplatz“ angibt.
11. Wie kann ich MFV Signale senden, um z.B. einen Anrufbeantworter abzufragen?
Das geht mit der Funktion TapiLineGenerateDigits(CDeviceId As Long, CDigits As String, Optional CCallHandle As Long)- . Bei einigen TSP muss vorher am Telefon die MFV-Wahl eingeschaltet werden. Rufen Sie getCallFeatures (CDeviceId As Long) As- auf, um zu erfahren ob GENERATEDIGITS unterstützt wird.
12. Mein TSP unterstützt das Callinfo „CHARGINGINFO“, und die Gebühreneinheiten werden auch nach Gesprächsende an meinem Telefon angezeigt,
aber es wird kein Event „OnChargeInfo“ ausgelöst.
Warum?
topTapi löst dieses Event nur aus, wenn Gebühreninformationen während des Gespräches übermittelt werden.
13. Ich möchte in meiner Anwendung nur die Funktionen für den Nutzer „sichtbar“ machen, die auch tatsächlich aktuell zur Verfügung stehen. Wie kann ich das realisieren?
Plazieren Sie die Funktion: getActiveCallFeatures (CDeviceId As Long, Optional CCallHandle As Long) As- Long im Event OnCallState (CDevicdeId As Long, CCallHandle As Long, CCallId As Long, CCallstate As Long)-. Bei jeder Änderung des Callstates werden dann die verfügbaren CallFeatures zurückgegeben (Long). Sie können jetzt die in diesem String enthaltenen Informationen auswerten und dann die entsprechenden Funktionen „sichtbar“ machen. Sehen Sie sich das Beispielprojekt „allFeatures“ an, dort wird ein möglicher Lösungsweg aufgezeigt.
Beachten Sie jedoch, dass die von TSP gelieferten Infos u.U. nicht immer korrekt sein müssen. Manche TSP geben z.B. ein <UNHOLD> als verfügbares Feature zurück, obwohl dieses zu diesem Zeitpunkt nicht zur Verfügung steht.
14. Wie kann ich die Zeitdauer eines Gespräches messen?
Starten Sie die Zeitmessung, sobald im Event OnCallState (CDevicdeId As Long, CCallHandle As Long, CCallId As Long, CCallstate As Long)- ein „LINECALLSTAE_CONNECTED“ ausgegeben wird. Beenden Sie die Zeitmessung, sobald „LINECALLSTATE_IDLE“ ausgegeben wird.
Prüfen Sie vorher nach, ob „LINECALLSTATE_CONNECTED“ und „LINECALLSTATE_IDLE“ unterstützt werden.
Der Parameter CCallHandle im Event OnCallState (CDevicdeId As Long, CCallHandle As Long, CCallId As Long, CCallstate As Long)- gibt eine eindeutige Bezugsnummer für das Gespräch zurück.
15. An meinem ISDN Telefon werden Anrufe für verschiedene MSN signalisiert. Wie kann ich herausfinden, welche MSN angerufen wurde?
Über das Event OnCalledId wird mitgeteilt, welche MSN angerufen wurde.
16. TapiLineShutdown oder shutdownControl, was muss ich wann aufrufen?
TapiLineShutdown trennt nur die Verbindung zur TAPI. topTapi ist aber weiterhin in Betrieb und kann über TapiLineInit- wieder an TAPI gebunden werden.
shutdownControl- muss aufgerufen werden, wenn die Form, die topTapi enthält, entladen wird. TopTapi steht dann nicht mehr zur Verfügung.
17. Wie erfahre ich, wenn bei meinem Telefon der Hörer abgenommen wurde?
Wenn vom TSP unterstützt, wird nach Abheben des Hörers das Event OnCallstate mit dem Callstate DIALTONE (Wählton) ausgelöst. Zusätzlich wird das Event OnDialtone ausgelöst und übergibt als Parameter die vom TSP gesendete Art des Wähltones.
18. Wie erfahre ich, ob ein Anruf entgegengenommen wurde?
Ein kommendes Gespräch wird im Event OnCallstate durch den Callstate OFFERING gekennzeichnet. Sobald das Gespräch angenommen wurde, wechselt der Callstate nach CONNECTED. Zusätzlich wird das Event OnConnected ausgelöst und übergibt als Parameter den vom TSP gesendeten Modus der Verbindung.
19. Wie kann ich die Rufnummer des Anrufers auslesen?
TopTapi löst das Event OnCallerId aus, sobald eine Information über die Rufnummer des Anrufers vorliegt. Der Parameter CNumber As String gibt diese Rufnummer zurück. Zusätzlich besteht die Möglichkeit, die CallerId über die topTapi Methode „getRelevantCallInfos“ manuell abzufragen. Hierbei muss im Parameter CInfo CRI_CALLERID (2&) gesetzt werden.
20. Wie kann ich einen ankommenden Anruf abblocken?
Falls vom TSP unterstützt, können Sie ein kommendes Gespräch mit TapiLineDrop abblocken.
21. Wie kann ich die Anzahl der Rufe ermitteln?
Das Event OnRinging(CRingMode As Long, CRingCount As Long) gibt im Parameter CRingCount die Anzahl der Rufe zurück. Bei jeder Änderung der Anzahl wir dieses Event ausgelöst und die Anzahl der Rufe übergeben. Nicht jeder TSP unterstützt dieses Feature.
22. Wie kann ich ein Gespräch weitervermitteln?
topTapi bietet mehrere Möglichkeiten, ein Gespräch weiterzuvermitteln. Die Vorgehensweise ist abhängig vom verwendeten TSP.
TapiLineBlindTransfer vermittelt ein Gespräch direkt an die angegebene Rufnummer.
TapiLineSetupTransfer legt ein Gespräch auf „Warten“. Sie haben jetzt die Möglichkeit, mit TapiLineDial einen anderen Anschluss anzuwählen. TapiLineCompleteTransfer vermittelt das Gespräch an den angewählten Anschluss.
23. Ich erhalte beim Versuch, ein gehendes Gespräch aufzubauen die Fehlermeldung LINEERR_INVALADDRESS. Die Rufnummer ist aber korrekt; warum erscheint trotzdem diese Fehlermeldung?
Die Fehlermeldung LINEERR_INVALADDRESS weist in der Regel auf eine Rufnummer hin, die nicht im richtigen Format eingegeben wurde. Ursache für diese Fehlermeldung kann jedoch auch ein falsch gesetzter ADDRESSMODE sein. Prüfen Sie mit getAddressModes (deviceid As Long) As Long nach, welcher ADDRESSMODE vom ausgewählten TSP unterstützt wird. Setzten Sie dann den unterstützten ADDRESSMODE, bevor Sie ein Gespräch aufbauen möchten. Führt auch diese Vorgehensweise nicht zum Erfolg, setzten Sie den ADDRESSMODE auf &H0.
24. Nachdem ich mit TapiLineHold ein Gespräch auf „Warten“ gelegt habe, steht mir aber kein UNHOLD zur Verfügung. Warum nicht, und wie kann ich dieses Gespräch zurückholen?
Ob ein UNHOLD unterstützt wird, hängt vom verwendeten TSP ab. Falls nicht unterstützt, können Sie mit TapiLineDrop das Gespräch zurückholen.
25. Was passiert bei der Installation von topTapi? Welche Dateien werden auf meinen Rechner kopiert, und welche Registrierungseinträge werden vorgenommen.
Zusätzlich zu den im Abschnitt "Installation Ihrer topTapi Anwendung" genannten Dateien werden die Beispielprojekte für Visual Basic, Access und Delphi, sowie die Dokumentation auf Ihre Festplatte kopiert. In der Windows Registrierung wird ein Eintrag zur korrekten Registrierung von topTapi angelegt. (Dieser Wert hat keinen Bezug zu den Lizenzdaten, die für topTapi benötigt werden)
26. Ich möchte in meiner Anwendung nur mit einem bestimmten TSP arbeiten. Die Auswahl des Treibers soll nicht vom Anwender getroffen werden. Wie kann ich das mit topTapi realisieren?
Für die Auswahl eines Treibers sind folgende Punkte interessant:
Der Treibername, die ProviderInfo und die Switchinfo.
Beispiel:
Auswahl eines TSP anhand des Treibernamens. Here „AVM ISDN TAPI Services for CAPI“-
-
topTapi1.TapiLineInit-
-
-
Dim X As Long-
-
For X = 0 To topTapi1.DeviceCount - 1-
If topTapi1.getDeviceName(X) = "AVM ISDN TAPI Services for CAPI" Then-
topTapi1.TapiLineOpen (X, LINEMEDIAMODE_INTERACTIVEVOICE, LINECALLPRIVILEGE_OWNER)-
Exit For-
End If-
Next X-
Die Auswahl eines TSP anhand der Providerinfo oder Switchinfo erfolgt auf die gleiche Art. Nutzen Sie die topTapi Funktionen „.getProviderInfo“ und „.getSwitchInfo“.
Beachten Sie jedoch bitte, das nicht jeder TSP diese Informationen liefert.
27. Kann ich mit meinem analogen Modem Gespräche weitervermitteln?
Die TAPI Funktionen zum Weitervermitteln von Gesprächen funktionieren an einem analogen Modem nicht. Das liegt an den Einschränkungen des Windows Modemtreibers (UNIMODEM).
Folgendes Beispiel kann möglicherweise (abhängig vom verwendeten Modem) zum Vermitteln von Gesprächen genutzt werden:
Gespräch im Callstate „CONNECTED“-
-
topTapi1.TapiLineGeneratheDigits MyDeviceId, "!"-
topTapi1.tapiLineDial MyDeviceId, "xxx"-
topTapi.TapiLineDrop MyDeviceId-
28. Ist es möglich, den derzeitigen Status der Leitung zu erfahren ohne dass sich dieser ändern muss? (Auswertung über die Events)
Sie können über „getCallRelevantInfos“ den aktuellen Status eines Gespräches abfragen.
29. Ich benutze ein analoges Modem. Bei gehenden Gesprächen wird der Callstate CONNECTED angegeben, obwohl das Gespräch noch nicht von der Gegenstelle angenommen wurde. Das Modem erkennt auch nicht, wenn die Gegenstelle das Gespräch beendet hat.
Das ist leider normal. Analoge Modems sind nicht in der Lage, den aktuellen Gesprächsstatus korrekt zu erfassen. Der Callstate CONNECTED wird gemeldet, sobald der Wahlvorgang abgeschlossen ist.
30. Meine ISDN Karte untertsützt das Merkmal blindTransfer, aber es funktioniert nicht an meiner TK Anlage. Auch einige andere Features funktionieren nicht wie gewünscht.
Beim Einsatz einer ISDN Karte oder eines ISDN Telefons an einer TK Anlage müssen auch beide Geräte (ISDN Karte/Telefon und die TK Anlage) das gewünschte Feature unterstützen. Das ist jedoch nicht immer der Fall. Speziell im Bereich transfer (vermitteln) oder redirecting (weiterleiten) ist es möglich, das diese Features nicht korrekt funktionieren.
31. Nachdem ich mit TapiLineOpen eine Leitung geöffnet habe, steht mir der aktuelle Status der Leitung nicht zur Verfügung. Wie kann ich diesen Status erfahren?
Nachdem eine Leitung geöffnet wurde können Sie mit „getNewCalls“ das CallHandle eines vorhanden Gespräches auf der Leitung abfragen. Dieses CallHandle können Sie dann mit der Funktion „getCallRelevantInfos“ nutzen um den Status (CallState) undere Infos (CallerId, usw.) zu erhalten. Ist der Rückgabewert von „getNewCalls“ 0, so ist kein Gespräch auf der Leitung aktiv. „getNewCalls“ gibt nur dann ein CallHandle für ein Gespräch zurück, wenn dieses der Anwendung noch nicht bekannt ist! „getNewCalls kann nur dann ein CallHandle für ein Gespräch ermitteln, wenn dem TSP auch ein CallHandle bekannt ist.. Wenn z.B die Hardware dem TSP nach öffnen einer Leitung keine Informationen zu einem bestehenden Gespräch übergibt, kann dieser auch kein CallHandle bei „getNewCalls“ liefern.
32. Was ist ein Phone device? Wie kann ich es nutzen?
Eine Tapi Gerät (z.B. Telefon) wird über den TSP (Tapi Service Provider) angesprochen. Der TSP enthält ein "line device", das es ermöglicht Gespräche aufzubauen, anzunehmen und zu trennen usw. Zusätzlich kann der TSP für das Gerät auch ein "phone device" anbieten. Das phone device ermöglicht z.B. den Zugriff (auslesen oder änderen) des Telefondisplays oder der LED's am Telefon. Außerdem besteht die Möglichkeit, den Staus des Gabelumschalters (HookSwitch) zu ermitteln oder zu setzen. TopTapi unterstützt in der Professional Version das phone device eines TSP. Hierzu gibt es zwei Methoden zum Zugriff auf dieses device. Zum einen können Sie bei TapiLineOpen das Flag FL_PHONEOPEN setzen, topTapi öffnet dann automatisch auch das zugehörige phone device falls vorhanden.
Zum anderen können Sie das phone device auch ansprechen indem Sie die PHONE_ Funktionen von topTapi einsetzen. Diese Funktionen können Sie unabhängig davon einsetzen ob ein line device geöffnet ist. Bei manchen TSP besteht nur diese Möglichkeit zum zugriff auf das phone device, da es bei manchen TSP leider nicht möglich ist, bei TapiLineOpen zu ermitteln ob ein phone device unterstützt wird.