diff --git a/libervia/backend/plugins/plugin_xep_0167/__init__.py b/libervia/backend/plugins/plugin_xep_0167/__init__.py index 13fb1500..781d886b 100644 --- a/libervia/backend/plugins/plugin_xep_0167/__init__.py +++ b/libervia/backend/plugins/plugin_xep_0167/__init__.py @@ -636,7 +636,10 @@ class XEP_0167(BaseApplicationHandler): # the session is already gone (e.g. duplicated call_end): nothing to do log.warning(f"No session with SID {session_id} found, call_end ignored.") return - await self._j.terminate(client, self._j.REASON_SUCCESS, session) + reason = data.get("reason") if data else None + if reason not in ("cancel", "decline", "busy"): + reason = self._j.REASON_SUCCESS + await self._j.terminate(client, reason, session) # jingle callbacks