Need help with lua called from dial plan - How to delimit arguments?
I have a line in my dialplan that looks like this: <action application="lua" data="cid.lua ${caller_id_name} ${caller_id_number}" /> However when the program is executed and the caller_id_name has a space in it, the number gets lost. I can't figure out a way to add delimiters that get passed to the shell. None of these work: <action application="lua" data="cid.lua \"${caller_id_name}\" \"${caller_id_number}\"" /> or <action application="lua" data="cid.lua ''${caller_id_name}'' ''${caller_id_number}''" /> or <action application="lua" data="cid.lua \"\"${caller_id_name}\"\" \"\"${caller_id_number}\"\"" /> None of those work. The quotes are all stripped off when running this test lua file: tmp_file = "/tmp/cidtest.txt"; local file = assert(io.open(tmp_file, "a")); local m_name=argv[1]; local m_number=argv[2]; file:write("j cid is ",m_name," number is ",m_number,"\n"); Any suggestions? Thanks, Jim.
Hi Jim, get the variables from the session: https://freeswitch.org/confluence/display/FREESWITCH/Lua+API+Reference#LuaAP... On Sat, May 30, 2015 at 10:21 PM, Jim Lynch <jim@k4gvo.com> wrote:
I have a line in my dialplan that looks like this: <action application="lua" data="cid.lua ${caller_id_name} ${caller_id_number}" />
However when the program is executed and the caller_id_name has a space in it, the number gets lost. I can't figure out a way to add delimiters that get passed to the shell. None of these work:
<action application="lua" data="cid.lua \"${caller_id_name}\" \"${caller_id_number}\"" /> or <action application="lua" data="cid.lua ''${caller_id_name}'' ''${caller_id_number}''" /> or <action application="lua" data="cid.lua \"\"${caller_id_name}\"\" \"\"${caller_id_number}\"\"" />
None of those work. The quotes are all stripped off when running this test
lua file: tmp_file = "/tmp/cidtest.txt"; local file = assert(io.open(tmp_file, "a")); local m_name=argv[1]; local m_number=argv[2]; file:write("j cid is ",m_name," number is ",m_number,"\n");
Any suggestions?
Thanks, Jim.
_________________________________________________________________________ Professional FreeSWITCH Consulting Services: consulting@freeswitch.org http://www.freeswitchsolutions.com
Official FreeSWITCH Sites http://www.freeswitch.org http://confluence.freeswitch.org http://www.cluecon.com
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 http://www.freeswitch.org
-- Sincerely, Giovanni Maruzzelli Cell : +39-347-2665618
Use single quotes (but Giovanni's suggestion is the way to go). On 30 May 2015 at 22:21, Jim Lynch <jim@k4gvo.com> wrote:
I have a line in my dialplan that looks like this: <action application="lua" data="cid.lua ${caller_id_name} ${caller_id_number}" />
However when the program is executed and the caller_id_name has a space in it, the number gets lost. I can't figure out a way to add delimiters that get passed to the shell. None of these work:
<action application="lua" data="cid.lua \"${caller_id_name}\" \"${caller_id_number}\"" /> or <action application="lua" data="cid.lua ''${caller_id_name}'' ''${caller_id_number}''" /> or <action application="lua" data="cid.lua \"\"${caller_id_name}\"\" \"\"${caller_id_number}\"\"" />
None of those work. The quotes are all stripped off when running this test
lua file: tmp_file = "/tmp/cidtest.txt"; local file = assert(io.open(tmp_file, "a")); local m_name=argv[1]; local m_number=argv[2]; file:write("j cid is ",m_name," number is ",m_number,"\n");
Any suggestions?
Thanks, Jim.
_________________________________________________________________________ Professional FreeSWITCH Consulting Services: consulting@freeswitch.org http://www.freeswitchsolutions.com
Official FreeSWITCH Sites http://www.freeswitch.org http://confluence.freeswitch.org http://www.cluecon.com
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 http://www.freeswitch.org
-- Dušan Dragić
why not access it as global variable like session:getVariable("caller_id_name"); and pass it to some variable or you can take help from following snippet of code from function randomize() api = freeswitch.API(); seed = tonumber(api:execute("global_getvar", "randomseed")); if seed == 12345678 or seed == "" or seed == nil then seed = os.time(); end math.randomseed(seed); seed = math.random(1,999999) api:execute("global_setvar", "randomseed=" .. seed)end I have taken it from https://wiki.freeswitch.org/wiki/Fakecall_responder
Date: Sun, 31 May 2015 00:41:06 +0200 From: dragic.dusan@gmail.com To: freeswitch-users@lists.freeswitch.org Subject: Re: [Freeswitch-users] Need help with lua called from dial plan - How to delimit arguments?
Use single quotes (but Giovanni's suggestion is the way to go).
On 30 May 2015 at 22:21, Jim Lynch <jim@k4gvo.com> wrote:
I have a line in my dialplan that looks like this: <action application="lua" data="cid.lua ${caller_id_name} ${caller_id_number}" />
However when the program is executed and the caller_id_name has a space in it, the number gets lost. I can't figure out a way to add delimiters that get passed to the shell. None of these work:
<action application="lua" data="cid.lua \"${caller_id_name}\" \"${caller_id_number}\"" /> or <action application="lua" data="cid.lua ''${caller_id_name}'' ''${caller_id_number}''" /> or <action application="lua" data="cid.lua \"\"${caller_id_name}\"\" \"\"${caller_id_number}\"\"" />
None of those work. The quotes are all stripped off when running this test
lua file: tmp_file = "/tmp/cidtest.txt"; local file = assert(io.open(tmp_file, "a")); local m_name=argv[1]; local m_number=argv[2]; file:write("j cid is ",m_name," number is ",m_number,"\n");
Any suggestions?
Thanks, Jim.
_________________________________________________________________________ Professional FreeSWITCH Consulting Services: consulting@freeswitch.org http://www.freeswitchsolutions.com
Official FreeSWITCH Sites http://www.freeswitch.org http://confluence.freeswitch.org http://www.cluecon.com
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 http://www.freeswitch.org
-- Dušan Dragić
_________________________________________________________________________ Professional FreeSWITCH Consulting Services: consulting@freeswitch.org http://www.freeswitchsolutions.com
Official FreeSWITCH Sites http://www.freeswitch.org http://confluence.freeswitch.org http://www.cluecon.com
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 http://www.freeswitch.org
participants (4)
-
Dušan Dragić
-
Giovanni Maruzzelli
-
Jim Lynch
-
Jyoti Prakash