IIRC, Anthony mentioned an elegant way of handling this not too long ago, although it was with a different language. The gist of it was this: While (session.is.active) { Do stuff } Do stuff after hangup Obviously you'll need to use Python-ish syntax but you get the idea. Alternatively you can research using the api_hangup_hook channel variable and see if possibly this will let you do what you wish to do: http://wiki.freeswitch.org/wiki/Channel_Variables#api_hangup_hook in any event, please report back what you tried and if you get it to work please add it to the more samples section of the mod_python wiki page since that needs a little love from the Pythoners out there. -MC
-----Original Message----- From: freeswitch-users-bounces@lists.freeswitch.org [mailto:freeswitch- users-bounces@lists.freeswitch.org] On Behalf Of Novak Joe Sent: Wednesday, September 10, 2008 10:26 PM To: freeswitch-users@lists.freeswitch.org Subject: [Freeswitch-users] mod_python post-processing after hangup
Hi, I'd like to run some process after a hangup, in the background.
I'm using mod_python and would like to run something after a call ends. In the snippet below I'd like the call to hangup at 'session.hangup(1)' then the consoleLog to print the 'Testing' message 15 seconds later.
At present, if I hangup my call, it works, however if I stay on the line the call doesn't hangup until the call to sleep comes back.
How can accomplish this functionality without using mod_event_socket, is there a way? Should I stick this in the hangup_hook? Will the hangup_hook maintain state for a database call?
Cheers, Joe ----------------------------- ----------------------------- import os from freeswitch import * import time def hangup_hook(session, what): consoleLog("info","hangup hook for %s!!\n\n" % what) return def input_callback(session, what, obj): if (what == "dtmf"): consoleLog("info", what + " " + obj.digit + "\n") else: consoleLog("info", what + " " + obj.serialize() + "\n")
return "pause" def handler(session, args): session.answer() session.setHangupHook(hangup_hook) session.setInputCallback(input_callback) session.streamFile(session.getVariable("hold_music")) session.hangup(1) time.sleep(15) consoleLog("info", "Testing.") ----------------------------- -----------------------------
_______________________________________________ Freeswitch-users mailing list Freeswitch-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users