code: def attach_tracker(self, stanza, tracker=None, token=None):
          
          if tracker is None:
              tracker = MessageTracker()
          stanza.autoset_id()
          key = stanza.to.bare(), stanza.id_
          self._trackers[key] = tracker
          tracker.on_closed.connect(
              functools.partial(self._tracker_closed, key)
          )
          if token is not None:
              token.future.add_done_callback(
                  functools.partial(
                      self._stanza_sent,
                      tracker,
                      token,
                  )
              )
          return tracker
docs: Configure tracking for a stanza without sending it.
  
          :param stanza: Message stanza to send.
          :type stanza: :class:`aioxmpp.Message`
          :param tracker: Message tracker to use.
          :type tracker: :class:`~.MessageTracker` or :data:`None`
          :param token: Optional stanza token for more fine-grained tracking.
          :type token: :class:`~.StanzaToken`
          :rtype: :class:`~.MessageTracker`
          :return: The message tracker.
  
          If `tracker` is :data:`None`, a new :class:`~.MessageTracker` is
          created.
  
          If `token` is not :data:`None`, updates to the stanza `token` are
          reflected in the `tracker`.
  
          If an error reply is received, the tracker will enter
          :class:`~.MessageState.ERROR` and the error will be set as
          :attr:`~.MessageTracker.response`.
  
          You should use :meth:`send_tracked` if possible. This method however is
          very useful if you need to track carbon copies of sent messages, as a
          stanza token is not available here and re-sending the message to obtain
          one is generally not desirable ☺.