Lade...
 

CX_PHONE_CALL - Ein Anruf

CX_PHONE_CALL - Ein Anruf

Klassenhierarchie
Beschreibung:

Ein Objekt vom Typ CX_PHONE_CALL bildet einen Anruf ab. Ein Anruf kann sich in einem bestimmten Zustand befinden. Folgende Zustände werden durchlaufen, wenn ein Anruf durchgeführt wird:

Anmerkungen: Nach t1 schaltet das System entweder in s2, s4, s5 oder s6. Von s2 über t2 schaltet der Status des Anrufes direkt nach s3, d.h. falls beim Wählen ein Fehler auftritt, werden die Messages PC_ERROR und sofort danach PC_INVALID erzeugt. s5 tritt nur dann ein, wenn die Hardware das Klingeln auf der anderen Seite erkennt. Wenn nicht und es kommt eine Verbindung zustande, geht das System direkt von t1 in s6 über.

Bei Call(HangUp), Call(Hold) und Call(Unhold) kann ebenfalls ein Fehler auftreten (im Bild nicht eingetragen). Der Status nach einem Fehler kann PC_INVALID sein, kann aber auch der Status vor dem Funktionsaufruf sein. Nur bei einem Fehler in MakeCall geht ClassiX® garantiert den Weg s2 -> t2 -> s3.

Der Status PC_INVALID ist immer der letzte Status, den ein Anruf annehmen kann. Gleichzeitig ist ab dem Zeitpunkt das Objekt unter Verwaltung der Garbage Collection und wird zerstört, sobald es keine Referenz mehr darauf gibt.

Das folgende Bild zeigt die Abläufe bei der Rufannahme:

Anmerkungen: Nach s2 kann das System evtl. noch in s6 springen, d.h. nach einem PC_OFFERING kann ein PC_CALLERID kommen. Zwischen diesen Messages kann eine Zeitspanne liegen, es kann also sein, dass sie nicht sofort hintereinander ausgelöst werden.

Das Initiieren von Anrufen und das Entgegennehmen von Anrufen wird über den Phone-Manager geregelt. Dieser erzeugt ein neues CX_PHONE_CALL-Objekt, mit dem der Anruf nun weiter gesteuert werden kann, indem z.B. die Verbindung getrennt wird oder ein angebotener Ruf angenommen oder abgelehnt wird. Es ist nicht notwendig, ein CX_PHONE_CALL-Objekt direkt zu erzeugen (es wäre ohnehin nicht in der Lage, Aktionen durchzuführen, da die Verbindung zu Windows fehlt; diese Verbindung erzeugt ebenfalls der Phone-Manager).

Bei Status-Änderungen wird immer eine Message generiert. Zu dieser Message liegt das betreffende CX_PHONE_CALL-Objekt ganz oben auf dem Stack.

Sobald sich ein CX_PHONE_CALL-Objekt im Status PC_INVALID befindet, können keine weiteren Aktionen mit diesem Objekt durchgeführt werden (Ausnahme: Get-Funktionen). Der Versuch wird mit einem PC_ERROR oder einer Fehlermeldung quittiert. In den Status PC_INVALID kann das Objekt jederzeit wechseln, nämlich immer dann, wenn die Gegenseite die Verbindung beendet.

Code-Beispiel:
...

 

Methodenverzeichnis (MDI)
Funktion MA* Parameter Rückgabe Kurzbeschreibung
Answer       Anruf annehmen
GetCallStatus     INTEGER Status des Anrufes ermitteln
GetCalledID     OBJECT Rufnummer des Angerufenen ermitteln
GetCallerID     OBJECT Rufnummer des Anrufers ermitteln
HangUp       Verbindung beenden
Hold       Verbindung halten
Reject       Anruf ablehnen
Unhold       Halten rückgängig machen

* MA = Member-Access-Funktion,
grau unterlegt = geerbte Funktion

 

 

Verwendung in AppsWH
Modul Kurzbeschreibung