Hi,
I have the following scenario: When using a script in the
conference caller controls, the hangup hook gets destroyed.
Affected script languages: Lua, Spidermonkey, Python, Perl
You can easily reproduce this effect using the below Lua scripts
and adding the script application to the caller controls.
This is what happens:
- hangup without pressing a digit: hangup hook is called
- press a digit without script call, then hangup: hangup hook is
called
- press a digit with script call, then hangup: hangup hook is not
called
Looking into the source code of session_destroy, you can see that
the hangup hook is in fact removed - which shold not happen when
calling a script.
And there is no way to set it again after pressing the "*" digit.
Any ideas on this?
Thanks,
Melanie
test-conferece.lua:
--------------
function
session_hangup_hook(status)
freeswitch.consoleLog("NOTICE", "Session hangup: " .. status ..
"\n")
error()
end
session:answer();
session:setHangupHook("session_hangup_hook")
conf_num = "3000"
session:execute("conference",
string.format("%s@default", conf_num))
session:hangup()
caller_controls.lua:
--------------------
freeswitch.consoleLog("NOTICE","----
DTMF detect ----\n");
conference.conf.xml:
--------------------
<caller-controls>
<group
name="default">
<control
action="mute" digits="0"/>
<control
action="execute_application" digits="*" data="lua
caller_controls.lua"/>
<control
action="energy up" digits="9"/>
<control
action="energy equ" digits="8"/>
<control
action="energy dn" digits="7"/>
<control
action="vol talk up" digits="3"/>
<control
action="vol talk zero" digits="2"/>
<control
action="vol talk dn" digits="1"/>
<control
action="vol listen up" digits="6"/>
<control
action="vol listen zero" digits="5"/>
<control
action="vol listen dn" digits="4"/>
<control
action="hangup" digits="#"/>
</group>