Hello, I have a functionality that I am trying to implement via Freeswitch and mod_python, in which a user calls in, Freeswitch hangs up the call and then call the user back. All should happen from inside Freeswitch. Here is the code that I had written for it: def handler(session, args): if is_callback_set(app_instance): schedule_callback(app_instance, session.getCallerID()) is_callback_set(app_instance) : checks if we need to callback on this application instance. schedule_callback(app_instance, session.getCallerID()) : function to call the caller back inside schedule_callback, I create a new thread called CallerbackThread, and start the callback in another thread. Inside CallBackThread, following happens: def run(self): new_session = Session(url) if new_session.answered(): new_session.ai = self.app_instance new_session.getCallerID = lambda: new_session.getVariable("destination_number") new_session.setInputCallback(call_back) new_session.isHungup = lambda: new_session.getState() == 'CS_HANGUP' while not new_session.isHungup(): new_session.streamFile("abcd.mp3") new_session.hangup() def call_back(session,what,obj): logger.debug("hi callback") The originate occurs and I am able to hear the file getting streamed correctly. But when I press any dtmf input, then on first input nothing happens, and in the next input I start getting "TypeError : call_back expects 3 args, 0 given" error. I dont know what can be the solution. Any help regarding this is highly appreciated! Regards, Dinesh