summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLeonardo Arena <rnalrd@gmail.com>2011-06-08 07:46:05 +0000
committerLeonardo Arena <rnalrd@gmail.com>2011-06-08 07:46:05 +0000
commit70190e54e41ce5c64bf895e18492df1c4f83ab2f (patch)
tree31e2ed22e97eb3c11134c2123b9ffa8fa9f4a73b
parent49d562a36a4f6b7305e914b9a89042ba38277a30 (diff)
downloadacf-provisioning-70190e54e41ce5c64bf895e18492df1c4f83ab2f.tar.bz2
acf-provisioning-70190e54e41ce5c64bf895e18492df1c4f83ab2f.tar.xz
Add preliminary template for SNOMs
-rw-r--r--templates/snom-template.lua95
1 files changed, 95 insertions, 0 deletions
diff --git a/templates/snom-template.lua b/templates/snom-template.lua
new file mode 100644
index 0000000..7ac4542
--- /dev/null
+++ b/templates/snom-template.lua
@@ -0,0 +1,95 @@
+<%
+local values = ...
+
+local function xml_elem(t,v,p,i)
+ local elem = t
+ if i == nil then
+ if v == true then
+ io.write('<'..elem..' perm="'..p..'">on</'..elem..'>\n')
+ elseif v == false then
+ io.write('<'..elem..' perm="'..p..'">off</'..elem..'>\n')
+ else
+ io.write('<'..elem..' perm="'..p..'">'..tostring(v)..'</'..elem..'>\n')
+ end
+ else
+ if v == true then
+ io.write('<'..elem..' idx="'..i..'" perm="'..p..'">on</'..elem..'>\n')
+ elseif v == false then
+ io.write('<'..elem..' idx="'..i..'" perm="'..p..'">off</'..elem..'>\n')
+ else
+ io.write('<'..elem..' idx="'..i..'" perm="'..p..'">'..tostring(v)..'</'..elem..'>\n')
+ end
+ end
+end
+%>
+
+<?xml version="1.0" encoding="utf-8"?>
+<settings>
+ <phone-settings>
+ <admin_mode_password perm="R"><% io.write(values.device.adminpassword) %></admin_mode_password>
+ <codec_tos perm="RW">184</codec_tos>
+ <% if values.device.dateformat == string.lower("mm/dd/yyyy") then
+ io.write('<date_us_format perm="RW">on</date_us_format>')
+ else
+ io.write('<date_us_format perm="RW">off</date_us_format>')
+ end %>
+ <dhcp perm="RW">on</dhcp>
+ <dim_timer perm="R">60</dim_timer>
+ <% xml_elem('eth_pc',values.device.pcportenable,'R') %>
+ <http_pass perm="R"><% io.write(values.device.adminpassword) %></http_pass>
+ <http_user perm="R">admin</http_user>
+ <ignore_security_warning perm="R">on</ignore_security_warning>
+ <% xml_elem('language',values.device.uilanguage,'RW') %>
+ <ntp_server perm="RW"><% io.write(values.device.sntpserver) %></ntp_server>
+ <publish_presence perm="R">off</publish_presence>
+ <refer_brackets perm="R">on</refer_brackets>
+ <settings_refresh_timer perm="RW">7200</settings_refresh_timer>
+ <signaling_tos perm="RW">184</signaling_tos>
+ <% xml_elem('time_24_format',values.device.timeformat24h,'RW') %>
+ <!--<timezone perm="RW">ITA+1</timezone> http://wiki.snom.com/Settings/timezone -->
+ <!--<tone_scheme perm="RW">ITA</tone_scheme> http://wiki.snom.com/wiki/index.php/Settings/tone_scheme -->
+ <update_policy perm="R">auto_update</update_policy>
+ <use_hidden_tags perm="RW">off</use_hidden_tags>
+ <%
+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('record_dialed_calls', pg_t.callhistoryenable, 'R', num)
+ xml_elem('record_missed_calls', pg_t.callhistoryenable, 'R', num)
+ xml_elem('record_received_calls', pg_t.callhistoryenable, 'R', num)
+ -- SNOMs do not support per-line forwarding
+ xml_elem('redirect_allways',pg_t.forwardallenable,'RW')
+ xml_elem('redirect_number',pg_t.forwardall,'RW')
+ xml_elem('redirect_on_busy',pg_t.forwardbusyenable,'RW')
+ xml_elem('redirect_busy_number',pg_t.forwardbusy,'RW')
+ xml_elem('redirect_on_timeout',pg_t.forwardnoanswerenable,'RW')
+ xml_elem('redirect_time_number',pg_t.forwardnoanswer,'RW')
+ xml_elem('redirect_time','20','RW')
+ xml_elem('retry_after_failed_subscribe', '30', 'R', num)
+ xml_elem('user_active', 'on', 'RW', num )
+ xml_elem('user_host', values.device.registrar, 'R', num )
+ xml_elem('user_hold_inactive', 'off', 'R', num)
+ xml_elem('user_moh', values.device.musiconhold, 'R', num)
+ xml_elem('user_name', pg_t.extension, 'R', num)
+ xml_elem('user_outbound', values.device.registrar, 'R', num)
+ xml_elem('user_pass', pg_t.password, 'R', num)
+ xml_elem('user_publish_presence_bootup', 'off', 'R', num)
+ xml_elem('user_ringer', 'Ringer'..pg_t.ringtone, '!', num)
+ xml_elem('user_shared_line',pg_t.sharedlineenable, 'R', num)
+ xml_elem('user_srtp', 'off', 'R', num)
+ xml_elem('user_subscription_expiry', '120', 'R', num) -- by default SNOMs re-register after *half* of this time have passed
+ -- Caller ID string
+ if string.len(pg_t.callerid) == 0 then
+ xml_elem( 'user_realname', pg_t.extension,'R', num)
+ else
+ xml_elem( 'user_realname', pg_t.callerid,'R', num)
+ end
+ end
+ end
+end
+ %>
+ </phone-settings>
+</settings>