Start a DigidocService session

        :return: True if session was started and session code was stored in I{session_code}

def start_session(self, b_hold_session, sig_doc_xml=None, datafile=None):
        """Start a DigidocService session

        :return: True if session was started and session code was stored in I{session_code}
        """
        response = self.__invoke('StartSession', {
            'bHoldSession': b_hold_session,
            'SigDocXML': sig_doc_xml or SkipValue,
            'datafile': datafile or SkipValue,

            # This parameter is deprecated and exists only due to historical reasons. We need to specify it as
            #  SkipValue to keep zeep happy
            'SigningProfile': SkipValue,
        })

        if response['Sesscode']:
            self.data_files = []
            self.session_code = response['Sesscode']

            if sig_doc_xml:
                self.container = PreviouslyCreatedContainer()

            return True

        # If b_hold_session is set to False, response will not contain a session
        # in case of errors, exceptions are raised from __invoke anyway
        return False