<html><head><style type="text/css"><!-- DIV {margin:0px;} --></style></head><body><div style="font-family:verdana, helvetica, sans-serif;font-size:10pt;color:#000000;"><DIV>Hello,</DIV>
<DIV>&nbsp;</DIV>
<DIV>In FreeSwitch 1.0.1 using Python, I'm having a strange problem with callback functions.</DIV>
<DIV>When I define a callback function, for some reason I'm unable to use any of the os.stat() related functions in Python. </DIV>
<DIV>&nbsp;</DIV>
<DIV>The example below shows the problem. When it runs, I get the following error:</DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;&nbsp;&nbsp; return os.stat(filename).st_size<BR>&nbsp;&nbsp;&nbsp; TypeError: expected string or Unicode object, NoneType found</DIV>
<DIV>&nbsp;</DIV>
<DIV>I know that I'm passing a correct value into the stat function. </DIV>
<DIV>&nbsp;</DIV>
<DIV>But if I comment-out my call to the callback function, it executes fine.</DIV>
<DIV>&nbsp;</DIV>
<DIV>I'm sure there's some larger issue going on here, but I'm not sure where to look. </DIV>
<DIV>&nbsp;</DIV>
<DIV>import os<BR>from freeswitch import *</DIV>
<DIV>&nbsp;</DIV>
<DIV>def input_callback_record_file_pound_stop(session, what, obj):<BR>&nbsp; if (type == "dtmf" and obj['digit'] == '#'):<BR>&nbsp;&nbsp;&nbsp; return "break"</DIV>
<DIV>&nbsp;</DIV>
<DIV>def input_callback_normal(session,what,obj):<BR>&nbsp; consoleLog("INFO", "input_callback_normal")</DIV>
<DIV>&nbsp;</DIV>
<DIV>def record_file(session,filename):<BR>&nbsp; session.streamFile("/usr/local/acudoc/prompts/shortbeeptone.wav")<BR>&nbsp; session.setInputCallback(input_callback_record_file_pound_stop)<BR>&nbsp; ret = session.recordFile(filename, 60000, 3, 3)<BR>&nbsp; session.setInputCallback(input_callback_normal)<BR>&nbsp; return(ret)</DIV>
<DIV>&nbsp;</DIV>
<DIV>def handler(session, args):<BR>&nbsp; session.answer()<BR>&nbsp; session.execute("sleep", "1000")<BR>&nbsp; record_file(session,"/home/marc/test.wav")<BR>&nbsp; thesize = os.path.getsize("/home/marc/test.wav")<BR>&nbsp; consoleLog("INFO","Size = " + str(thesize) + "\n")<BR></DIV>
<DIV>&nbsp;</DIV>
<DIV>Thanks,</DIV>
<DIV>Marc</DIV>
<DIV>&nbsp;</DIV></div></body></html>