public function unbind($exchange_name, $routing_key = null, array $arguments = array()) {

        if($routing_key === null)
            $routing_key = '';

        $bind_arguments = new AMQPTable($arguments);

        try {
            $this->channel->_getChannel()->queue_unbind($this->name, $exchange_name, $routing_key, $bind_arguments);
        } catch (AMQPRuntimeException $e) {
            throw new AMQPConnectionException($e->getMessage(), $e->getCode(), $e->getPrevious());
        } catch (Exception $e) {
            return false;
        }

        return true;
    }