code: def open(self):
          
          # pylint: disable=protected-access
          self.running = True
          if self.redirected:
              self.source = self.redirected.address
              source = Source(self.source)
              if self.offset is not None:
                  source.set_filter(self.offset.selector())
              alt_creds = {
                  "username": self.client._auth_config.get("iot_username"),
                  "password":self.client._auth_config.get("iot_password")}
              self._handler = ReceiveClient(
                  source,
                  auth=self.client.get_auth(**alt_creds),
                  debug=self.client.debug,
                  prefetch=self.prefetch,
                  link_properties=self.properties,
                  timeout=self.timeout,
                  error_policy=self.retry_policy,
                  keep_alive_interval=self.keep_alive,
                  client_name=self.name,
                  properties=self.client.create_properties())
          self._handler.open()
          while not self._handler.client_ready():
              time.sleep(0.05)
docs: Open the Receiver using the supplied conneciton.
          If the handler has previously been redirected, the redirect
          context will be used to create a new handler before opening it.
  
          :param connection: The underlying client shared connection.
          :type: connection: ~uamqp.connection.Connection