public function initDialog()
    {
        $this->logger->info('Initialize Dialog');
        $identification = new HKIDN(3, $this->bankCode, $this->username, $this->systemId);
        $prepare        = new HKVVB(4, HKVVB::DEFAULT_BPD_VERSION, HKVVB::DEFAULT_UPD_VERSION, HKVVB::LANG_DEFAULT);

        $message = new Message(
            $this->bankCode,
            $this->username,
            $this->pin,
            $this->systemId,
            0,
            1,
            array($identification, $prepare),
            array(AbstractMessage::OPT_PINTAN_MECH => $this->supportedTanMechanisms)
        );

        $this->logger->debug('Sending INIT message: ' . (string) $message);

        $response = $this->sendMessage($message)->rawResponse;
        $this->logger->debug('Got INIT response: ' . $response);

        $result = new Initialization($response);
        $this->dialogId = $result->getDialogId();
        $this->logger->info('Received dialog ID: ' . $this->dialogId);

        return $this->dialogId;
    }