freeswitch/scripts/lua/callback.lua

70 lines
1.3 KiB
Lua

function all_done(s, how)
io.write("done: " .. how .. "\n");
end
function my_cb(s, type, obj, arg)
if (arg) then
io.write("type: " .. type .. "\n" .. "arg: " .. arg .. "\n");
else
io.write("type: " .. type .. "\n");
end
if (type == "dtmf") then
io.write("digit: [" .. obj['digit'] .. "]\nduration: [" .. obj['duration'] .. "]\n");
if (obj['digit'] == "1") then
return "seek:-3000";
end
if (obj['digit'] == "3") then
return "seek:+3000";
end
if (obj['digit'] == "4") then
return "speed:+1";
end
if (obj['digit'] == "5") then
return "speed:0";
end
if (obj['digit'] == "6") then
return "speed:-1";
end
if (obj['digit'] == "7") then
return "volume:+1";
end
if (obj['digit'] == "8") then
return "volume:0";
end
if (obj['digit'] == "9") then
return "volume:-1";
end
if (obj['digit'] == "*") then
return "stop";
end
if (obj['digit'] == "0") then
return "pause";
end
if (obj['digit'] == "#") then
return "break";
end
else
io.write(obj:serialize("xml"));
end
end
blah = "args";
session:setHangupHook("all_done");
session:setInputCallback("my_cb", "blah");
session:streamFile("/ram/swimp.raw");