from freeswitch import *
# WARNING: known bugs with hangup hooks, use with extreme caution
def hangup_hook(session, what):
%s!!\n\n" % what)
return
def input_callback(session, what, obj):
if (what == "dtmf"):
consoleLog("info", what + " from callback " + obj.digit + "\n")
return
elif (what == "event" and session.getVariable('avmd_detect') == "TRUE"):
consoleLog("info", "Voicemail Detected\n")
return "TRUE"
def handler(session, args):
session.answer()
# session.setVariable("hangup_after_bridge", "false")
callback = session.setInputCallback("input_callback")
session.execute("avmd", "start")
consoleLog("info", "AVMD start\n")
session.execute("sleep", "18000")
consoleLog("info", "AVMD status %s\n" % session.getVariable('avmd_detect'))
if session.getVariable('avmd_detect'):
consoleLog("info", "Beep Detected\n")
session.execute("speak", "flite|kal|'Hi this is '")
session.execute("avmd", "stop")
session.execute("speak", "flite|kal|'Hi this is '")
consoleLog("info","callback returned %s!!\n\n" % callback)
session.execute("avmd", "stop")
consoleLog("info", "AVMD stop\n")
session.setHangupHook(hangup_hook)
session.hangup() #hangup the call