Zum Hauptinhalt springen

EvtTapi

EvtTapi

Ereignis bei Telefonanrufen

Details

Die angegebene Prozedur wird ausgeführt, wenn die TAPI-Schnittstelle ein Ereignis für einen eingehenden oder ausgehenden Anruf signalisiert. Für das Gerät muss zuvor mit dem Befehl TapiListen () die Überwachung aktiviert worden sein.

Definition des Funktionskopfes:

sub EvtTapi
(
aEvt : event; // Ereignis
aTapiDevice : handle; // Tapi Device
aCallID : int; // Call-ID
aCallState : int; // Anrufstatus
aCallTime : caltime; // Datum und Uhrzeit des Anrufes
aCallerID : alpha; // Rufnummer des Anrufers
aCalledID : alpha; // Rufnummer des Anschlusses auf dem angerufen wird
)
: logic; // Wird nicht ausgewertet
{
return(true);
}

aEvt

In aEvt wird ein Parameter vom Typ event übergeben. In diesem Parameter wird unter anderem der Deskriptor des auslösenden Objekts, d. h. das Objekt, in dem die Ereignisfunktion eingetragen wurde, übergeben.

aTapiDevice

In diesem Parameter wird der Deskriptor des TAPI-Gerätes, dass das Ereignis auslöste, übergeben. Dabei handelt es sich um den Deskriptor, der durch TapiDial () oder TapiListen () zurückgeliefert wurde.

aCallID

Der hier übergebene Wert kennzeichnet die eingehenden oder ausgehenden Anruf eindeutig. Die Call-ID wird durch den Telefon-Service-Provider generiert. Jeder Anruf hat seine eigene ID.

aCallState

Dieser Parameter gibt den Zustand des Anrufs an. Der übergebene Wert kann mit folgenden Konstanten verglichen werden:

Bei ausgehenden Anrufen wird das EvtTapi mit CallStates in der folgenden Reihenfolge aufgerufen:

Bei eingehenden Anrufen ist es diese Reihenfolge:

aCallTime

Hier wird das Datum und die Uhrzeit des Anrufes übergeben. Der Aufruf des Ereignisses kann sich durch die Verarbeitung anderer Funktionen verzögern. Der Übergabeparameter gibt den tatsächlichen Zeitpunkt des Ereignisses an. Der Übergabewert kann mit den bei caltime angegebenen Methoden in die einzelnen Bestandteile zerlegt werden.

aCallerID und aCalledID

In diese Zeichenketten werden die Rufnummer des Anrufers und des Angerufenen übergeben, die die TAPI-Schnittstelle vom TAPI Service Provider bekommen hat. Die Informationen können auch leer sein, wenn der Provider sie nicht ermitteln konnte. Bei einem eingehenden Anruf sind diese Informationen normalerweise vorhanden, wenn der Zustand _TapiCallStateOffer oder _TapiCallStateConnected ist.

Bei einem ausgehendem Anruf sind diese Informationen normalerweise vorhanden, wenn der Zustand _TapiCallStateProceeding oder _TapiCallStateConnected ist.

Der Aufbau der Zeichenketten und welcher Wert zurückgegeben wird, wenn die Rufnummer unbekannt ist, hängt vom verwendeten Gerätetreiber ab.

Resultat

Der Rückgabewert der Funktion wird nicht ausgewertet.

Beispiel

sub EvtTapi
(
aEvt : event; // Ereignis
aTapiDevice : handle; // Tapi Device
aCallID : int; // Call-ID
aCallState : int; // Anrufstatus
aCallTime : caltime; // Datum und Uhrzeit
aCallerID : alpha; // Rufnummer
aCalledID : alpha; // Rufnummer des Anschlusses auf dem angerufen wird
) : logic; // Wird nicht ausgewertet

{
switch (aCallState)
{
case _WinCallStateConnected :
{
gStartTime # aCallTime;
...
}
...
case _WinCallStateDisconnected :
{
gEndTime # aCallTime;
...
}
}
...
return (true);
}