WebSocket
Sie können WebSocket verwenden, um eine Verbindung mit der Nebenstellenanlage herzustellen. Es ermöglicht die bidirektionale Kommunikation zwischen dem Browser und der Nebenstellenanlage.
Es wird hauptsächlich für die Anrufsteuerung (einschließlich WebRTC-Aufrufe), den Anrufstatus, andere Erweiterungsinformationen sowie Statusinformationen zu allen anderen relevanten Erweiterungen und Konten verwendet. Zum Beispiel gibt es Informationen über andere Erweiterungen in der gleichen Domäne, ob eine Erweiterung registriert ist oder nicht, oder ob sie sich in einem Anruf oder im Leerlauf befindet oder ob sie für Chat usw. verfügbar ist.
Anschließen an die Telefonanlage
Verbinden Sie WebSocket mit der Nebenstellenanlage über die URL:
ws://YOURPBXURL/websocket?domain=YOURDOMAIN&user=EXTENSION
Oder
wss://YOURPBXURL/websocket?domain=YOURDOMAIN&user=EXTENSION
EXTENSION ist die Erweiterung, für die die relevanten Informationen zur Verfügung gestellt werden und über die Anrufe getätigt und empfangen werden können. Live-Statusinformationen zu den anderen Erweiterungen in derselben Domäne werden ebenfalls bereitgestellt, wenn sich etwas ändert.
Beispiel in JS:
var dest = "wss://192.168.1.11/websocket?domain=localhost&user=45";
this.socket = neues WebSocket(dest);
this.socket.onopen = Funktion (evt) - onOpen(evt) ;
this.socket.onclose = Funktion (evt) - onClose(evt) ;
this.socket.onmessage = Funktion (evt) - onMessage(evt) ;
this.socket.onerror = funktion (evt) - onError(evt) ;
Die Rückruffunktionen wie onxxxx() werden für diese Ereignisse aufgerufen.
Wenn z. B. eine Nachricht von der Nebenstellenanlage vorliegt, wird onMessage(evt) aufgerufen. Anschließend können Sie die evt.data, die ein JSON-Objekt ist, analysieren, um die relevanten Informationen zu extrahieren und anzuzeigen.
Ebenso können Befehle auch mit dem Befehl an die Nebenstellenanlage gesendet werden:
this.socket.send(message);
Empfangen von Nachrichten in onMessage-Rückruf:
Der onMessage-Rückruf wird aufgerufen, wenn eine Nachricht von der Nebenstellenanlage vorliegt. Und die Nachricht ist das Argument der Funktion, sagen Ereignis:
Funktion onMessage (Ereignis)
Verarbeiten Sie die Ereignisse hier
}
Die Ereignis.data-Nachricht sollte wie folgt als JSON-Format analysiert werden:
Aktion: Aktionsname , ...
Einige der Informationen, die Sie erhalten können:
Aktion : Domänenstatus
Konten : Gibt den Status aller Konten (nicht nur Ihr) in der Domäne, wie ob es registriert ist, DND, verfügbar für Chat, in einem Anruf usw.
Anrufe : Die Details der aktiven Anrufe
...
Beispiel:
- Aktion: "Domain-Status", Nachrichten: , Ruft: Array(1), Konten: Array(26)
Aktion : Benutzerstatus
Typ : Erweiterungen
Konto : Ihre Erweiterung
registriert : true/false
chatstatus : online/offline
dnd : true/false
...
Beispiel:
- Aktion: "User-State", Typ: "Extensions", Konto: "45", Domain: "localhost", Chatstatus: "online", ...
Aktion : Aufrufzustand
id : ID des Aufrufs, der für alle möglichen Maßnahmen identifiziert werden soll
von : Wer hat angerufen?
an : An wen es gemacht wurde (Ihre Erweiterung)
Anrufzustand : verbunden/klingeln usw.
...
Beispiel:
\*{
Aktion: "Call-State",
ruft: id: "call id", von: "call from", zu: "call-to", callstate: "State of the call like connected etc.", und so weiter ...
}\*