Need help using api_hangup_hook and session_in_hangup_hook
Hello, I'm using the api_hangup_hook and session_in_hangup variables with a pyrun. How do I access the session object from inside the python module? --------------------------------- Here are some logs : Dialplan: sofia/external/3105795721@72.37.252.18 Absolute Condition [emergency] Dialplan: sofia/external/3105795721@72.37.252.18 Action set(session_in_hangup_hook=true) Dialplan: sofia/external/3105795721@72.37.252.18 Action set(api_hangup_hook=pyrun emergency.hangup) Dialplan: sofia/external/3105795721@72.37.252.18 Absolute Condition [emergency] . . 2012-01-07 09:21:57.693488 [DEBUG] mod_python.c:281 Call python script 2012-01-07 09:21:57.693488 [DEBUG] mod_python.c:284 Finished calling python script 2012-01-07 09:21:57.693488 [ERR] mod_python.c:293 Error calling python script 2012-01-07 09:21:57.693488 [ERR] mod_python.c:164 Python Error by calling script "emergency.hangup": <type 'exceptions.NameError'> Message: global name 'session' is not defined Exception: None Traceback (most recent call last) File: "/usr/local/freeswitch/scripts/python/emergency/hangup.py", line 34, in runtime ---------------------------------------------------------- Here is the simple script python module emergency.hangup: from freeswitch import * def runtime(arg): consoleLog("info", print(dir(session))) Thanks, Herman
To those that are interested, I figured out a solution to this problem through experimentation. I don't know if this is the correct way nor do I know the drawback when compared to pyrun. However, this does provide a Freeswitch Session object to my Python code. Instead of using: <action application="set" data="session_in_hangup_hook=true"/> <action application="set" data="api_hangup_hook=pyrun emergency.hangup"/> I used: <action application="set" data="session_in_hangup_hook=true"/> <action application="set" data="api_hangup_hook=python emergency.hangup"/> The python module looks like this (emergency.hangup). You need a function named fsapi(session,stream,event,args): def fsapi(session,stream,event,args): pass: Herman Griffin www.hermangriffin.com On Sat, Jan 7, 2012 at 9:28 AM, Herman Griffin <herman.griffin@gmail.com> wrote:
Hello,
I'm using the api_hangup_hook and session_in_hangup variables with a pyrun. How do I access the session object from inside the python module?
--------------------------------- Here are some logs :
Dialplan: sofia/external/3105795721@72.37.252.18 Absolute Condition [emergency] Dialplan: sofia/external/3105795721@72.37.252.18 Action set(session_in_hangup_hook=true) Dialplan: sofia/external/3105795721@72.37.252.18 Action set(api_hangup_hook=pyrun emergency.hangup) Dialplan: sofia/external/3105795721@72.37.252.18 Absolute Condition [emergency] . . 2012-01-07 09:21:57.693488 [DEBUG] mod_python.c:281 Call python script 2012-01-07 09:21:57.693488 [DEBUG] mod_python.c:284 Finished calling python script 2012-01-07 09:21:57.693488 [ERR] mod_python.c:293 Error calling python script 2012-01-07 09:21:57.693488 [ERR] mod_python.c:164 Python Error by calling script "emergency.hangup": <type 'exceptions.NameError'> Message: global name 'session' is not defined Exception: None
Traceback (most recent call last) File: "/usr/local/freeswitch/scripts/python/emergency/hangup.py", line 34, in runtime
---------------------------------------------------------- Here is the simple script
python module emergency.hangup:
from freeswitch import *
def runtime(arg): consoleLog("info", print(dir(session)))
Thanks, Herman
participants (1)
-
Herman Griffin