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 | Position | Objekttyp | Kurzbeschreibung |
---|---|---|---|
Stack(In) | Top | CX_PHONE_CALL | Anruf-Objekt |
Stack(Out) | Top | INTEGER | Status |
Funktionsaufruf: Call(GetCallStatus)