Source code for slixmpp.plugins.xep_0482.call_invites
# Slixmpp: The Slick XMPP Library# Copyright (C) 2025 Mathieu Pasquet# This file is part of Slixmpp.# See the file LICENSE for copying permissioimportloggingfromtypingimportOptionalfromslixmpp.stanzaimportMessagefromslixmpp.jidimportJIDfromslixmpp.xmlstream.handlerimportCallbackfromslixmpp.xmlstream.matcherimportStanzaPathfromslixmpp.xmlstreamimportregister_stanza_pluginfromslixmpp.pluginsimportBasePluginfromslixmpp.plugins.xep_0482importstanzalog=logging.getLogger(__name__)
[docs]classXEP_0482(BasePlugin):""" XEP-0482: Call Invites This plugin defines the stanza elements for Call Invites, as well as new events: - `call-invite` - `call-reject` - `call-retract` - `call-leave` - `call-left` """name='xep_0482'description='XEP-0482: Call Invites'dependencies=set()stanza=stanzadefplugin_init(self):stanza.register_plugins()foreventin('invite','reject','retract','leave','left'):self.xmpp.register_handler(Callback(f'Call {event}',StanzaPath(f'message/call_{event}'),self._handle_event))def_handle_event(self,message):foreventin('invite','reject','retract','leave','left'):ifmessage.get_plugin(f'call_{event}',check=True):self.xmpp.event(f'call_{event}')defplugin_end(self):foreventin('invite','reject','retract','leave','left'):self.xmpp.remove_handler(f'Call {event}')