'Process the session_start event.
Typical actions for the session_start event are
requesting the roster and broadcasting an initial
presence stanza.
Arguments:
event -- An empty dictionary. The session_start
event does not provide any additional
data.'

def start(self, event):

    self.send_presence()
    self.get_roster()
    def command_success(iq, session):
        print 'Command    completed'
        if iq['command']['form']:
            for (var, field) in iq['command']['form']['fields'].items():
                print ('%s:    %s' % (var, field['value']))
        if iq['command']['notes']:
            print 'Command    Notes:'
            for note in iq['command']['notes']:
                print ('%s:    %s' % note)
        self.disconnect()
    def command_error(iq, session):
        print 'Error    completing    command'
        print ('%s:    %s' % (iq['error']['condition'], iq['error']['text']))
        self['xep_0050'].terminate_command(session)
        self.disconnect()
    def process_form(iq, session):
        form = iq['command']['form']
        answers = {}
        for (var, field) in form['fields'].items():
            if (var != 'FORM_TYPE'):
                if (field['type'] == 'boolean'):
                    answers[var] = raw_input(('%s    (y/n):    ' % field['label']))
                    if (answers[var].lower() in ('1', 'true', 'y', 'yes')):
                        answers[var] = '1'
                    else:
                        answers[var] = '0'
                else:
                    answers[var] = raw_input(('%s:    ' % field['label']))
            else:
                answers['FORM_TYPE'] = field['value']
        form['type'] = 'submit'
        form['values'] = answers
        session['next'] = command_success
        session['payload'] = form
        self['xep_0050'].complete_command(session)
    session = {'next': process_form, 'error': command_error}
    command = self.command.replace('-', '_')
    handler = getattr(self['xep_0133'], command, None)
    if handler:
        handler(session={'next': process_form, 'error': command_error})
    else:
        print ('Invalid    command    name:    %s' % self.command)
        self.disconnect()
