root/modules/branches/2.5/paging/install.php

Revision 5770, 4.3 kB (checked in by p_lindheimer, 5 years ago)

#1939 - add specific Call-Info header for Mitel user agents, should have been added when ticket was clsoed

Line 
1 <?php
2
3 // Enable intercom as a feature code
4 $fcc = new featurecode('paging', 'intercom-prefix');
5 $fcc->setDescription('Intercom prefix');
6 $fcc->setDefault('*80',false);
7 $fcc->update();
8 unset($fcc);
9
10 // User intercom enable code
11 $fcc = new featurecode('paging', 'intercom-on');
12 $fcc->setDescription('User Intercom Allow');
13 $fcc->setDefault('*54',false);
14 $fcc->update();
15 unset($fcc);
16
17 // User intercom disable
18 $fcc = new featurecode('paging', 'intercom-off');
19 $fcc->setDescription('User Intercom Disallow');
20 $fcc->setDefault('*55',false);
21 $fcc->update();
22 unset($fcc);   
23
24 // Remove old tables that were never used
25 //
26 $sql = "DROP TABLE IF EXISTS paging_phones";
27 $result = $db->query($sql);
28 if(DB::IsError($result)) {
29     die_freepbx($result->getDebugInfo());
30 }
31 $sql = "DROP TABLE IF EXISTS paging_overview";
32 $result = $db->query($sql);
33 if(DB::IsError($result)) {
34     die_freepbx($result->getDebugInfo());
35 }
36
37 $sql = "CREATE TABLE IF NOT EXISTS paging_groups
38     ( page_number VARCHAR(50),
39       ext VARCHAR(25),
40         PRIMARY KEY (page_number, ext)
41     )";
42 $result = $db->query($sql);
43 if(DB::IsError($result)) {
44     die_freepbx($result->getDebugInfo());
45 }
46
47 // Create table used to change defaults and customize
48 // for certain phone types
49 //
50 $sql = "
51 CREATE TABLE IF NOT EXISTS `paging_autoanswer` (
52     `useragent` VARCHAR( 255 ) NOT NULL ,
53     `var` VARCHAR( 20 ) NOT NULL ,
54     `setting` VARCHAR( 255 ) NOT NULL ,
55     PRIMARY KEY ( `useragent` , `var` )
56 );";
57 $result = $db->query($sql);
58 if(DB::IsError($result)) {
59     die_freepbx($result->getDebugInfo());
60 }
61
62 // version 1.6 upgrade
63 $sql = "SELECT page_group FROM paging_config";
64 $check = $db->getRow($sql, DB_FETCHMODE_ASSOC);
65 if(DB::IsError($check)) {
66     // this table wasn't used up to this point, replace it with the new one
67     $sql = "DROP TABLE IF EXISTS paging_config;";
68     $result = $db->query($sql);
69     if(DB::IsError($result)) {
70         die_freepbx($result->getDebugInfo());
71     }
72     
73     $sql = "CREATE TABLE IF NOT EXISTS paging_config
74         ( page_group VARCHAR(255),
75           force_page INTEGER(1) NOT NULL,
76             duplex     INTEGER(1) NOT NULL default '0',
77             description VARCHAR(255) NOT NULL default '',
78             PRIMARY KEY (page_group)
79         )";
80     $result = $db->query($sql);
81     if(DB::IsError($result)) {
82         die_freepbx($result->getDebugInfo());
83     }
84
85     // insert default values
86     $sql = "INSERT INTO paging_config (page_group, force_page, duplex, description)  SELECT DISTINCT page_number, 0, 0, '' FROM paging_groups";
87     $result = $db->query($sql);
88     if(DB::IsError($result)) {
89         die_freepbx($result->getDebugInfo());
90     }
91 }
92
93 // Set the initial default values, if already
94
95 // These are the three most common ways of auto answering.
96 // If the table is already populated then error will be ignored and user data will not get altered
97 //
98 $sql = "INSERT INTO paging_autoanswer (useragent, var, setting) VALUES ('default', 'CALLINFO', 'Call-Info: <uri>\\\\;answer-after=0')";
99 $result = $db->query($sql);
100 $sql = "INSERT INTO paging_autoanswer (useragent, var, setting) VALUES ('default', 'ALERTINFO', 'Alert-Info: Ring Answer')";
101 $result = $db->query($sql);
102 $sql = "INSERT INTO paging_autoanswer (useragent, var, setting) VALUES ('default', 'SIPURI', 'intercom=true')";
103 $result = $db->query($sql);
104 $sql = "INSERT INTO paging_autoanswer (useragent, var, setting) VALUES ('Mitel', 'CALLINFO', 'Call-Info: <sip:broadworks.net>\\\\;answer-after=0')";
105 $result = $db->query($sql);
106
107 // Add dulex field
108 //
109 $sql = "SELECT duplex FROM paging_config";
110 $result = $db->getRow($sql, DB_FETCHMODE_ASSOC);
111 if (DB::IsError($result)) {
112     $sql = "ALTER TABLE paging_config ADD duplex INTEGER(1) NOT NULL default '0'";
113     $results = $db->query($sql);
114     if(DB::IsError($results)) {
115             die_freepbx($results->getMessage());
116     }
117 }
118
119 // Add description field
120 //
121 $sql = "SELECT description FROM paging_config";
122 $result = $db->getRow($sql, DB_FETCHMODE_ASSOC);
123 if (DB::IsError($result)) {
124     $sql = "ALTER TABLE paging_config ADD description VARCHAR(255) NOT NULL default ''";
125     $results = $db->query($sql);
126     if(DB::IsError($results)) {
127             die_freepbx($results->getMessage());
128     }
129 }
130 // Make sure primary keys are set, they were not originally. Don't check for error,
131 // if they exist it will give an error
132 //
133 $sql = "ALTER TABLE `paging_groups` ADD PRIMARY KEY ( `page_number` , `ext` )";
134 $result = $db->query($sql);
135
136 $sql = "ALTER TABLE `paging_config` ADD PRIMARY KEY ( `page_group` )";
137 $result = $db->query($sql);
138
139 ?>
140
Note: See TracBrowser for help on using the browser.