forked from Mirrors/freeswitch
53 lines
1.2 KiB
Lua
53 lines
1.2 KiB
Lua
|
|
local count = 0;
|
|
local tddstring = {};
|
|
|
|
|
|
function my_cb(s, type, obj, arg)
|
|
if (arg) then
|
|
freeswitch.console_log("info", "\ntype: " .. type .. "\n" .. "arg: " .. arg .. "\n");
|
|
else
|
|
freeswitch.console_log("info", "\ntype: " .. type .. "\n");
|
|
end
|
|
|
|
|
|
tdddata = obj:getHeader("TDD-Data");
|
|
count = 0;
|
|
table.insert(tddstring, tdddata);
|
|
|
|
|
|
freeswitch.console_log("info", obj:serialize("xml"));
|
|
end
|
|
|
|
function all_done(s, how)
|
|
freeswitch.console_log("info", "done: " .. how .. "\n");
|
|
end
|
|
|
|
function tablelength(T)
|
|
local count = 0
|
|
for _ in pairs(T) do count = count + 1 end
|
|
return count
|
|
end
|
|
|
|
|
|
blah = "args";
|
|
session:setHangupHook("all_done");
|
|
session:setInputCallback("my_cb", "blah");
|
|
session:answer();
|
|
|
|
session:execute("playback", "silence_stream://2000");
|
|
session:execute("spandsp_detect_tdd");
|
|
session:execute("spandsp_send_tdd", "Welcome to FreeSWITCH");
|
|
|
|
while session:ready() do
|
|
session:streamFile("silence_stream://10000");
|
|
if (count > 0) then
|
|
count = 0;
|
|
if (tablelength(tddstring) > 0) then
|
|
session:execute("spandsp_send_tdd", "You said: " .. table.concat(tddstring));
|
|
tddstring = {};
|
|
end
|
|
end
|
|
count = count + 1;
|
|
end
|