def __init__(self, app, agi, isReconnect): self.app = app self.agi = agi self.isReconnect = self.isReconnect or isReconnect self.queue = PriorityQueue() print self.agi.variables self.callerId = unicode(self.agi.variables['agi_callerid']) self.channel = self.agi.variables['agi_channel'] self.timeStarted = Time() print "New session from", self.callerId self.state = application.StateMachine(self, verbose=1) script = self.agi.variables.get('agi_network_script', None) if script == 'DialOut': self.state.set("pending_start") else: self.state.set("start")
def reEntry(self, agi, isReconnect): self.agi = agi self.isReconnect = self.isReconnect or isReconnect if self.state.get == 'to_recording': self.setStateAfterSample("recording", "weareforests-audio/record") if self.state.get == 'to_play': self.state.set('play') if self.state.get == 'to_start': self.state.set('start') if self.state.get == 'to_ending': self.queue = PriorityQueue() for f in [ r.filenameAsAsterisk() for r in self.app.store.query( Recording, Recording.use_in_ending == True, sort=Recording.created.descending) ]: self.queueAdd(f) self.state.set('ending')