Lade...
 

CX_PHONE_CALL::GetCallStatus

CX_PHONE_CALL::GetCallStatus

Beschreibung:

Diese Funktion liefert den Status des Anrufes zurück, in dem er sich gerade befindet. Das Kürzel "PC" steht hier für "Phone Call". Folgende Stati sind definiert:

Status Beschreibung Interner Wert
PC_INVALID Der Anruf ist ungültig (geworden). Dies geschieht, nachdem eine Seite aufgelegt hat oder beim Wählen ein Fehler auftrat. Sobald sich ein CX_PHONE_CALL-Objekt in diesem Zustand befindet, können keine weiteren Operationen mit diesem durchgeführt werden. Das Objekt wird von der Garbage-Collection gelöscht, sobald keine Referenz mehr darauf vorhanden ist. 0
PC_RINGBACK Der angerufene Teilnehmer hört nun das Rufzeichen. Dieser Status tritt nur auf, wenn unsere Seite einen Anruf tätigt. 1
PC_CONNECTED Die Verbindung wurde nun hergestellt, entweder, nachdem wir einen Teilnehmer angewählt haben, oder nachdem wir einen Anruf angenommen haben, oder nachdem ein Anruf vom Haltezustand zurückgekehrt ist. 2
PC_BUSY Der angerufene Teilnehmer ist nicht erreichbar. 3
PC_ONHOLD Der Verbindung wurde in den Haltezustand versetzt. 4
PC_OFFERING Ein neuer Anruf geht ein. Dem Anwender steht es nun frei, ob er den Anruf annimmt (Answer) oder ablehnt (Reject). 5
PC_CALLERID Die Telefonnummer des Anrufers und des Angerufenen sind nun bekannt. 6
PC_UNKNOWN Der Anruf befindet sich in einem unbekannten Zustand. 7
PC_ERROR Die letzte Operation schlug fehl. Da alle Operationen asynchron arbeiten, können Fehler nicht sofort angezeigt werden, sondern werden verzögert durch diese Message gemeldet. 8

Es kann passieren, dass sich der Status eines Anrufs innerhalb von Sekundenbruchteilen mehrmals ändert. Daher werden die Stati intern in einer Warteschlange gespeichert. Wenn durch eine Zustandsänderung eine Message getriggert wird, ist diese Funktion nur einmal aufzurufen und das Ergebnis auszuwerten. Wenn sich während der Verarbeitung eine weitere Zustandsänderung ergibt, wird wieder die Message getriggert.

Achtung!

Im Zustand PC_INVALID können Operationen wie Answer, Reject, Hangup, Hold und Unhold nicht mehr durchgeführt werden (sie würden sofort einen Fehler melden). Eine Zustandsänderung zu PC_INVALID passiert garantiert nur ein einziges Mal pro Objekt, und dieser Zustand ist auch garantiert der letzte Zustand. Sobald keine weitere Referenz auf das Objekt mehr zeigt, wird es von der Garbage Collection zerstört.

Code-Beispiel:
CALLNOTICE:              // Zustandsänderung ist eingetreten
Call(GetCallStatus)      // Status des Anrufs holen
                         // Das Ergebnis befindet sich nun auf dem Stack
    

Stack
Stack Position Objekttyp Kurzbeschreibung
Stack(In) Top CX_PHONE_CALL Anruf-Objekt
Stack(Out) Top INTEGER Status

Funktionsaufruf: Call(GetCallStatus)