Thanks MC, i made the change and avmd was able to detect beep on few occasions everything else remaining same. Also, i wasnt able to send the message to voicemail, i tried with invoking sleep of 3secs
from freeswitch import *
# WARNING: known bugs with hangup hooks, use with extreme caution
def hangup_hook(session, what):
consoleLog("info","hangup hook for RAJ %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()
callback = session.setInputCallback("input_callback")
session.execute("avmd", "start")
consoleLog("info", "AVMD start\n")
session.execute("sleep", "16000")
consoleLog("info", "AVMD status %s\n" % session.getVariable('avmd_detect'))
if session.getVariable('avmd_detect'):
session.execute("sleep", "3000")
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 for %s!!\n\n" % callback)
session.execute("avmd", "stop")
consoleLog("info", "AVMD stop\n")
session.setHangupHook(hangup_hook)
session.hangup() #hangup the call