def check_result2(params, consoleMsg=True): """just like check_result() above, except the result can be non-digits. or even empty. """ params = params.rstrip() if re.search('^200',params): result = re.search('result=(.*)',params) if result: return result.group(1) return '' else: if consoleMsg: info = "dsh_agi.check_result: " + \ "FAIL (unexpected result '%s')" % params dsh_utils.give_bad_news2(info, logging.error) return None
def read_env(consoleMsg=True): """reads AGI environment variables at the beginning of a call.""" env = {} while 1: line = sys.stdin.readline().strip() if line == '': break # # ryw: # bad format. not splittable. # this is because I found a line that looks like this: # agi_channel: IAX2/127.0.0.1:35456-14868 # #key,data = line.split(':') success,key,data = split_line(line) if not success: info = 'dsh_agi.read_env: bad line: ' + line dsh_utils.give_bad_news2(info, logging.warning) continue if key[:4] <> 'agi_': #skip input that doesn't begin with agi_ info = 'dsh_agi.read_env: invalid key: ' + key[:4] dsh_utils.give_bad_news2(info, logging.warning) continue key = key.strip() data = data.strip() if key <> '': env[key] = data keys2skip = ['agi_rdnis', 'agi_uniqueid', 'agi_language', 'agi_callington', 'agi_callingtns', 'agi_accountcode', 'agi_enhanced', 'agi_callingpres', 'agi_callingani2', 'agi_dnid', 'agi_rdnis', 'agi_priority'] if consoleMsg: info = "dsh_agi.read_env: AGI Environment Dump:" dsh_utils.give_news(info, logging.info) for key in env.keys(): if key in keys2skip: continue info = " -- %s = %s" % (key, env[key]) dsh_utils.give_news(info, logging.info) return env
def check_result(params, consoleMsg=True): params = params.rstrip() if re.search('^200',params): result = re.search('result=(\d+)',params) if (not result): if consoleMsg: info = "dsh_agi.check_result: FAIL ('%s')" % params dsh_utils.give_bad_news2(info, logging.error) return -1 else: result = result.group(1) if consoleMsg: info = "dsh_agi.check_result: PASS (%s)" % result dsh_utils.give_good_news(info, logging.info) return result else: if consoleMsg: info = "dsh_agi.check_result: " + \ "FAIL (unexpected result '%s')" % params dsh_utils.give_bad_news2(info, logging.error) return -2
def check_result(params, consoleMsg=True): """copied from the star fish book. looking for number results. the Asterisk response looks like '200 result=1'. """ params = params.rstrip() if re.search('^200',params): result = re.search('result=(\d+)',params) if (not result): if consoleMsg: info = "dsh_agi.check_result: FAIL ('%s')" % params dsh_utils.give_bad_news2(info, logging.error) return -1 else: result = result.group(1) if consoleMsg: info = "dsh_agi.check_result: PASS (%s)" % result dsh_utils.give_good_news(info, logging.info) return result else: if consoleMsg: info = "dsh_agi.check_result: " + \ "FAIL (unexpected result '%s')" % params dsh_utils.give_bad_news2(info, logging.error) return -2