Versions and Changes#
All notable changes to inspect-jitsi are documented in CHANGES.md at the repository root.
Changelog#
0.2.0#
Add the
inspect-jitsi monitorcommand: it stays connected to a room, prints a line of JSON whenever the room, its participants or its status change, and exits when the room is closed. It reconnects after a lost connection, see--timeout/INSPECT_JITSI_TIMEOUT. It checks that the room exists before joining it (--createskips that), and leaves when it is the only one in the room (--staykeeps it there).Add
monitor_room(blocking iterator) andmonitor_conference(async generator) to monitor a room from Python, as the command does.Fix: every XMPP stanza the library sends is now built with
xml.etree.ElementTreeinstead of by pasting values into strings. A display name, nickname, room name or domain containing quotes,<,&, control characters or undecodable bytes can no longer produce malformed XML or change the structure of a stanza. Characters XML forbids are sent as U+FFFD. A reply that is not valid text is now aJitsiConnectionError.Fix: the background reader of
JitsiXmppConnectionno longer stops aftertimeoutseconds of a quiet room.
0.1.0#
Fix: XMPP stanzas received from the server are now parsed with
defusedxmlinstead of the standard library'sxml.etree.ElementTreedirectly - a conference URL is arbitrary, caller-supplied input, so a malicious server could otherwise send a billion-laughs/XXE-style XML bomb that got silently expanded instead of rejected.Add a new parameter (
name=onget_participant_count/get_participants/JitsiConference/JitsiXmppConnection) to set the display name disclosed when joining a room.The
inspect-jitsicommand joins a conference with the name "inspect-jitsi" by default. Override it with--nameor theINSPECT_JITSI_NAMEenvironment variable.
0.0.2#
Fix: tolerate
<stream:features>/<stream:error>sent without anxmlns:streamdeclaration over the WebSocket framing (some deployments omit it, relying on the enclosing<stream:stream>that RFC 7395 framing doesn't send) - this used to crash callers with a rawxml.etree.ElementTree.ParseError: unbound prefix.Add
JitsiConnectionError, raised (instead of assorted rawwebsockets/stdlib exceptions) whenever the XMPP connection to a Jitsi deployment fails or is lost - catch it (or theConnectionErrorit subclasses) instead of guessing at every exception a live session might raise.
0.0.1#
Initial release
Add count, created, participants and diagnostics