docs: def data_received(self, data):
          """Got response on RTSP session.
  
          Manage time out handle since response came in a reasonable time.
          Update session parameters with latest response.
          If state is playing schedule keep-alive.
          """
          self.time_out_handle.cancel()
          self.session.update(data.decode())
  
          if self.session.state == STATE_STARTING:
              self.transport.write(self.method.message.encode())
              self.time_out_handle = self.loop.call_later(
                  TIME_OUT_LIMIT, self.time_out)
  
          elif self.session.state == STATE_PLAYING:
              self.callback(SIGNAL_PLAYING)
  
              if self.session.session_timeout != 0:
                  interval = self.session.session_timeout - 5
                  self.loop.call_later(interval, self.keep_alive)
  
          else:
              self.stop()