def del_member(self, e): """Remove members from the conference""" self.last_event = e self.conf_size = int(getUnquotedHeader(e, 'Conference-Size')) # Adjust the conference size self.addAction(e) confObj = Session.query(Conference).get(getUnquotedHeader(e, 'Conference-Unique-ID')) if confObj is None: self.log.debug('Conference does not exist on DB, we must create one.') owner = Session.query(ModeratorPin).get(getUnquotedHeader(e, 'Conference-Name')) if owner is None: self.log.warning('Error because we could not get owner.') Session.remove() return self.log.info('Creating a new conference for conference id: %s' % getUnquotedHeader(last_event, 'Conference-Unique-ID')) confObj = Conference(getUnquotedHeader(last_event, 'Conference-Unique-ID'), parseEventDate(last_event), unicode(getUnquotedHeader(last_event, 'Conference-Name')), unicode(getUnquotedHeader(last_event, 'Conference-Profile-Name'))) owner.conferences.append(confObj) Session.add(confObj) Session.flush() if self.conf_size == 0: confObj.ended = parseEventDate(e) try: self.log.debug("Conference %s has ended. Removing session %s." % (self.conf_name, Session)) Session.commit() except Exception, e: Session.rollback() Session.remove() self.log.exception('Could not commit to the DB.') return
def stop_recording(e, config): """Process the process of recording being stopped""" log = logging.getLogger('Conference') owner = Session.query(ModeratorPin).get(getUnquotedHeader(e, 'Conference-Name')) if owner is None: log.warning('Error because we could not get owner.') Session.remove() return confObj = Session.query(Conference).get(getUnquotedHeader(e, 'Conference-Unique-ID')) if confObj is None: log.info('Creating a new conference for conference id: %s' % getUnquotedHeader(e, 'Conference-Unique-ID')) confObj = Conference(getUnquotedHeader(e, 'Conference-Unique-ID'), parseEventDate(e), unicode(getUnquotedHeader(e, 'Conference-Name')), unicode(getUnquotedHeader(e, 'Conference-Profile-Name'))) owner.conferences.append(confObj) Session.add(confObj) Session.flush() actionObj = ConferenceAction(unicode(getUnquotedHeader(e, 'Action')), unicode(getUnquotedHeader(e, 'Caller-Caller-ID-Name')), unicode(getUnquotedHeader(e, 'Caller-Caller-ID-Number')), unicode(getUnquotedHeader(e, 'Conference-Size')), unicode(getUnquotedHeader(e, 'Member-Type')), parseEventDate(e), confObj.id) confObj.actions.append(actionObj) Session.add(actionObj) log.debug('Conference %s has been created. Assigning the pointer.' % getUnquotedHeader(e, 'Conference-Name')) confObj.recording = os.path.join(config.get('mp3', 'store_to'), getUnquotedHeader(e, 'Path').split('/').pop()[:-3] + 'mp3') host = unicode(getUnquotedHeader(e, 'FreeSWITCH-IPv4')) try: try: t = Thread(target=postRecordingThread, args=(config, getUnquotedHeader(e, 'Path'), confObj, host, owner)) t.start() except: log.exception('Could not run thread and commit to database!') Session.remove() return finally: try: sendEmail(config, getUnquotedHeader(e, 'Path'), confObj, owner) Session.commit() Session.remove() except Exception, e: log.exception('Could not commit to database!') Session.rollback() Session.remove() return
h.flash('Moderator PIN was taken.') redirect(url('/main/new_pin/new_pin_form')) except NoResultFound: log.debug('%s is available for moderator pin.' % mPin.pin) try: pPin = ParticipantPin(session.get('username'), request.params.get('participant_pin')) except Exception, e: h.flash(str(e)) redirect(url('/main/new_pin/new_pin_form')) try: pins = Session.query(ModeratorPin).join(ParticipantPin).filter(or_(ModeratorPin.pin == pPin.pin, ParticipantPin.pin == pPin.pin)).one() log.debug('Found %s while testing pPin.' % pins.pin) Session.rollback() h.flash('Participant PIN was taken.') redirect(url('/main/new_pin/new_pin_form')) except NoResultFound: mPin.participant_pin = pPin Session.add(mPin) Session.add(pPin) Session.commit() redirect(url('/main/new_pin/index')) def generatePin(self): """Generate a new available PIN""" while True: mPin = ModeratorPin(session.get('username'), session.get('domain')) try: