code: async def request(self, request, addr, integrity_key=None, retransmissions=None):
          
          assert request.transaction_id not in self.transactions
  
          if integrity_key is not None:
              request.add_message_integrity(integrity_key)
              request.add_fingerprint()
  
          transaction = stun.Transaction(request, addr, self, retransmissions=retransmissions)
          transaction.integrity_key = integrity_key
          self.transactions[request.transaction_id] = transaction
          try:
              return await transaction.run()
          finally:
              del self.transactions[request.transaction_id]
docs: Execute a STUN transaction and return the response.