From fed65bf99b00a89f6815095444ec6a335bf094f5 Mon Sep 17 00:00:00 2001 From: Ted Trask Date: Thu, 27 Oct 2011 19:30:28 +0000 Subject: Rewrote linksysata-template.lua to handle multiple lines --- config/templates/linksysata-template.lua | 129 +++++++++++++++++-------------- 1 file changed, 70 insertions(+), 59 deletions(-) diff --git a/config/templates/linksysata-template.lua b/config/templates/linksysata-template.lua index a8f9022..d7511bf 100644 --- a/config/templates/linksysata-template.lua +++ b/config/templates/linksysata-template.lua @@ -1,22 +1,32 @@ <% -- Linksys ATA Configuration File Template local values = ... -server=values.device.registrar -web_server=string.gsub(ENV['HTTP_HOST'], ":[0-9]*$", "") -moh=values.device.musiconhold -dialpattern="( " .. values.device.digitmap .. " )" -local cid -if values.reg1.callerid == "" then - cid = values.reg1.extension -else - cid = values.reg1.callerid -end -%> - -<% local values = ... %> - -<% +--[[ -- Parameters +values["device"]["adminpassword"] = "" +values["device"]["digitmap"] = "" +values["device"]["mac"] = "" +values["device"]["musiconhold"] = "" +values["device"]["registrar"] = "" +values["device"]["sntpserver"] = "" +values["device"]["template"] = "/etc/provisioning/templates/linksysata-template.lua" +-- Unimplemented -- values["device"]["timezone"] = "" +values["regX"]["callerid"] = "" +values["regX"]["extension"] = "" +values["regX"]["forwardall"] = "" +values["regX"]["forwardallenable"] = false +values["regX"]["forwardbusy"] = "" +values["regX"]["forwardbusyenable"] = false +values["regX"]["forwardnoanswer"] = "" +values["regX"]["forwardnoanswerenable"] = false +values["regX"]["password"] = "" +-- Unimplemented -- values["services"]["callhistoryenable"] = true +values["services"]["callwaitingenable"] = true +values["services"]["forwarding"] = true +-- Unimplemented -- values["services"]["hotlineenable"] = false +-- Unimplemented -- values["services"]["mailbox"] = "" +-- Unimplemented -- values["services"]["speeddialenable"] = true +--]] local function yesno ( bool ) if bool then @@ -25,61 +35,62 @@ local function yesno ( bool ) return "No" end end + +local function xml_elem(elem,value,permissions,i) + local e = elem + if i then e = elem.."_"..tostring(i).."_" end + local output = {"<", e, ' ua="'} + output[#output+1] = (permissions or "na")..'">' + if type(value) == "boolean" then + output[#output+1] = yesno(value) + elseif value then + output[#output+1] = value + end + output[#output+1] = "" + io.write(table.concat(output)) +end %> <%= values.device.adminpassword %> <%= values.device.adminpassword %> +<%= values.reg1.extension %> +<%= values.device.sntpserver %> -<% io.write(values.reg1.extension) %> - -<%= web_server %> -<%= web_server %> - -Yes -<% io.write(moh) %> -<% io.write(server) %> -Yes -No - -<%= cid %> -<% io.write(values.reg1.extension) %> -<% io.write(values.reg1.password) %> +<% for pg, pg_t in pairs(values) do + -- Is it of the form regX ? + local num = string.match(pg, 'reg(%d+)') + if num then + if pg_t.extension ~= "" then + xml_elem("Line_Enable", "Yes", "na", num) + xml_elem("MOH_Server", values.device.musiconhold, "na", num) + xml_elem("Proxy", values.device.registrar, "na", num) + xml_elem("Call_Waiting_Serv", (values.services and values.services.callwaitingenable), "na", num) + xml_elem("Dial_Plan", "( "..values.device.digitmap.." )", "na", num) -<%= yesno(values.services and values.services.callwaitingenable) %> + if pg_t.callerid == "" then + pg_t.callerid = pg_t.extension + end + xml_elem("Display_Name", pg_t.callerid, "na", num) + xml_elem("User_ID", pg_t.extension, "na", num) + xml_elem("Password", pg_t.password, "na", num) -<% io.write(dialpattern) %> - -<% - if values.services and values.services.forwarding and values.reg1 then - local pg_t = values.reg1 - local fwddata = {} - - if pg_t.forwardallenable then - fwddata.all = pg_t.forwardall - else - fwddata.all = "" - end - if pg_t.forwardbusyenable then - fwddata.busy = pg_t.forwardbusy + local forwarding = { {param="forwardall", xml="Cfwd_All_Dest"}, + {param="forwardbusy", xml="Cfwd_Busy_Dest"}, + {param="forwardnoanswer", xml="Cfwd_No_Ans_Dest"} } + for i,f in ipairs(forwarding) do + if value.services.forwarding and pg_t[f.param.."enable"] then + xml_elem(f.xml, pg_t[f.param], "na", num) + else + xml_elem(f.xml, "", "na", num) + end + end else - fwddata.busy = "" + xml_elem("Line_Enable", "No", "na", num) +-- xml_elem("Cfwd_No_Ans_Delay", "0", "na", num) end - if pg_t.forwardnoanswerenable then - fwddata.noanswer = pg_t.forwardnoanswer - fwddata.noanswerdelay = "20" - else - fwddata.noanswer = "" - fwddata.noanswerdelay = "" - end -%> -<%= fwddata.all %> -<%= fwddata.busy %> -<%= fwddata.noanswer %> -<%= fwddata.noanswerdelay %> -<% end -%> +end %> -- cgit v1.2.3