Mercurial > libervia-backend
diff libervia/backend/plugins/plugin_xep_0167/__init__.py @ 4115:0da563780ffc
plugin XEP-0167, XEP-0353: handle ringing:
- add a `jingle_preflight_info` method in the Jingle Application model to handle this kind
of information
- XEP-0353 is calling `jingle_preflight_info` when a `ringing` message is received
- XEP-0167 use this information to send a `ringing` info to frontends
author | Goffi <goffi@goffi.org> |
---|---|
date | Wed, 16 Aug 2023 18:33:28 +0200 |
parents | bc60875cb3b8 |
children | 23fa52acf72c |
line wrap: on
line diff
--- a/libervia/backend/plugins/plugin_xep_0167/__init__.py Wed Aug 16 18:28:32 2023 +0200 +++ b/libervia/backend/plugins/plugin_xep_0167/__init__.py Wed Aug 16 18:33:28 2023 +0200 @@ -387,6 +387,24 @@ if not accepted: raise exceptions.CancelError("User declined the incoming call.") + async def jingle_preflight_info( + self, + client: SatXMPPEntity, + session: dict, + info_type: str, + info_data: dict|None = None + ) -> None: + if info_type == "ringing": + if not session.get("ringing", False): + self.host.bridge.call_info( + session["id"], "ringing", "", client.profile + ) + # we indicate that the ringing has started, to avoid sending several times + # the signal + session["ringing"] = True + else: + log.warning(f"Unknown preflight info type: {info_type!r}") + async def jingle_preflight_cancel( self, client: SatXMPPEntity,