def remoteInquiry(config, user, call, receivedQ): """ Remote inquiry function (uses german wave snippets!) Implemented commands for remote inquiry are: delete message - 1 next message - 4 last message - 5 repeat current message - 6 'user' name of the user who is responsible for this 'config' ConfigParser instance holding the config data 'call' reference to the call. Needed by all capisuite functions 'receivedQ' the received queue dir of the user """ try: lock = fileutils._getLock( os.path.join(receivedQ, 'inquiry_lock'), blocking=0) except fileutils.LockTakenError: say(config, user, call, "fernabfrage-aktiv.la") return try: # read directory contents messages = capisuite.voice.getQueueFiles(config, user) # read the number of the message heard last at the last inquiry lastinquiry = capisuite.voice.getInquiryCounter(config, user) # filter out old messages oldmessages = [m for m in capisuite.voice.getQueueFiles(config, user) if int(m[0]) <= lastinquiry] messages = [m for m in capisuite.voice.getQueueFiles(config, user) if int(m[0]) > lastinquiry] #oldmessages = [m for m in messages if m[0] <= lastinquiry] #messages = [m for m in messages if m[0] > lastinquiry] call.log("Count of messages = %x" % lastinquiry, 1) oldmessages.sort() messages.sort() announceNumMessages(config, user, call, len(messages), new=1) # menu for record new announcement cmd = "" while cmd not in ("1", "9"): if len(messages) or len(oldmessages): say(config, user, call, "zum-abhoeren-1.la") say(config, user, call, "fuer-neue-ansage-9.la") cmd = call.read_DTMF(0, 1) if cmd == "9": cmd_recordNewAnnouncement(config, user, call, receivedQ) return # start inquiry cmd_inquiry(config, user, call, oldmessages, messages, lastinquiry) finally: fileutils._releaseLock(lock)
def remoteInquiry(config, user, call, receivedQ): """ Remote inquiry function (uses german wave snippets!) Implemented commands for remote inquiry are: delete message - 1 next message - 4 last message - 5 repeat current message - 6 'user' name of the user who is responsible for this 'config' ConfigParser instance holding the config data 'call' reference to the call. Needed by all capisuite functions 'receivedQ' the received queue dir of the user """ try: lock = fileutils._getLock(os.path.join(receivedQ, 'inquiry_lock'), blocking=0) except fileutils.LockTakenError: say(config, user, call, "fernabfrage-aktiv.la") return try: # read directory contents messages = capisuite.voice.getQueueFiles(config, user) # read the number of the message heard last at the last inquiry lastinquiry = capisuite.voice.getInquiryCounter(config, user) # filter out old messages oldmessages = [m for m in messages if m[0] <= lastinquiry] messages = [m for m in messages if m[0] > lastinquiry] oldmessages.sort() messages.sort() announceNumMessages(config, user, call, len(messages), new=1) # menu for record new announcement cmd = "" while cmd not in ("1", "9"): if len(messages) or len(oldmessages): say(config, user, call, "zum-abhoeren-1.la") say(config, user, call, "fuer-neue-ansage-9.la") cmd = call.read_DTMF(0, 1) if cmd == "9": cmd_recordNewAnnouncement(config, user, call, receivedQ) return # start inquiry cmd_inquiry(config, user, call, oldmessages, messages, lastinquiry) finally: fileutils._releaseLock(lock)
and result in (0, 0x3400, 0x3480, 0x3490, 0x349f) tries = control.getint("tries") + 1 control.set('tries', tries) if send_ok: core.log("job %s: finished successfully" % jobnum, 1) control = capisuite.fax.moveJob(controlfile, doneQ, user) sendinfo.update(control.items()) helpers.sendSimpleMail( fromaddress, mailaddress, config.get('MailFaxSent', 'subject') % sendinfo, config.get('MailFaxSent', 'text') % sendinfo) elif tries >= max_tries: # too many ties, send failed core.log("job %s: failed finally" % jobnum, 1) control = capisuite.fax.moveJob(controlfile, failedQ, user) sendinfo.update(control.items()) helpers.sendSimpleMail( fromaddress, mailaddress, config.get('MailFaxFailed', 'subject') % sendinfo, config.get('MailFaxFailed', 'text') % sendinfo) else: # delay next try next_delay = int(delays[min(len(delays), tries) - 1]) core.log("job %s: delayed for %i seconds" % \ (jobnum, next_delay), 2) starttime = time.time() + next_delay control.set('starttime', time.ctime(starttime)) control.write(controlfile) finally: _releaseLock(lock)
tries = control.getint("tries") +1 control.set('tries', tries) if send_ok: core.log("job %s: finished successfully" % jobnum, 1) control = capisuite.fax.moveJob(controlfile, doneQ, user) sendinfo.update(control.items()) helpers.sendSimpleMail( fromaddress, mailaddress, config.get('MailFaxSent', 'subject') % sendinfo, config.get('MailFaxSent', 'text') % sendinfo) elif tries >= max_tries: # too many ties, send failed core.log("job %s: failed finally" % jobnum, 1) control = capisuite.fax.moveJob(controlfile, failedQ, user) sendinfo.update(control.items()) helpers.sendSimpleMail( fromaddress, mailaddress, config.get('MailFaxFailed', 'subject') % sendinfo, config.get('MailFaxFailed', 'text') % sendinfo) else: # delay next try next_delay = int(delays[ min(len(delays),tries) -1 ]) core.log("job %s: delayed for %i seconds" % \ (jobnum, next_delay), 2) starttime = time.time() + next_delay control.set('starttime', time.ctime(starttime)) control.write(controlfile) finally: _releaseLock(lock)