code: def iter_services(self, feature=None):
          
          # Get the list of root services
          items = self["xep_0030"].get_items(
              jid=self.boundjid.domain,
              ifrom=self.boundjid.full,
              block=True,
              timeout=10,
          )
  
          for item in items["disco_items"]["items"]:
              # Each item is a 3-tuple. The service JID is the first entry
              if not feature:
                  # No filter
                  yield item[0]
              else:
                  # Get service details
                  info = self["xep_0030"].get_info(
                      jid=item[0],
                      ifrom=self.boundjid.full,
                      block=True,
                      timeout=10,
                  )
                  if feature in info["disco_info"]["features"]:
                      # The service provides the required feature
                      yield item[0]
docs: Iterates over the root-level services on the server which provides the
          requested feature
  
          :param feature: Feature that the service must provide (optional)
          :return: A generator of services JID