EvtTapi
EvtTapi
Ereignis bei Telefonanrufen
Details
- Name: Typ Beschreibung
- aEvt:
eventEreignisinformationen - aTapiDevice:
handleDeskriptor des Tapi-Devices - aCallID:
intCall-ID - aCallState:
intStatus des Anrufs - aCallTime:
caltimeDatum und Uhrzeit des Anrufes - aCallerID:
alphaRufnummer des Anrufers - aCalledID:
alphaRufnummer des Anschlusses, der angerufen wird - Resultat:
logicWird nicht ausgewertet - Siehe: Liste , Objekte ,
TapiListen (), Ereignisbefehle , Aus- und Eingehende Telefonate (Blog) , Ereignisreihenfolge (Blog) , Monitoring (Blog)
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:
- Konstante: Eingehender Anruf Ausgehender Anruf Bemerkung
_TapiCallStateInfo:Die Informationen
aCallerIDundaCalledIDhaben sich geändert._TapiCallStateOffer:Ein neu einkommender Anruf wird signalisiert.
aCallerIDundaCalledIDenthalten, sofern vom TAPI-Treiber unterstützt, entsprechene Anruf- und Anrufer-Informationen._TapiCallStateProceeding:Der Zustand kann nur bei asynchronem
TapiDial ()auftreten. Der Wählvorgang wurde abgeschlossen und wird vom Telefonnetz weitervermittelt. Der Zustand tritt nach dem Wählen jedoch vor_TapiCallStateRingBack,_TapiCallStateBusy,_TapiCallStateConnectedoder_TapiCallStateDisconnectedauf._TapiCallStateRingBack:Der Zustand kann nur bei asynchronem
TapiDial ()auftreten. Die Zieladresse wurde erreicht._TapiCallStateBusy:Der Zustand kann nur bei asynchronem
TapiDial ()auftreten. Der Anruf bekommt ein Besetzt-Zeichen zurückgeliefert._TapiCallStateConnected:Die Verbindung wurde hergestellt.
_TapiCallStateDisconnected:Die entfernte Station hat den Anruf getrennt.
_TapiCallStateOnHold:Der Anruf wird gehalten. Dadurch kann ein weiterer Anruf entgegen genommen werden.
_TapiCallStateIdle:Dies ist der finale Zustand, der das Ende der Verbindung kennzeichnet. Die in
aCallIDangegebene Nummer ist nicht mehr gültig._TapiCallStateUnknown:Wird übergeben, wenn der aktuelle Verbindungsstatus nicht ermittelt werden kann. Diese Konstante wird auch übergeben, wenn die Überwachung und ein
TapiDial ()auf demselben TAPI-Gerät durchgeführt 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);
}