Mercurial > libervia-web
changeset 1560:84f312be53b4
browser (calls): handle "ringing" info message and update status when received
author | Goffi <goffi@goffi.org> |
---|---|
date | Wed, 16 Aug 2023 18:34:07 +0200 |
parents | 410064b31dca |
children | 7dbb131bbb9e |
files | libervia/web/pages/calls/_browser/__init__.py libervia/web/server/server.py |
diffstat | 2 files changed, 11 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/libervia/web/pages/calls/_browser/__init__.py Wed Aug 16 16:52:53 2023 +0200 +++ b/libervia/web/pages/calls/_browser/__init__.py Wed Aug 16 18:34:07 2023 +0200 @@ -14,7 +14,7 @@ profile = window.profile or "" bridge = Bridge() GATHER_TIMEOUT = 10000 -ALLOWED_STATUSES = (None, "dialing") +ALLOWED_STATUSES = (None, "dialing", "ringing") AUDIO = "audio" VIDEO = "video" ALLOWED_CALL_MODES = {AUDIO, VIDEO} @@ -40,6 +40,7 @@ self.call_status_tpl = Template("call/call_status.html") self.audio_player_elt = document["audio_player"] bridge.register_signal("action_new", self._on_action_new) + bridge.register_signal("call_info", self._on_call_info) bridge.register_signal("call_setup", self._on_call_setup) bridge.register_signal("call_ended", self._on_call_ended) @@ -225,6 +226,12 @@ return aio.run(self.end_call(json.loads(data_s))) + def _on_call_info(self, session_id: str, info_type, info_data_s: str, profile: str): + if self.sid != session_id: + return + if info_type == "ringing": + self.status = "ringing" + def _on_call_setup(self, session_id: str, setup_data_s: str, profile: str) -> None: """Called when we have received answer SDP from responder
--- a/libervia/web/server/server.py Wed Aug 16 16:52:53 2023 +0200 +++ b/libervia/web/server/server.py Wed Aug 16 18:34:07 2023 +0200 @@ -578,6 +578,9 @@ "call_setup", partial(self.on_signal, "call_setup"), "plugin" ) self.bridge.register_signal( + "call_info", partial(self.on_signal, "call_info"), "plugin" + ) + self.bridge.register_signal( "call_ended", partial(self.on_signal, "call_ended"), "plugin" ) self.bridge.register_signal(