summaryrefslogtreecommitdiffstats
path: root/provisioning-scripts.lua
diff options
context:
space:
mode:
Diffstat (limited to 'provisioning-scripts.lua')
-rwxr-xr-xprovisioning-scripts.lua403
1 files changed, 403 insertions, 0 deletions
diff --git a/provisioning-scripts.lua b/provisioning-scripts.lua
new file mode 100755
index 0000000..ed953dc
--- /dev/null
+++ b/provisioning-scripts.lua
@@ -0,0 +1,403 @@
+module (..., package.seeall)
+
+-- if a table_creation_script does not create the named table or throw an exception then you will get an infinite loop, so be careful
+
+-- List of each device that we manage
+provisioning_devices = {
+ "CREATE TABLE provisioning_devices (device_id SERIAL PRIMARY KEY, name VARCHAR(255) UNIQUE, label VARCHAR(255))",
+ "CREATE INDEX devices_name_idx ON provisioning_devices (name)",
+}
+
+-- Multi-to-multi mapping of devices to classes
+devices_to_classes = {
+ "CREATE TABLE devices_to_classes (device_id INTEGER REFERENCES provisioning_devices, class_id INTEGER REFERENCES provisioning_classes)",
+ "CREATE INDEX d2c_device_idx ON devices_to_classes (device_id)",
+ "CREATE INDEX d2c_class_idx ON devices_to_classes (class_id)",
+ -- Need to enforce that devices do not contain more than one class in the same class group (using triggers)
+ -- Theoretically should also check on updates and updates of classes, but not going to bother
+ "CREATE OR REPLACE FUNCTION check_class_groups() RETURNS TRIGGER AS $$ \
+ BEGIN \
+ PERFORM * from provisioning_classes join devices_to_classes using(class_id) where device_id=NEW.device_id and class_group_id=(select class_group_id from provisioning_classes where class_id=NEW.class_id); \
+ IF FOUND THEN \
+ RAISE EXCEPTION 'Device cannot have multiple classes within the same class group'; \
+ END IF; \
+ RETURN NEW; \
+ END; \
+ $$ LANGUAGE plpgsql",
+ "CREATE TRIGGER check_class_trigger BEFORE INSERT ON devices_to_classes FOR EACH ROW EXECUTE PROCEDURE check_class_groups()",
+}
+
+-- List of different class groups
+provisioning_class_groups = {
+ "CREATE TABLE provisioning_class_groups (class_group_id SERIAL PRIMARY KEY, name VARCHAR(255) UNIQUE, label VARCHAR(255) UNIQUE, seq INTEGER)",
+ "INSERT INTO provisioning_class_groups VALUES(default, 'device', 'Device Model', '1')",
+ "INSERT INTO provisioning_class_groups VALUES(default, 'services', 'Services', '2')",
+}
+
+-- List of different device classes
+provisioning_classes = {
+ "CREATE TABLE provisioning_classes (class_id SERIAL PRIMARY KEY, class_group_id INTEGER REFERENCES provisioning_class_groups, label VARCHAR(255), seq INTEGER)",
+ "CREATE INDEX classes_group_idx ON provisioning_classes (class_group_id)",
+ "CREATE INDEX classes_label_idx ON provisioning_classes (label)",
+ -- Need to enforce that group/label combo is unique
+ "CREATE UNIQUE INDEX classes_group_label_idx ON provisioning_classes (class_group_id, label)",
+ "INSERT INTO provisioning_classes VALUES(default, (SELECT class_group_id FROM provisioning_class_groups WHERE name='device'), 'Polycom SoundStation IP 6000 SIP', '1')",
+ "INSERT INTO provisioning_classes VALUES(default, (SELECT class_group_id FROM provisioning_class_groups WHERE name='device'), 'Polycom SoundPoint IP 321 SIP', '2')",
+ "INSERT INTO provisioning_classes VALUES(default, (SELECT class_group_id FROM provisioning_class_groups WHERE name='device'), 'Polycom SoundPoint IP 650 SIP', '3')",
+ "INSERT INTO provisioning_classes VALUES(default, (SELECT class_group_id FROM provisioning_class_groups WHERE name='device'), 'Linksys Internet Phone Adapter PAP2T', '4')",
+ "INSERT INTO provisioning_classes VALUES(default, (SELECT class_group_id FROM provisioning_class_groups WHERE name='services'), 'Standard Phone', '1')",
+ "INSERT INTO provisioning_classes VALUES(default, (SELECT class_group_id FROM provisioning_class_groups WHERE name='services'), 'Standard Phone without Call Forwarding', '2')",
+ "INSERT INTO provisioning_classes VALUES(default, (SELECT class_group_id FROM provisioning_class_groups WHERE name='services'), 'Hotline', '3')",
+}
+
+-- Multi-to-multi mapping of classes to parameter groups
+classes_to_param_groups = {
+ "CREATE TABLE classes_to_param_groups (class_id INTEGER REFERENCES provisioning_classes, group_id INTEGER REFERENCES provisioning_groups)",
+ "CREATE INDEX c2g_class_idx ON classes_to_param_groups (class_id)",
+ "CREATE INDEX c2g_group_idx ON classes_to_param_groups (group_id)",
+ -- Need to enforce that classes do not contain more than one parameter group with same name (using triggers)
+ -- Theoretically should also check on updates and updates of groups, but not going to bother
+ "CREATE OR REPLACE FUNCTION check_group_names() RETURNS TRIGGER AS $$ \
+ BEGIN \
+ PERFORM * from provisioning_groups join classes_to_param_groups using(group_id) where class_id=NEW.class_id and name=(select name from provisioning_groups where group_id=NEW.group_id); \
+ IF FOUND THEN \
+ RAISE EXCEPTION 'Classes cannot have multiple parameter groups with the same name'; \
+ END IF; \
+ RETURN NEW; \
+ END; \
+ $$ LANGUAGE plpgsql",
+ "CREATE TRIGGER check_group_trigger BEFORE INSERT ON classes_to_param_groups FOR EACH ROW EXECUTE PROCEDURE check_group_names()",
+ -- Devices
+ "INSERT INTO classes_to_param_groups VALUES((SELECT class_id FROM provisioning_classes WHERE label='Polycom SoundStation IP 6000 SIP'), (SELECT group_id FROM provisioning_groups WHERE label='Registration 1'))",
+ "INSERT INTO classes_to_param_groups VALUES((SELECT class_id FROM provisioning_classes WHERE label='Polycom SoundStation IP 6000 SIP'), (SELECT group_id FROM provisioning_groups WHERE label='Polycom Device'))",
+ "INSERT INTO classes_to_param_groups VALUES((SELECT class_id FROM provisioning_classes WHERE label='Polycom SoundPoint IP 321 SIP'), (SELECT group_id FROM provisioning_groups WHERE label='Registration 1'))",
+ "INSERT INTO classes_to_param_groups VALUES((SELECT class_id FROM provisioning_classes WHERE label='Polycom SoundPoint IP 321 SIP'), (SELECT group_id FROM provisioning_groups WHERE label='Registration 2'))",
+ "INSERT INTO classes_to_param_groups VALUES((SELECT class_id FROM provisioning_classes WHERE label='Polycom SoundPoint IP 321 SIP'), (SELECT group_id FROM provisioning_groups WHERE label='Polycom Device'))",
+ "INSERT INTO classes_to_param_groups VALUES((SELECT class_id FROM provisioning_classes WHERE label='Polycom SoundPoint IP 650 SIP'), (SELECT group_id FROM provisioning_groups WHERE label='Registration 1'))",
+ "INSERT INTO classes_to_param_groups VALUES((SELECT class_id FROM provisioning_classes WHERE label='Polycom SoundPoint IP 650 SIP'), (SELECT group_id FROM provisioning_groups WHERE label='Registration 2'))",
+ "INSERT INTO classes_to_param_groups VALUES((SELECT class_id FROM provisioning_classes WHERE label='Polycom SoundPoint IP 650 SIP'), (SELECT group_id FROM provisioning_groups WHERE label='Registration 3'))",
+ "INSERT INTO classes_to_param_groups VALUES((SELECT class_id FROM provisioning_classes WHERE label='Polycom SoundPoint IP 650 SIP'), (SELECT group_id FROM provisioning_groups WHERE label='Registration 4'))",
+ "INSERT INTO classes_to_param_groups VALUES((SELECT class_id FROM provisioning_classes WHERE label='Polycom SoundPoint IP 650 SIP'), (SELECT group_id FROM provisioning_groups WHERE label='Registration 5'))",
+ "INSERT INTO classes_to_param_groups VALUES((SELECT class_id FROM provisioning_classes WHERE label='Polycom SoundPoint IP 650 SIP'), (SELECT group_id FROM provisioning_groups WHERE label='Registration 6'))",
+ "INSERT INTO classes_to_param_groups VALUES((SELECT class_id FROM provisioning_classes WHERE label='Polycom SoundPoint IP 650 SIP'), (SELECT group_id FROM provisioning_groups WHERE label='Registration 7'))",
+ "INSERT INTO classes_to_param_groups VALUES((SELECT class_id FROM provisioning_classes WHERE label='Polycom SoundPoint IP 650 SIP'), (SELECT group_id FROM provisioning_groups WHERE label='Registration 8'))",
+ "INSERT INTO classes_to_param_groups VALUES((SELECT class_id FROM provisioning_classes WHERE label='Polycom SoundPoint IP 650 SIP'), (SELECT group_id FROM provisioning_groups WHERE label='Registration 9'))",
+ "INSERT INTO classes_to_param_groups VALUES((SELECT class_id FROM provisioning_classes WHERE label='Polycom SoundPoint IP 650 SIP'), (SELECT group_id FROM provisioning_groups WHERE label='Registration 10'))",
+ "INSERT INTO classes_to_param_groups VALUES((SELECT class_id FROM provisioning_classes WHERE label='Polycom SoundPoint IP 650 SIP'), (SELECT group_id FROM provisioning_groups WHERE label='Registration 11'))",
+ "INSERT INTO classes_to_param_groups VALUES((SELECT class_id FROM provisioning_classes WHERE label='Polycom SoundPoint IP 650 SIP'), (SELECT group_id FROM provisioning_groups WHERE label='Registration 12'))",
+ "INSERT INTO classes_to_param_groups VALUES((SELECT class_id FROM provisioning_classes WHERE label='Polycom SoundPoint IP 650 SIP'), (SELECT group_id FROM provisioning_groups WHERE label='Registration 13'))",
+ "INSERT INTO classes_to_param_groups VALUES((SELECT class_id FROM provisioning_classes WHERE label='Polycom SoundPoint IP 650 SIP'), (SELECT group_id FROM provisioning_groups WHERE label='Registration 14'))",
+ "INSERT INTO classes_to_param_groups VALUES((SELECT class_id FROM provisioning_classes WHERE label='Polycom SoundPoint IP 650 SIP'), (SELECT group_id FROM provisioning_groups WHERE label='Registration 15'))",
+ "INSERT INTO classes_to_param_groups VALUES((SELECT class_id FROM provisioning_classes WHERE label='Polycom SoundPoint IP 650 SIP'), (SELECT group_id FROM provisioning_groups WHERE label='Registration 16'))",
+ "INSERT INTO classes_to_param_groups VALUES((SELECT class_id FROM provisioning_classes WHERE label='Polycom SoundPoint IP 650 SIP'), (SELECT group_id FROM provisioning_groups WHERE label='Registration 17'))",
+ "INSERT INTO classes_to_param_groups VALUES((SELECT class_id FROM provisioning_classes WHERE label='Polycom SoundPoint IP 650 SIP'), (SELECT group_id FROM provisioning_groups WHERE label='Registration 18'))",
+ "INSERT INTO classes_to_param_groups VALUES((SELECT class_id FROM provisioning_classes WHERE label='Polycom SoundPoint IP 650 SIP'), (SELECT group_id FROM provisioning_groups WHERE label='Registration 19'))",
+ "INSERT INTO classes_to_param_groups VALUES((SELECT class_id FROM provisioning_classes WHERE label='Polycom SoundPoint IP 650 SIP'), (SELECT group_id FROM provisioning_groups WHERE label='Registration 20'))",
+ "INSERT INTO classes_to_param_groups VALUES((SELECT class_id FROM provisioning_classes WHERE label='Polycom SoundPoint IP 650 SIP'), (SELECT group_id FROM provisioning_groups WHERE label='Registration 21'))",
+ "INSERT INTO classes_to_param_groups VALUES((SELECT class_id FROM provisioning_classes WHERE label='Polycom SoundPoint IP 650 SIP'), (SELECT group_id FROM provisioning_groups WHERE label='Registration 22'))",
+ "INSERT INTO classes_to_param_groups VALUES((SELECT class_id FROM provisioning_classes WHERE label='Polycom SoundPoint IP 650 SIP'), (SELECT group_id FROM provisioning_groups WHERE label='Registration 23'))",
+ "INSERT INTO classes_to_param_groups VALUES((SELECT class_id FROM provisioning_classes WHERE label='Polycom SoundPoint IP 650 SIP'), (SELECT group_id FROM provisioning_groups WHERE label='Registration 24'))",
+ "INSERT INTO classes_to_param_groups VALUES((SELECT class_id FROM provisioning_classes WHERE label='Polycom SoundPoint IP 650 SIP'), (SELECT group_id FROM provisioning_groups WHERE label='Registration 25'))",
+ "INSERT INTO classes_to_param_groups VALUES((SELECT class_id FROM provisioning_classes WHERE label='Polycom SoundPoint IP 650 SIP'), (SELECT group_id FROM provisioning_groups WHERE label='Registration 26'))",
+ "INSERT INTO classes_to_param_groups VALUES((SELECT class_id FROM provisioning_classes WHERE label='Polycom SoundPoint IP 650 SIP'), (SELECT group_id FROM provisioning_groups WHERE label='Registration 27'))",
+ "INSERT INTO classes_to_param_groups VALUES((SELECT class_id FROM provisioning_classes WHERE label='Polycom SoundPoint IP 650 SIP'), (SELECT group_id FROM provisioning_groups WHERE label='Registration 28'))",
+ "INSERT INTO classes_to_param_groups VALUES((SELECT class_id FROM provisioning_classes WHERE label='Polycom SoundPoint IP 650 SIP'), (SELECT group_id FROM provisioning_groups WHERE label='Registration 29'))",
+ "INSERT INTO classes_to_param_groups VALUES((SELECT class_id FROM provisioning_classes WHERE label='Polycom SoundPoint IP 650 SIP'), (SELECT group_id FROM provisioning_groups WHERE label='Registration 30'))",
+ "INSERT INTO classes_to_param_groups VALUES((SELECT class_id FROM provisioning_classes WHERE label='Polycom SoundPoint IP 650 SIP'), (SELECT group_id FROM provisioning_groups WHERE label='Registration 31'))",
+ "INSERT INTO classes_to_param_groups VALUES((SELECT class_id FROM provisioning_classes WHERE label='Polycom SoundPoint IP 650 SIP'), (SELECT group_id FROM provisioning_groups WHERE label='Registration 32'))",
+ "INSERT INTO classes_to_param_groups VALUES((SELECT class_id FROM provisioning_classes WHERE label='Polycom SoundPoint IP 650 SIP'), (SELECT group_id FROM provisioning_groups WHERE label='Registration 33'))",
+ "INSERT INTO classes_to_param_groups VALUES((SELECT class_id FROM provisioning_classes WHERE label='Polycom SoundPoint IP 650 SIP'), (SELECT group_id FROM provisioning_groups WHERE label='Registration 34'))",
+ "INSERT INTO classes_to_param_groups VALUES((SELECT class_id FROM provisioning_classes WHERE label='Polycom SoundPoint IP 650 SIP'), (SELECT group_id FROM provisioning_groups WHERE label='Polycom Device'))",
+ "INSERT INTO classes_to_param_groups VALUES((SELECT class_id FROM provisioning_classes WHERE label='Linksys Internet Phone Adapter PAP2T'), (SELECT group_id FROM provisioning_groups WHERE label='Registration 1'))",
+ "INSERT INTO classes_to_param_groups VALUES((SELECT class_id FROM provisioning_classes WHERE label='Linksys Internet Phone Adapter PAP2T'), (SELECT group_id FROM provisioning_groups WHERE label='Linksys Device'))",
+ -- Services
+ "INSERT INTO classes_to_param_groups VALUES((SELECT class_id FROM provisioning_classes WHERE label='Standard Phone'), (SELECT group_id FROM provisioning_groups WHERE label='Standard Phone'))",
+ "INSERT INTO classes_to_param_groups VALUES((SELECT class_id FROM provisioning_classes WHERE label='Standard Phone without Call Forwarding'), (SELECT group_id FROM provisioning_groups WHERE label='Standard Phone without Call Forwarding'))",
+ "INSERT INTO classes_to_param_groups VALUES((SELECT class_id FROM provisioning_classes WHERE label='Hotline'), (SELECT group_id FROM provisioning_groups WHERE label='Hotline'))",
+}
+
+-- List of different parameter groups
+provisioning_groups = {
+ "CREATE TABLE provisioning_groups (group_id SERIAL PRIMARY KEY, name VARCHAR(255), label VARCHAR(255) UNIQUE, seq INTEGER)",
+ "CREATE INDEX groups_name_idx ON provisioning_groups (name)",
+ "INSERT INTO provisioning_groups VALUES(default, 'device', 'Linksys Device', '1')",
+ "INSERT INTO provisioning_groups VALUES(default, 'device', 'Polycom Device', '1')",
+ "INSERT INTO provisioning_groups VALUES(default, 'reg1', 'Registration 1', '10')",
+ "INSERT INTO provisioning_groups VALUES(default, 'reg2', 'Registration 2', '10')",
+ "INSERT INTO provisioning_groups VALUES(default, 'reg3', 'Registration 3', '10')",
+ "INSERT INTO provisioning_groups VALUES(default, 'reg4', 'Registration 4', '10')",
+ "INSERT INTO provisioning_groups VALUES(default, 'reg5', 'Registration 5', '10')",
+ "INSERT INTO provisioning_groups VALUES(default, 'reg6', 'Registration 6', '10')",
+ "INSERT INTO provisioning_groups VALUES(default, 'reg7', 'Registration 7', '10')",
+ "INSERT INTO provisioning_groups VALUES(default, 'reg8', 'Registration 8', '10')",
+ "INSERT INTO provisioning_groups VALUES(default, 'reg9', 'Registration 9', '10')",
+ "INSERT INTO provisioning_groups VALUES(default, 'reg10', 'Registration 10', '11')",
+ "INSERT INTO provisioning_groups VALUES(default, 'reg11', 'Registration 11', '11')",
+ "INSERT INTO provisioning_groups VALUES(default, 'reg12', 'Registration 12', '11')",
+ "INSERT INTO provisioning_groups VALUES(default, 'reg13', 'Registration 13', '11')",
+ "INSERT INTO provisioning_groups VALUES(default, 'reg14', 'Registration 14', '11')",
+ "INSERT INTO provisioning_groups VALUES(default, 'reg15', 'Registration 15', '11')",
+ "INSERT INTO provisioning_groups VALUES(default, 'reg16', 'Registration 16', '11')",
+ "INSERT INTO provisioning_groups VALUES(default, 'reg17', 'Registration 17', '11')",
+ "INSERT INTO provisioning_groups VALUES(default, 'reg18', 'Registration 18', '11')",
+ "INSERT INTO provisioning_groups VALUES(default, 'reg19', 'Registration 19', '11')",
+ "INSERT INTO provisioning_groups VALUES(default, 'reg20', 'Registration 20', '12')",
+ "INSERT INTO provisioning_groups VALUES(default, 'reg21', 'Registration 21', '12')",
+ "INSERT INTO provisioning_groups VALUES(default, 'reg22', 'Registration 22', '12')",
+ "INSERT INTO provisioning_groups VALUES(default, 'reg23', 'Registration 23', '12')",
+ "INSERT INTO provisioning_groups VALUES(default, 'reg24', 'Registration 24', '12')",
+ "INSERT INTO provisioning_groups VALUES(default, 'reg25', 'Registration 25', '12')",
+ "INSERT INTO provisioning_groups VALUES(default, 'reg26', 'Registration 26', '12')",
+ "INSERT INTO provisioning_groups VALUES(default, 'reg27', 'Registration 27', '12')",
+ "INSERT INTO provisioning_groups VALUES(default, 'reg28', 'Registration 28', '12')",
+ "INSERT INTO provisioning_groups VALUES(default, 'reg29', 'Registration 29', '12')",
+ "INSERT INTO provisioning_groups VALUES(default, 'reg30', 'Registration 30', '13')",
+ "INSERT INTO provisioning_groups VALUES(default, 'reg31', 'Registration 31', '13')",
+ "INSERT INTO provisioning_groups VALUES(default, 'reg32', 'Registration 32', '13')",
+ "INSERT INTO provisioning_groups VALUES(default, 'reg33', 'Registration 33', '13')",
+ "INSERT INTO provisioning_groups VALUES(default, 'reg34', 'Registration 34', '13')",
+ "INSERT INTO provisioning_groups VALUES(default, 'services', 'Standard Phone', '21')",
+ "INSERT INTO provisioning_groups VALUES(default, 'services', 'Standard Phone without Call Forwarding', '22')",
+ "INSERT INTO provisioning_groups VALUES(default, 'services', 'Hotline', '23')",
+}
+
+-- Multi-to-multi mapping of parameter groups to parameters
+param_groups_to_params = {
+ "CREATE TABLE param_groups_to_params (group_id INTEGER REFERENCES provisioning_groups, param_id INTEGER REFERENCES provisioning_params, value VARCHAR(255), editable BOOLEAN)",
+ "CREATE INDEX g2p_group_idx ON param_groups_to_params (group_id)",
+ "CREATE INDEX g2p_param_idx ON param_groups_to_params (param_id)",
+ "CREATE INDEX g2p_editable_idx ON param_groups_to_params (editable)",
+ "CREATE UNIQUE INDEX g2p_group_param_idx ON param_groups_to_params (group_id, param_id)",
+ -- Device
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Linksys ATA Device'), (SELECT param_id FROM provisioning_params WHERE name='template'), '/etc/provisioning/templates/linksysata-template.lua', false)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Polycom Device'), (SELECT param_id FROM provisioning_params WHERE name='template'), '/etc/provisioning/templates/polycom-template.lua', false)",
+ -- Registrations
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 1'), (SELECT param_id FROM provisioning_params WHERE name='extension'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 1'), (SELECT param_id FROM provisioning_params WHERE name='password'), '', false)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 1'), (SELECT param_id FROM provisioning_params WHERE name='forwardnoanswer'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 1'), (SELECT param_id FROM provisioning_params WHERE name='forwardbusy'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 1'), (SELECT param_id FROM provisioning_params WHERE name='forwardall'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 2'), (SELECT param_id FROM provisioning_params WHERE name='extension'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 2'), (SELECT param_id FROM provisioning_params WHERE name='password'), '', false)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 2'), (SELECT param_id FROM provisioning_params WHERE name='forwardnoanswer'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 2'), (SELECT param_id FROM provisioning_params WHERE name='forwardbusy'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 2'), (SELECT param_id FROM provisioning_params WHERE name='forwardall'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 3'), (SELECT param_id FROM provisioning_params WHERE name='extension'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 3'), (SELECT param_id FROM provisioning_params WHERE name='password'), '', false)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 3'), (SELECT param_id FROM provisioning_params WHERE name='forwardnoanswer'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 3'), (SELECT param_id FROM provisioning_params WHERE name='forwardbusy'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 3'), (SELECT param_id FROM provisioning_params WHERE name='forwardall'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 4'), (SELECT param_id FROM provisioning_params WHERE name='extension'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 4'), (SELECT param_id FROM provisioning_params WHERE name='password'), '', false)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 4'), (SELECT param_id FROM provisioning_params WHERE name='forwardnoanswer'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 4'), (SELECT param_id FROM provisioning_params WHERE name='forwardbusy'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 4'), (SELECT param_id FROM provisioning_params WHERE name='forwardall'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 5'), (SELECT param_id FROM provisioning_params WHERE name='extension'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 5'), (SELECT param_id FROM provisioning_params WHERE name='password'), '', false)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 5'), (SELECT param_id FROM provisioning_params WHERE name='forwardnoanswer'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 5'), (SELECT param_id FROM provisioning_params WHERE name='forwardbusy'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 5'), (SELECT param_id FROM provisioning_params WHERE name='forwardall'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 6'), (SELECT param_id FROM provisioning_params WHERE name='extension'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 6'), (SELECT param_id FROM provisioning_params WHERE name='password'), '', false)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 6'), (SELECT param_id FROM provisioning_params WHERE name='forwardnoanswer'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 6'), (SELECT param_id FROM provisioning_params WHERE name='forwardbusy'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 6'), (SELECT param_id FROM provisioning_params WHERE name='forwardall'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 7'), (SELECT param_id FROM provisioning_params WHERE name='extension'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 7'), (SELECT param_id FROM provisioning_params WHERE name='password'), '', false)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 7'), (SELECT param_id FROM provisioning_params WHERE name='forwardnoanswer'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 7'), (SELECT param_id FROM provisioning_params WHERE name='forwardbusy'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 7'), (SELECT param_id FROM provisioning_params WHERE name='forwardall'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 8'), (SELECT param_id FROM provisioning_params WHERE name='extension'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 8'), (SELECT param_id FROM provisioning_params WHERE name='password'), '', false)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 8'), (SELECT param_id FROM provisioning_params WHERE name='forwardnoanswer'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 8'), (SELECT param_id FROM provisioning_params WHERE name='forwardbusy'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 8'), (SELECT param_id FROM provisioning_params WHERE name='forwardall'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 9'), (SELECT param_id FROM provisioning_params WHERE name='extension'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 9'), (SELECT param_id FROM provisioning_params WHERE name='password'), '', false)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 9'), (SELECT param_id FROM provisioning_params WHERE name='forwardnoanswer'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 9'), (SELECT param_id FROM provisioning_params WHERE name='forwardbusy'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 9'), (SELECT param_id FROM provisioning_params WHERE name='forwardall'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 10'), (SELECT param_id FROM provisioning_params WHERE name='extension'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 10'), (SELECT param_id FROM provisioning_params WHERE name='password'), '', false)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 10'), (SELECT param_id FROM provisioning_params WHERE name='forwardnoanswer'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 10'), (SELECT param_id FROM provisioning_params WHERE name='forwardbusy'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 10'), (SELECT param_id FROM provisioning_params WHERE name='forwardall'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 11'), (SELECT param_id FROM provisioning_params WHERE name='extension'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 11'), (SELECT param_id FROM provisioning_params WHERE name='password'), '', false)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 11'), (SELECT param_id FROM provisioning_params WHERE name='forwardnoanswer'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 11'), (SELECT param_id FROM provisioning_params WHERE name='forwardbusy'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 11'), (SELECT param_id FROM provisioning_params WHERE name='forwardall'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 12'), (SELECT param_id FROM provisioning_params WHERE name='extension'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 12'), (SELECT param_id FROM provisioning_params WHERE name='password'), '', false)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 12'), (SELECT param_id FROM provisioning_params WHERE name='forwardnoanswer'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 12'), (SELECT param_id FROM provisioning_params WHERE name='forwardbusy'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 12'), (SELECT param_id FROM provisioning_params WHERE name='forwardall'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 13'), (SELECT param_id FROM provisioning_params WHERE name='extension'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 13'), (SELECT param_id FROM provisioning_params WHERE name='password'), '', false)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 13'), (SELECT param_id FROM provisioning_params WHERE name='forwardnoanswer'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 13'), (SELECT param_id FROM provisioning_params WHERE name='forwardbusy'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 13'), (SELECT param_id FROM provisioning_params WHERE name='forwardall'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 14'), (SELECT param_id FROM provisioning_params WHERE name='extension'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 14'), (SELECT param_id FROM provisioning_params WHERE name='password'), '', false)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 14'), (SELECT param_id FROM provisioning_params WHERE name='forwardnoanswer'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 14'), (SELECT param_id FROM provisioning_params WHERE name='forwardbusy'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 14'), (SELECT param_id FROM provisioning_params WHERE name='forwardall'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 15'), (SELECT param_id FROM provisioning_params WHERE name='extension'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 15'), (SELECT param_id FROM provisioning_params WHERE name='password'), '', false)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 15'), (SELECT param_id FROM provisioning_params WHERE name='forwardnoanswer'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 15'), (SELECT param_id FROM provisioning_params WHERE name='forwardbusy'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 15'), (SELECT param_id FROM provisioning_params WHERE name='forwardall'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 16'), (SELECT param_id FROM provisioning_params WHERE name='extension'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 16'), (SELECT param_id FROM provisioning_params WHERE name='password'), '', false)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 16'), (SELECT param_id FROM provisioning_params WHERE name='forwardnoanswer'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 16'), (SELECT param_id FROM provisioning_params WHERE name='forwardbusy'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 16'), (SELECT param_id FROM provisioning_params WHERE name='forwardall'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 17'), (SELECT param_id FROM provisioning_params WHERE name='extension'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 17'), (SELECT param_id FROM provisioning_params WHERE name='password'), '', false)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 17'), (SELECT param_id FROM provisioning_params WHERE name='forwardnoanswer'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 17'), (SELECT param_id FROM provisioning_params WHERE name='forwardbusy'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 17'), (SELECT param_id FROM provisioning_params WHERE name='forwardall'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 18'), (SELECT param_id FROM provisioning_params WHERE name='extension'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 18'), (SELECT param_id FROM provisioning_params WHERE name='password'), '', false)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 18'), (SELECT param_id FROM provisioning_params WHERE name='forwardnoanswer'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 18'), (SELECT param_id FROM provisioning_params WHERE name='forwardbusy'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 18'), (SELECT param_id FROM provisioning_params WHERE name='forwardall'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 19'), (SELECT param_id FROM provisioning_params WHERE name='extension'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 19'), (SELECT param_id FROM provisioning_params WHERE name='password'), '', false)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 19'), (SELECT param_id FROM provisioning_params WHERE name='forwardnoanswer'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 19'), (SELECT param_id FROM provisioning_params WHERE name='forwardbusy'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 19'), (SELECT param_id FROM provisioning_params WHERE name='forwardall'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 20'), (SELECT param_id FROM provisioning_params WHERE name='extension'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 20'), (SELECT param_id FROM provisioning_params WHERE name='password'), '', false)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 20'), (SELECT param_id FROM provisioning_params WHERE name='forwardnoanswer'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 20'), (SELECT param_id FROM provisioning_params WHERE name='forwardbusy'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 20'), (SELECT param_id FROM provisioning_params WHERE name='forwardall'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 21'), (SELECT param_id FROM provisioning_params WHERE name='extension'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 21'), (SELECT param_id FROM provisioning_params WHERE name='password'), '', false)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 21'), (SELECT param_id FROM provisioning_params WHERE name='forwardnoanswer'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 21'), (SELECT param_id FROM provisioning_params WHERE name='forwardbusy'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 21'), (SELECT param_id FROM provisioning_params WHERE name='forwardall'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 22'), (SELECT param_id FROM provisioning_params WHERE name='extension'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 22'), (SELECT param_id FROM provisioning_params WHERE name='password'), '', false)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 22'), (SELECT param_id FROM provisioning_params WHERE name='forwardnoanswer'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 22'), (SELECT param_id FROM provisioning_params WHERE name='forwardbusy'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 22'), (SELECT param_id FROM provisioning_params WHERE name='forwardall'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 23'), (SELECT param_id FROM provisioning_params WHERE name='extension'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 23'), (SELECT param_id FROM provisioning_params WHERE name='password'), '', false)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 23'), (SELECT param_id FROM provisioning_params WHERE name='forwardnoanswer'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 23'), (SELECT param_id FROM provisioning_params WHERE name='forwardbusy'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 23'), (SELECT param_id FROM provisioning_params WHERE name='forwardall'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 24'), (SELECT param_id FROM provisioning_params WHERE name='extension'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 24'), (SELECT param_id FROM provisioning_params WHERE name='password'), '', false)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 24'), (SELECT param_id FROM provisioning_params WHERE name='forwardnoanswer'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 24'), (SELECT param_id FROM provisioning_params WHERE name='forwardbusy'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 24'), (SELECT param_id FROM provisioning_params WHERE name='forwardall'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 25'), (SELECT param_id FROM provisioning_params WHERE name='extension'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 25'), (SELECT param_id FROM provisioning_params WHERE name='password'), '', false)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 25'), (SELECT param_id FROM provisioning_params WHERE name='forwardnoanswer'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 25'), (SELECT param_id FROM provisioning_params WHERE name='forwardbusy'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 25'), (SELECT param_id FROM provisioning_params WHERE name='forwardall'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 26'), (SELECT param_id FROM provisioning_params WHERE name='extension'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 26'), (SELECT param_id FROM provisioning_params WHERE name='password'), '', false)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 26'), (SELECT param_id FROM provisioning_params WHERE name='forwardnoanswer'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 26'), (SELECT param_id FROM provisioning_params WHERE name='forwardbusy'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 26'), (SELECT param_id FROM provisioning_params WHERE name='forwardall'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 27'), (SELECT param_id FROM provisioning_params WHERE name='extension'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 27'), (SELECT param_id FROM provisioning_params WHERE name='password'), '', false)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 27'), (SELECT param_id FROM provisioning_params WHERE name='forwardnoanswer'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 27'), (SELECT param_id FROM provisioning_params WHERE name='forwardbusy'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 27'), (SELECT param_id FROM provisioning_params WHERE name='forwardall'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 28'), (SELECT param_id FROM provisioning_params WHERE name='extension'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 28'), (SELECT param_id FROM provisioning_params WHERE name='password'), '', false)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 28'), (SELECT param_id FROM provisioning_params WHERE name='forwardnoanswer'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 28'), (SELECT param_id FROM provisioning_params WHERE name='forwardbusy'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 28'), (SELECT param_id FROM provisioning_params WHERE name='forwardall'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 29'), (SELECT param_id FROM provisioning_params WHERE name='extension'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 29'), (SELECT param_id FROM provisioning_params WHERE name='password'), '', false)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 29'), (SELECT param_id FROM provisioning_params WHERE name='forwardnoanswer'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 29'), (SELECT param_id FROM provisioning_params WHERE name='forwardbusy'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 29'), (SELECT param_id FROM provisioning_params WHERE name='forwardall'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 30'), (SELECT param_id FROM provisioning_params WHERE name='extension'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 30'), (SELECT param_id FROM provisioning_params WHERE name='password'), '', false)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 30'), (SELECT param_id FROM provisioning_params WHERE name='forwardnoanswer'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 30'), (SELECT param_id FROM provisioning_params WHERE name='forwardbusy'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 30'), (SELECT param_id FROM provisioning_params WHERE name='forwardall'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 31'), (SELECT param_id FROM provisioning_params WHERE name='extension'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 31'), (SELECT param_id FROM provisioning_params WHERE name='password'), '', false)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 31'), (SELECT param_id FROM provisioning_params WHERE name='forwardnoanswer'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 31'), (SELECT param_id FROM provisioning_params WHERE name='forwardbusy'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 31'), (SELECT param_id FROM provisioning_params WHERE name='forwardall'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 32'), (SELECT param_id FROM provisioning_params WHERE name='extension'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 32'), (SELECT param_id FROM provisioning_params WHERE name='password'), '', false)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 32'), (SELECT param_id FROM provisioning_params WHERE name='forwardnoanswer'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 32'), (SELECT param_id FROM provisioning_params WHERE name='forwardbusy'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 32'), (SELECT param_id FROM provisioning_params WHERE name='forwardall'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 33'), (SELECT param_id FROM provisioning_params WHERE name='extension'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 33'), (SELECT param_id FROM provisioning_params WHERE name='password'), '', false)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 33'), (SELECT param_id FROM provisioning_params WHERE name='forwardnoanswer'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 33'), (SELECT param_id FROM provisioning_params WHERE name='forwardbusy'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 33'), (SELECT param_id FROM provisioning_params WHERE name='forwardall'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 34'), (SELECT param_id FROM provisioning_params WHERE name='extension'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 34'), (SELECT param_id FROM provisioning_params WHERE name='password'), '', false)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 34'), (SELECT param_id FROM provisioning_params WHERE name='forwardnoanswer'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 34'), (SELECT param_id FROM provisioning_params WHERE name='forwardbusy'), '', true)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Registration 34'), (SELECT param_id FROM provisioning_params WHERE name='forwardall'), '', true)",
+ -- Services
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Standard Phone'), (SELECT param_id FROM provisioning_params WHERE name='forwarding'), 'true', false)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Standard Phone'), (SELECT param_id FROM provisioning_params WHERE name='hotlineenable'), 'false', false)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Standard Phone'), (SELECT param_id FROM provisioning_params WHERE name='hotlinedestination'), '', false)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Standard Phone without Call Forwarding'), (SELECT param_id FROM provisioning_params WHERE name='forwarding'), 'false', false)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Standard Phone without Call Forwarding'), (SELECT param_id FROM provisioning_params WHERE name='hotlineenable'), 'false', false)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Standard Phone without Call Forwarding'), (SELECT param_id FROM provisioning_params WHERE name='hotlinedestination'), '', false)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Hotline'), (SELECT param_id FROM provisioning_params WHERE name='forwarding'), 'false', false)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Hotline'), (SELECT param_id FROM provisioning_params WHERE name='hotlineenable'), 'true', false)",
+ "INSERT INTO param_groups_to_params VALUES((SELECT group_id FROM provisioning_groups WHERE label='Hotline'), (SELECT param_id FROM provisioning_params WHERE name='hotlinedestination'), '', true)",
+}
+
+-- List of each parameter used in any way for any device - mostly for how to display
+provisioning_params = {
+ "CREATE TABLE provisioning_params (param_id SERIAL PRIMARY KEY, name VARCHAR(255) UNIQUE, type VARCHAR(255), label VARCHAR(255), descr VARCHAR(255), value VARCHAR(255), seq INTEGER, regexp VARCHAR(255))",
+ "CREATE INDEX params_name_idx ON provisioning_params (name)",
+ "INSERT INTO provisioning_params VALUES(default, 'template', 'select', 'Template', '', '', '0', '')",
+ "INSERT INTO provisioning_params VALUES(default, 'extension', 'text', 'Extension', '', '', '1', '^%d*$')",
+ "INSERT INTO provisioning_params VALUES(default, 'password', 'text', 'Password', '', '', '2', '')",
+ "INSERT INTO provisioning_params VALUES(default, 'forwardnoanswer', 'text', 'Forward on No-answer Destination', 'Callers will be transferred to this extension when you don''t answer after 20 seconds. Blank disables.', '', '3', '')",
+ "INSERT INTO provisioning_params VALUES(default, 'forwardbusy', 'text', 'Forward on Busy Destination', 'Callers will be transferred to this extension when the line is busy. Blank disables.', '', '4', '')",
+ "INSERT INTO provisioning_params VALUES(default, 'forwardall', 'text', 'Forward All Calls Destination', 'All calls will be transferred to this extension. Blank disables.', '', '5', '')",
+ "INSERT INTO provisioning_params VALUES(default, 'forwarding', 'boolean', 'Forwarding Enable', '', 'true', '11', '')",
+ "INSERT INTO provisioning_params VALUES(default, 'hotlineenable', 'boolean', 'Hotline Enable', '', 'false', '12', '')",
+ "INSERT INTO provisioning_params VALUES(default, 'hotlinedestination', 'text', 'Hotline Destination', '', '', '13', '')",
+}
+
+-- All of the (non-default) parameter values for all devices are stored here
+provisioning_values = {
+ -- device_id is a device id from provisioning_devices and param_id is a param id from provisioning_params
+ "CREATE TABLE provisioning_values (device_id INTEGER REFERENCES provisioning_devices, group_name VARCHAR(255), param_id INTEGER REFERENCES provisioning_params, value VARCHAR(255))",
+ "CREATE INDEX values_device_idx ON provisioning_values (device_id)",
+ "CREATE INDEX values_group_idx ON provisioning_values (group_name)",
+ "CREATE INDEX values_param_idx ON provisioning_values (param_id)",
+ "CREATE UNIQUE INDEX values_device_group_param_idx ON provisioning_values (device_id, group_name, param_id)",
+ -- Need to enforce that group_name is a valid name in provisioning_groups (cannot use foreign key because name is not unique in provisioning_groups)
+ -- Better yet, we'll check for a valid combination of device, group, and param (using triggers)
+ -- Theoretically should also check on updates and updates of devices, groups, or parameters, but not going to bother
+ "CREATE OR REPLACE FUNCTION check_valid_param() RETURNS TRIGGER AS $$ \
+ BEGIN \
+ PERFORM * from devices_to_classes d join provisioning_classes using(class_id) join classes_to_param_groups using(class_id) join provisioning_groups g using(group_id) join param_groups_to_params p using(group_id) where d.device_id=NEW.device_id and g.name=NEW.group_name and p.param_id=NEW.param_id; \
+ IF NOT FOUND THEN \
+ RAISE EXCEPTION 'Invalid combination of device, group, and parameter'; \
+ END IF; \
+ RETURN NEW; \
+ END; \
+ $$ LANGUAGE plpgsql",
+ "CREATE TRIGGER valid_param_trigger BEFORE INSERT ON provisioning_values FOR EACH ROW EXECUTE PROCEDURE check_valid_param()",
+}
+
+-- List of options for parameters
+provisioning_options = {
+ "CREATE TABLE provisioning_options (param_id INTEGER REFERENCES provisioning_params, label VARCHAR(255), value VARCHAR(255), seq INTEGER)",
+ "CREATE INDEX options_param_idx ON provisioning_options (param_id)",
+ "CREATE UNIQUE INDEX options_param_label_idx ON provisioning_options (param_id, label)",
+ -- Templates
+ "INSERT INTO provisioning_options VALUES((SELECT param_id FROM provisioning_params WHERE name='template'), 'Polycom', '/etc/provisioning/templates/polycom-template.lua', '1')",
+ "INSERT INTO provisioning_options VALUES((SELECT param_id FROM provisioning_params WHERE name='template'), 'Linksys', '/etc/provisioning/templates/linksysata-template.lua', '2')",
+}