summaryrefslogtreecommitdiffstats
path: root/config/templates/linksysata-template.lua
blob: d7511bff10472d300953299f75daa6372f8df1bd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
<%
-- Linksys ATA Configuration File Template
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
		return "Yes"
	else
		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] = "</"..e..">"
	io.write(table.concat(output))
end
%>

<flat-profile>

<Admin_Passwd ua="na"><%= values.device.adminpassword %></Admin_Passwd>
<User_Password ua="na"><%= values.device.adminpassword %></User_Password>
<HostName ua="na"><%= values.reg1.extension %></HostName>
<Primary_NTP_Server ua="na"><%= values.device.sntpserver %></Primary_NTP_Server>

<% 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)

			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)

			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
			xml_elem("Line_Enable", "No", "na", num)
--			xml_elem("Cfwd_No_Ans_Delay", "0", "na", num)
		end
	end
end %>

</flat-profile>