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
|
-- This is the script run after editing device params
local functions, params, oldparams = ...
require("posix")
local root = "/var/www/provisioning/htdocs/"
APP.logevent("got to update_device_params script")
local function findip(mac)
if not mac or mac == "" then
return nil
end
local ipaddr = functions.getselectresponse("SELECT ip FROM provisioning_requests WHERE mac~*'"..mac.."'")
if ipaddr and ipaddr[1] then
return ipaddr[1].ip
end
end
local notify_device = function(mac, extension)
local ipaddr = findip(mac)
if ipaddr then
APP.logevent("Notifying "..ipaddr.." to update for "..(mac or ""))
os.execute("/etc/provisioning/notify_device "..ipaddr.." "..extension)
addfuturenotify(ipaddr, extension)
else
APP.logevent("Warning - could not find IP address for "..(mac or ""))
end
end
oldparams = oldparams or {value={}}
-- If the mac address changed, we need to move the associated config files
if oldparams.value.device and oldparams.value.device.value.mac and oldparams.value.device.value.mac.value ~= "" and params.value.device and params.value.device.value.mac and params.value.device.value.mac.value ~= oldparams.value.device.value.mac.value then
if string.match(oldparams.value.device.label, "Polycom") then
local path = root.."Polycom/"
for d in posix.files(path) do
if string.match(d, string.lower(oldparams.value.device.value.mac.value)) and posix.stat(path..d, "type") == "regular" then
local newfile = string.gsub(d, string.lower(oldparams.value.device.value.mac.value), string.lower(params.value.device.value.mac.value))
APP.logevent("moving "..path..d.." to "..path..newfile)
os.rename(path..d, path..newfile)
end
end
end
end
-- Notify the phone to pull it's config
-- Try to get a valid extension currently on the device
local oldexten = ""
for name,val in pairs(oldparams.value) do
if string.match(name, "^reg") and val.value.extension and val.value.extension.value ~= "" then
oldexten = val.value.extension.value
break
end
end
if params.value.device and params.value.device.value.mac and params.value.device.value.mac.value ~= "" then
notify_device(params.value.device.value.mac.value, oldexten)
end
if oldparams.value.device and oldparams.value.device.value.mac and oldparams.value.device.value.mac.value ~= "" then
notify_device(oldparams.value.device.value.mac.value, oldexten)
end
|