PageRenderTime 29ms CodeModel.GetById 10ms RepoModel.GetById 0ms app.codeStats 0ms

/modules/endpointmanager-1.0/endpointman/install.php

https://github.com/robertleeplummerjr/bluebox
PHP | 1041 lines | 859 code | 158 blank | 24 comment | 45 complexity | 8ab89b728d14b3b164a740134d8fd50e MD5 | raw file
  1. <?PHP
  2. ini_set('display_errors', 1);
  3. error_reporting(E_ALL);
  4. /*
  5. Endpoint Manager V2
  6. Copyright (C) 2009-2010 Ed Macri, John Mullinix and Andrew Nagy
  7. This program is free software; you can redistribute it and/or
  8. modify it under the terms of the GNU General Public License
  9. as published by the Free Software Foundation; either version 2
  10. of the License, or (at your option) any later version.
  11. This program is distributed in the hope that it will be useful,
  12. but WITHOUT ANY WARRANTY; without even the implied warranty of
  13. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  14. GNU General Public License for more details.
  15. You should have received a copy of the GNU General Public License
  16. along with this program; if not, write to the Free Software
  17. Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  18. http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
  19. */
  20. if (! function_exists("out")) {
  21. function out($text) {
  22. echo $text."<br />";
  23. }
  24. }
  25. if (! function_exists("outn")) {
  26. function outn($text) {
  27. echo $text;
  28. }
  29. }
  30. function find_exec($exec) {
  31. $usr_bin = glob("/usr/bin/".$exec);
  32. $usr_sbin = glob("/usr/sbin/".$exec);
  33. $sbin = glob("/sbin/".$exec);
  34. $bin = glob("/bin/".$exec);
  35. $etc = glob("/etc/".$exec);
  36. if(isset($usr_bin[0])) {
  37. return("/usr/bin/".$exec);
  38. } elseif(isset($usr_sbin[0])) {
  39. return("/usr/sbin/".$exec);
  40. } elseif(isset($sbin[0])) {
  41. return("/sbin/".$exec);
  42. } elseif(isset($bin[0])) {
  43. return("/bin/".$exec);
  44. } elseif(isset($etc[0])) {
  45. return("/etc/".$exec);
  46. } else {
  47. return($exec);
  48. }
  49. }
  50. global $db;
  51. out("Endpoint Manager Installer");
  52. define("PHONE_MODULES_PATH", $amp_conf['AMPWEBROOT'].'/admin/modules/_ep_phone_modules/');
  53. define("LOCAL_PATH", $amp_conf['AMPWEBROOT'].'/admin/modules/endpointman/');
  54. if(!file_exists(PHONE_MODULES_PATH)) {
  55. mkdir(PHONE_MODULES_PATH, 0764);
  56. out("Creating Phone Modules Directory");
  57. }
  58. if(!file_exists(PHONE_MODULES_PATH."setup.php")) {
  59. copy(LOCAL_PATH."Install/setup.php",PHONE_MODULES_PATH."setup.php");
  60. out("Moving Auto Provisioner Class");
  61. }
  62. if(!file_exists(PHONE_MODULES_PATH."temp/")) {
  63. mkdir(PHONE_MODULES_PATH."temp/", 0764);
  64. out("Creating temp folder");
  65. }
  66. //Detect Version
  67. function ep_table_exists ($table) {
  68. global $db;
  69. $sql = "SHOW TABLES FROM asterisk";
  70. $result = $db->getAll($sql);
  71. foreach($result as $row) {
  72. if ($row[0] == $table) {
  73. return TRUE;
  74. }
  75. }
  76. return FALSE;
  77. }
  78. $version = "2.2.3";
  79. if(ep_table_exists("endpointman_global_vars")) {
  80. $global_cfg =& $db->getAssoc("SELECT var_name, value FROM endpointman_global_vars");
  81. } else {
  82. $global_cfg['version'] = '?';
  83. }
  84. $new_install = FALSE;
  85. if(!isset($global_cfg['version'])) {
  86. $ver = "1.0.3";
  87. } elseif($global_cfg['version'] == '2.0') {
  88. $ver = "1.9.0";
  89. } elseif($global_cfg['version'] == '1.9.1') {
  90. $ver = "1.9.1";
  91. } elseif($global_cfg['version'] == '1.9.2') {
  92. $ver = "1.9.2";
  93. } elseif($global_cfg['version'] == '1.9.3') {
  94. $ver = "1.9.3";
  95. } elseif($global_cfg['version'] == '1.9.4') {
  96. $ver = "1.9.4";
  97. } elseif($global_cfg['version'] == '1.9.5') {
  98. $ver = "1.9.5";
  99. } elseif($global_cfg['version'] == '1.9.6') {
  100. $ver = "1.9.6";
  101. } elseif($global_cfg['version'] == '1.9.7') {
  102. $ver = "1.9.7";
  103. } elseif($global_cfg['version'] == '1.9.8') {
  104. $ver = "1.9.8";
  105. } elseif($global_cfg['version'] == '1.9.9') {
  106. $ver = "1.9.9";
  107. } elseif($global_cfg['version'] == '2.0.0') {
  108. $ver = "2.0.0";
  109. } elseif($global_cfg['version'] == '2.2.0') {
  110. $ver = "2.2.0";
  111. } elseif($global_cfg['version'] == '2.2.1') {
  112. $ver = "2.2.1";
  113. } elseif($global_cfg['version'] == '2.2.2') {
  114. $ver = "2.2.2";
  115. } else {
  116. $ver = "1000";
  117. $new_install = TRUE;
  118. }
  119. $ver = (float) $ver;
  120. if($new_install) {
  121. out('New Installation Detected!');
  122. } else {
  123. out('Version Identified as '. $ver);
  124. }
  125. if(($ver < "1.9.0") AND ($ver > 0)) {
  126. out("Please Wait While we upgrade your old setup");
  127. //Expand the value option
  128. $sql = 'ALTER TABLE `endpointman_global_vars` CHANGE `value` `value` VARCHAR(100) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL COMMENT \'Data\'';
  129. $db->query($sql);
  130. out("Locating NMAP + ARP + ASTERISK Executables");
  131. $nmap = find_exec("nmap");
  132. $arp = find_exec("arp");
  133. $asterisk = find_exec("asterisk");
  134. out("Updating Global Variables table");
  135. //Add new Vars into database
  136. $sql_update_vars = "INSERT INTO `endpointman_global_vars` (`idnum`, `var_name`, `value`) VALUES
  137. (5, 'config_location', '/tftpboot/'),
  138. (6, 'update_server', 'http://www.provisioner.net/release/'),
  139. (7, 'version', '2.0.0'),
  140. (8, 'enable_ari', '0'),
  141. (9, 'debug', '0'),
  142. (10, 'arp_location', '".$arp."'),
  143. (11, 'nmap_location', '".$nmap."'),
  144. (12, 'asterisk_location', '".$asterisk."'),
  145. (13, 'language', ''),
  146. (14, 'check_updates', '1'),
  147. (15, 'disable_htaccess', ''),
  148. (16, 'endpoint_vers', '0')";
  149. $db->query($sql_update_vars);
  150. out("Updating Mac List table");
  151. $sql = 'ALTER TABLE `endpointman_mac_list` DROP `map`';
  152. $db->query($sql);
  153. $sql = 'ALTER TABLE `endpointman_mac_list` ADD `custom_cfg_template` INT(11) NOT NULL AFTER `description`';
  154. $db->query($sql);
  155. $sql = 'ALTER TABLE `endpointman_mac_list` ADD `custom_cfg_data` TEXT NOT NULL AFTER `custom_cfg_template`';
  156. $db->query($sql);
  157. $sql = 'ALTER TABLE `endpointman_mac_list` ADD `user_cfg_data` TEXT NOT NULL AFTER `custom_cfg_data`';
  158. $db->query($sql);
  159. $sql = 'ALTER TABLE `endpointman_mac_list` ADD `config_files_override` TEXT NOT NULL AFTER `user_cfg_data`';
  160. $db->query($sql);
  161. out("Updating Brands table");
  162. $sql = 'DROP TABLE endpointman_brand_list';
  163. $db->query($sql);
  164. $sql = "CREATE TABLE IF NOT EXISTS `endpointman_brand_list` (
  165. `id` int(11) NOT NULL auto_increment,
  166. `name` varchar(255) NOT NULL,
  167. `directory` varchar(255) NOT NULL,
  168. `cfg_ver` varchar(255) NOT NULL,
  169. `installed` int(1) NOT NULL default '0',
  170. `hidden` int(1) NOT NULL default '0',
  171. PRIMARY KEY (`id`)
  172. ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=22";
  173. $db->query($sql);
  174. out("Updating Models table");
  175. $sql = 'DROP TABLE endpointman_model_list';
  176. $db->query($sql);
  177. $sql = "CREATE TABLE IF NOT EXISTS `endpointman_model_list` (
  178. `id` int(11) NOT NULL auto_increment COMMENT 'Key ',
  179. `brand` int(11) NOT NULL COMMENT 'Brand',
  180. `model` varchar(25) NOT NULL COMMENT 'Model',
  181. `product_id` int(11) NOT NULL,
  182. `enabled` int(1) NOT NULL default '0',
  183. `hidden` int(1) NOT NULL default '0',
  184. PRIMARY KEY (`id`)
  185. ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=48";
  186. $db->query($sql);
  187. out("Updating OUI table");
  188. $sql = 'DROP TABLE endpointman_oui_list';
  189. $db->query($sql);
  190. $sql = "CREATE TABLE IF NOT EXISTS `endpointman_oui_list` (
  191. `id` int(30) NOT NULL auto_increment,
  192. `oui` varchar(30) default NULL,
  193. `brand` int(11) default NULL,
  194. PRIMARY KEY (`id`)
  195. ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=57";
  196. $db->query($sql);
  197. out("Updating Products table");
  198. $sql = 'DROP TABLE IF EXISTS endpointman_product_list';
  199. $db->query($sql);
  200. $sql = "CREATE TABLE IF NOT EXISTS `endpointman_product_list` (
  201. `id` int(11) NOT NULL auto_increment,
  202. `brand` int(11) NOT NULL,
  203. `long_name` varchar(255) NOT NULL,
  204. `cfg_dir` varchar(255) NOT NULL,
  205. `cfg_ver` varchar(255) NOT NULL,
  206. `xml_data` varchar(255) NOT NULL,
  207. `cfg_data` text NOT NULL,
  208. `installed` int(1) NOT NULL default '0',
  209. `hidden` int(1) NOT NULL default '0',
  210. `firmware_vers` varchar(255) NOT NULL,
  211. `firmware_files` text NOT NULL,
  212. `config_files` text,
  213. PRIMARY KEY (`id`)
  214. ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=8";
  215. $db->query($sql);
  216. out("Updating templates table");
  217. $sql = 'DROP TABLE IF EXISTS endpointman_template_list';
  218. $db->query($sql);
  219. $sql = "CREATE TABLE IF NOT EXISTS `endpointman_template_list` (
  220. `id` int(11) NOT NULL auto_increment,
  221. `product_id` int(11) NOT NULL,
  222. `name` varchar(255) NOT NULL,
  223. `custom_cfg_data` text,
  224. `config_files_override` text,
  225. PRIMARY KEY (`id`)
  226. ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=8";
  227. $db->query($sql);
  228. $sql = "CREATE TABLE IF NOT EXISTS `endpointman_custom_configs` (
  229. `id` int(11) NOT NULL auto_increment,
  230. `name` varchar(255) NOT NULL,
  231. `original_name` varchar(255) NOT NULL,
  232. `product_id` int(11) NOT NULL,
  233. `data` longtext NOT NULL,
  234. PRIMARY KEY (`id`)
  235. ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=11";
  236. $db->query($sql);
  237. $old_models = array(
  238. "57iCT" => array("brand" => 1, "model" => 2, "product" => 7),
  239. "57i" => array("brand" => 1, "model" => 3, "product" => 7),
  240. "330" => array("brand" => 4, "model" => 6, "product" => 4),
  241. "560" => array("brand" => 4, "model" => 7, "product" => 4),
  242. "300" => array("brand" => 6, "model" => 8, "product" => 8),
  243. "320" => array("brand" => 6, "model" => 9, "product" => 8),
  244. "360" => array("brand" => 6, "model" => 10, "product" => 8),
  245. "370" => array("brand" => 6, "model" => 11, "product" => 8),
  246. "820" => array("brand" => 6, "model" => 12, "product" => 8),
  247. "M3" => array("brand" => 6, "model" => 13, "product" => 8),
  248. "GXP-2000" => array("brand" => 2, "model" => 15, "product" => 1),
  249. "BT200_201" => array("brand" => 2, "model" => 27, "product" => 2),
  250. "spa941" => array("brand" => 0, "model" => 0, "product" => 0),
  251. "spa942" => array("brand" => 0, "model" => 0, "product" => 0),
  252. "spa962" => array("brand" => 0, "model" => 0, "product" => 0),
  253. "55i" => array("brand" => 1, "model" => 4, "product" => 7)
  254. );
  255. out("Migrating Old Devices");
  256. $sql = "SELECT * FROM endpointman_mac_list";
  257. $result = $db->query($sql);
  258. while($row =& $result->fetchRow(DB_FETCHMODE_ASSOC)) {
  259. $id = $row['model'];
  260. $new_model = $old_models[$id]['model'];
  261. $sql = "UPDATE endpointman_mac_list SET model = ".$new_model." WHERE id =" . $row['id'];
  262. $db->query($sql);
  263. }
  264. out("Old Devices Migrated, You must install the phone modules from within endpointmanager to see your old devices!");
  265. $sql = 'ALTER TABLE endpointman_mac_list CHANGE model model INT NOT NULL';
  266. $db->query($sql);
  267. $sql = "ALTER TABLE endpointman_mac_list CHANGE custom_cfg_data custom_cfg_data TEXT CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL";
  268. $db->query($sql);
  269. out("DONE! You can now use endpoint manager!");
  270. }
  271. if ($ver <= "1.9.0") {
  272. out("Locating NMAP + ARP + ASTERISK Executables");
  273. $nmap = find_exec("nmap");
  274. $arp = find_exec("arp");
  275. $asterisk = find_exec("asterisk");
  276. out("Updating Global Variables table");
  277. //Add new Vars into database
  278. $sql_update_vars = "INSERT INTO `endpointman_global_vars` (`idnum`, `var_name`, `value`) VALUES (8, 'enable_ari', '0')";
  279. $db->query($sql_update_vars);
  280. $sql_update_vars = "INSERT INTO `endpointman_global_vars` (`idnum`, `var_name`, `value`) VALUES (9, 'debug', '0')";
  281. $db->query($sql_update_vars);
  282. $sql_update_vars = "INSERT INTO `endpointman_global_vars` (`idnum`, `var_name`, `value`) VALUES (10, 'arp_location', '".$arp."')";
  283. $db->query($sql_update_vars);
  284. $sql_update_vars = "INSERT INTO `endpointman_global_vars` (`idnum`, `var_name`, `value`) VALUES (11, 'nmap_location', '".$nmap."')";
  285. $db->query($sql_update_vars);
  286. $sql_update_vars = "INSERT INTO `endpointman_global_vars` (`idnum`, `var_name`, `value`) VALUES (12, 'asterisk_location', '".$asterisk."')";
  287. $db->query($sql_update_vars);
  288. out("Updating Mac List Table");
  289. $sql = 'ALTER TABLE `endpointman_mac_list` ADD `user_cfg_data` TEXT NOT NULL AFTER `custom_cfg_data`';
  290. $db->query($sql);
  291. $sql = 'ALTER TABLE `endpointman_mac_list` ADD `config_files_override` TEXT NOT NULL AFTER `user_cfg_data`';
  292. $db->query($sql);
  293. out("Updating OUI Table");
  294. $sql = 'ALTER TABLE `endpointman_oui_list` DROP model';
  295. $db->query($sql);
  296. $sql = 'ALTER TABLE `endpointman_oui_list` CHANGE `brand` `brand` INT( 11 ) NULL DEFAULT NULL';
  297. $db->query($sql);
  298. out("Updating Product List");
  299. $sql = 'ALTER TABLE `endpointman_product_list` ADD `firmware_vers` TEXT NULL AFTER `hidden`';
  300. $db->query($sql);
  301. $sql = 'ALTER TABLE `endpointman_product_list` ADD `firmware_files` VARCHAR( 255 ) NOT NULL AFTER `firmware_vers`';
  302. $db->query($sql);
  303. $sql = 'ALTER TABLE `endpointman_product_list` ADD `config_files_override` TEXT NULL AFTER `firmware_files`';
  304. $db->query($sql);
  305. out("Updating Template List");
  306. $sql = 'ALTER TABLE `endpointman_template_list` ADD `config_files_override` TEXT NULL AFTER `custom_cfg_data`';
  307. out("Updating Version Number");
  308. $sql = "UPDATE endpointman_global_vars SET value = '2.0.0' WHERE var_name = 'version'";
  309. out("Creating Custom Configs Table");
  310. $sql = "CREATE TABLE IF NOT EXISTS `endpointman_custom_configs` (
  311. `id` int(11) NOT NULL auto_increment,
  312. `name` varchar(255) NOT NULL,
  313. `original_name` varchar(255) NOT NULL,
  314. `product_id` int(11) NOT NULL,
  315. `data` longtext NOT NULL,
  316. PRIMARY KEY (`id`)
  317. ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=11";
  318. $db->query($sql);
  319. out('Alter custom_cfg_data');
  320. $sql = "ALTER TABLE endpointman_mac_list CHANGE custom_cfg_data custom_cfg_data TEXT CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL";
  321. $db->query($sql);
  322. }
  323. if ($ver <= "1.9.1") {
  324. out("Create Custom Configs Table");
  325. $sql = "CREATE TABLE IF NOT EXISTS `endpointman_custom_configs` (
  326. `id` int(11) NOT NULL auto_increment,
  327. `name` varchar(255) NOT NULL,
  328. `original_name` varchar(255) NOT NULL,
  329. `product_id` int(11) NOT NULL,
  330. `data` longtext NOT NULL,
  331. PRIMARY KEY (`id`)
  332. ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=11";
  333. $db->query($sql);
  334. out("Locating NMAP + ARP + ASTERISK Executables");
  335. $nmap = find_exec("nmap");
  336. $arp = find_exec("arp");
  337. $asterisk = find_exec("asterisk");
  338. out('Updating Global Variables');
  339. $sql_update_vars = "INSERT INTO `endpointman_global_vars` (`idnum`, `var_name`, `value`) VALUES (8, 'enable_ari', '0')";
  340. $db->query($sql_update_vars);
  341. $sql_update_vars = "INSERT INTO `endpointman_global_vars` (`idnum`, `var_name`, `value`) VALUES (9, 'debug', '0')";
  342. $db->query($sql_update_vars);
  343. $sql_update_vars = "INSERT INTO `endpointman_global_vars` (`idnum`, `var_name`, `value`) VALUES (10, 'arp_location', '".$arp."')";
  344. $db->query($sql_update_vars);
  345. $sql_update_vars = "INSERT INTO `endpointman_global_vars` (`idnum`, `var_name`, `value`) VALUES (11, 'nmap_location', '".$nmap."')";
  346. $db->query($sql_update_vars);
  347. $sql_update_vars = "INSERT INTO `endpointman_global_vars` (`idnum`, `var_name`, `value`) VALUES (12, 'asterisk_location', '".$asterisk."')";
  348. $db->query($sql_update_vars);
  349. out("Update Mac List Table");
  350. $sql = 'ALTER TABLE `endpointman_mac_list` ADD `config_files_override` TEXT NOT NULL AFTER `user_cfg_data`';
  351. $db->query($sql);
  352. out("Update Product List Table");
  353. $sql = 'ALTER TABLE `endpointman_product_list` ADD `config_files` TEXT NOT NULL AFTER `firmware_files`';
  354. $db->query($sql);
  355. out("Update Template List Table");
  356. $sql = 'ALTER TABLE `endpointman_template_list` ADD `config_files_override` TEXT NOT NULL AFTER `custom_cfg_data`';
  357. $db->query($sql);
  358. out("Update Version Number");
  359. $sql = 'UPDATE endpointman_global_vars SET value = \'2.0.0\' WHERE var_name = "version"';
  360. $db->query($sql);
  361. out('Alter custom_cfg_data');
  362. $sql = "ALTER TABLE endpointman_mac_list CHANGE custom_cfg_data custom_cfg_data TEXT CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL";
  363. $db->query($sql);
  364. }
  365. if ($ver <= "1.9.2") {
  366. out('Updating Global Variables');
  367. }
  368. if ($ver <= "1.9.9") {
  369. out("Adding Custom Field to OUI List");
  370. $sql = 'ALTER TABLE `endpointman_oui_list` ADD `custom` INT(1) NOT NULL DEFAULT \'0\'';
  371. $db->query($sql);
  372. out("Increase value Size in global Variables Table");
  373. $sql = 'ALTER TABLE `endpointman_global_vars` CHANGE `value` `value` TEXT CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL COMMENT \'Data\'';
  374. $db->query($sql);
  375. out("Update global variables to include future language support");
  376. $sql = 'INSERT INTO `asterisk`.`endpointman_global_vars` (`idnum`, `var_name`, `value`) VALUES (\'13\', \'temp_amp\', \'\');';
  377. $db->query($sql);
  378. $sql = "UPDATE endpointman_global_vars SET var_name = 'language' WHERE var_name = 'temp_amp'";
  379. $db->query($sql);
  380. out("Changing all 'LONG TEXT' or 'TEXT' to 'BLOB'");
  381. $sql = 'ALTER TABLE `endpointman_product_list` CHANGE `cfg_data` `cfg_data` BLOB NOT NULL';
  382. $db->query($sql);
  383. $sql = 'ALTER TABLE `endpointman_template_list` CHANGE `custom_cfg_data` `custom_cfg_data` BLOB NULL DEFAULT NULL';
  384. $db->query($sql);
  385. $sql = 'ALTER TABLE `endpointman_mac_list` CHANGE `custom_cfg_data` `custom_cfg_data` BLOB NOT NULL, CHANGE `user_cfg_data` `user_cfg_data` BLOB NOT NULL';
  386. $db->query($sql);
  387. $sql = 'ALTER TABLE `endpointman_custom_configs` CHANGE `data` `data` BLOB NOT NULL';
  388. $db->query($sql);
  389. $sql = 'ALTER TABLE `endpointman_product_list` ADD `special_cfgs` BLOB NOT NULL;';
  390. $db->query($sql);
  391. out("Inserting Check for Updates Command");
  392. $sql = 'INSERT INTO `asterisk`.`endpointman_global_vars` (`idnum`, `var_name`, `value`) VALUES (\'14\', \'check_updates\', \'1\');';
  393. $db->query($sql);
  394. out("Inserting Disable .htaccess command");
  395. $sql = 'INSERT INTO `asterisk`.`endpointman_global_vars` (`idnum`, `var_name`, `value`) VALUES (\'15\', \'disable_htaccess\', \'0\');';
  396. $db->query($sql);
  397. out("Add Automatic Update Check [Can be Disabled]");
  398. $sql = "INSERT INTO cronmanager (module, id, time, freq, lasttime, command) VALUES ('endpointman', 'UPDATES', '23', '24', '0', 'php ".LOCAL_PATH. "includes/update_check.php')";
  399. $db->query($sql);
  400. }
  401. if($ver <= "2.0.0") {
  402. if(file_exists($amp_conf['AMPWEBROOT']."/recordings")) {
  403. out("Installing ARI Module");
  404. copy(LOCAL_PATH. "Install/phonesettings.module", $amp_conf['AMPWEBROOT']."/recordings/modules/phonesettings.module");
  405. copy(LOCAL_PATH. "templates/javascript/jquery.coda-slider-2.0.js", $amp_conf['AMPWEBROOT']."/recordings/theme/js/jquery.coda-slider-2.0.js");
  406. copy(LOCAL_PATH. "templates/javascript/jquery.easing.1.3.js", $amp_conf['AMPWEBROOT']."/recordings/theme/js/jquery.easing.1.3.js");
  407. copy(LOCAL_PATH. "templates/stylesheets/coda-slider-2.0a.css", $amp_conf['AMPWEBROOT']."/recordings/theme/coda-slider-2.0a.css");
  408. out("Fixing permissions on ARI module");
  409. chmod($amp_conf['AMPWEBROOT']."/recordings/modules/phonesettings.module", 0664);
  410. }
  411. out("Locating NMAP + ARP + ASTERISK Executables");
  412. $nmap = find_exec("nmap");
  413. $arp = find_exec("arp");
  414. $asterisk = find_exec("asterisk");
  415. $sql_update_vars = "INSERT INTO `endpointman_global_vars` (`idnum`, `var_name`, `value`) VALUES (11, 'nmap_location', '".$asterisk."')";
  416. $db->query($sql_update_vars);
  417. $sql_update_vars = "INSERT INTO `endpointman_global_vars` (`idnum`, `var_name`, `value`) VALUES (11, 'nmap_location', '".$nmap."')";
  418. $db->query($sql_update_vars);
  419. $sql_update_vars = "INSERT INTO `endpointman_global_vars` (`idnum`, `var_name`, `value`) VALUES (12, 'asterisk_location', '".$asterisk."')";
  420. $db->query($sql_update_vars);
  421. out("Add Unique to Global Variables Table");
  422. $sql = 'ALTER TABLE `endpointman_global_vars` ADD UNIQUE(`var_name`)';
  423. $db->query($sql);
  424. $sql = 'ALTER TABLE `endpointman_custom_configs` CHANGE `product_id` `product_id` VARCHAR(11) NOT NULL';
  425. $db->query($sql);
  426. $sql = 'ALTER TABLE `endpointman_mac_list` CHANGE `model` `model` VARCHAR(11) NOT NULL';
  427. $db->query($sql);
  428. $sql = 'ALTER TABLE `endpointman_model_list` ADD `template_list` TEXT NOT NULL AFTER `model`, ADD `template_data` BLOB NOT NULL AFTER `template_list`';
  429. $db->query($sql);
  430. $sql = 'ALTER TABLE `endpointman_model_list` CHANGE `product_id` `product_id` VARCHAR(11) NOT NULL';
  431. $db->query($sql);
  432. $sql = 'ALTER TABLE `endpointman_model_list` CHANGE `id` `id` VARCHAR(11) NOT NULL COMMENT \'Key \'';
  433. $db->query($sql);
  434. $sql = 'ALTER TABLE `endpointman_product_list` CHANGE `id` `id` VARCHAR(11) NOT NULL';
  435. $db->query($sql);
  436. $sql = 'ALTER TABLE `endpointman_product_list` ADD `short_name` VARCHAR(255) NOT NULL AFTER `long_name`';
  437. $db->query($sql);
  438. $sql = 'ALTER TABLE `endpointman_product_list` DROP `installed`';
  439. $db->query($sql);
  440. $sql = 'ALTER TABLE `endpointman_product_list` DROP `xml_data`';
  441. $db->query($sql);
  442. $sql = 'ALTER TABLE `endpointman_template_list` ADD `model_id` VARCHAR(10) NOT NULL AFTER `product_id`';
  443. $db->query($sql);
  444. $sql = 'ALTER TABLE `endpointman_template_list` CHANGE `product_id` `product_id` VARCHAR(11) NOT NULL';
  445. $db->query($sql);
  446. $sql = "UPDATE endpointman_brand_list SET cfg_ver = '0', installed = '0' WHERE installed = '1'";
  447. $db->query($sql);
  448. $sql = "TRUNCATE TABLE `endpointman_product_list`";
  449. $db->query($sql);
  450. $sql = "TRUNCATE TABLE `endpointman_oui_list`";
  451. $db->query($sql);
  452. $sql = "TRUNCATE TABLE `endpointman_brand_list`";
  453. $db->query($sql);
  454. $sql = "TRUNCATE TABLE `endpointman_model_list`";
  455. $db->query($sql);
  456. $data =& $db->getAll("SELECT * FROM `endpointman_mac_list",array(), DB_FETCHMODE_ASSOC);
  457. $new_model_list = array(
  458. "2" => "1-2-11",
  459. "3" => "1-2-10",
  460. "4" => "1-2-9",
  461. "6" => "",
  462. "7" => "",
  463. "8" => "6-1-1",
  464. "9" => "6-1-2",
  465. "10" => "6-1-3",
  466. "11" => "6-1-4",
  467. "12" => "6-1-5",
  468. "13" => "6-1-6",
  469. "15" => "2-1-3",
  470. "22" => "",
  471. "23" => "2-1-2",
  472. "24" => "2-1-1",
  473. "25" => "2-1-4",
  474. "26" => "2-1-5",
  475. "27" => "2-2-1",
  476. "28" => "2-2-2",
  477. "29" => "",
  478. "30" => "",
  479. "31" => "",
  480. "32" => "",
  481. "33" => "",
  482. "34" => "4-3-1",
  483. "35" => "4-3-2",
  484. "36" => "4-3-3",
  485. "37" => "4-3-4",
  486. "38" => "4-3-5",
  487. "39" => "4-3-6",
  488. "40" => "4-3-8",
  489. "41" => "4-3-9",
  490. "42" => "4-3-10",
  491. "43" => "4-3-11",
  492. "44" => "4-3-12",
  493. "45" => "",
  494. "46" => "",
  495. "47" => "1-2-1",
  496. "48" => "1-2-2",
  497. "49" => "1-1-1",
  498. "50" => "1-1-2",
  499. "51" => "1-2-3",
  500. "52" => "1-2-4",
  501. "53" => "1-2-5",
  502. "54" => "1-2-6",
  503. "55" => "1-2-7",
  504. "56" => "1-2-8",
  505. "57" => "",
  506. "58" => "",
  507. "59" => "",
  508. "60" => "7-1-1",
  509. "61" => "7-1-2",
  510. "62" => "8-1-1",
  511. "63" => "8-1-2",
  512. "64" => "8-1-3",
  513. "65" => "8-1-4",
  514. "67" => "7-2-1",
  515. "68" => "7-2-2",
  516. "69" => "7-2-3",
  517. "70" => "7-2-4",
  518. "71" => "7-2-5",
  519. "72" => "7-2-6"
  520. );
  521. foreach($data as $list) {
  522. $sql = "UPDATE endpointman_mac_list SET model = '".$new_model_list[$list['id']]."' WHERE id = ". $list['id'];
  523. $db->query($sql);
  524. }
  525. $new_product_list = array(
  526. "6" => array("product_id" => "1-1", "model_id" => "1-1-1"),
  527. "7" => array("product_id" => "1-2", "model_id" => "1-2-1"),
  528. "1" => array("product_id" => "2-1", "model_id" => "2-1-1"),
  529. "2" => array("product_id" => "2-2", "model_id" => "2-2-1"),
  530. "3" => array("product_id" => "", "model_id" => ""),
  531. "5" => array("product_id" => "", "model_id" => ""),
  532. "4" => array("product_id" => "4-3", "model_id" => "4-3-1"),
  533. "8" => array("product_id" => "6-1", "model_id" => "6-1-1"),
  534. "9" => array("product_id" => "7-1", "model_id" => "7-1-1"),
  535. "11" => array("product_id" => "7-2", "model_id" => "7-2-1"),
  536. "10" => array("product_id" => "8-1", "model_id" => "8-1-1")
  537. );
  538. $data = array();
  539. $data =& $db->getAll("SELECT * FROM endpointman_custom_configs",array(), DB_FETCHMODE_ASSOC);
  540. foreach($data as $list) {
  541. $sql = "UPDATE endpointman_custom_configs SET product_id = '".$new_product_list[$list['product_id']]['product_id']."' WHERE id = ". $list['id'];
  542. $db->query($sql);
  543. }
  544. $data = array();
  545. $data =& $db->getAll("SELECT * FROM endpointman_template_list",array(), DB_FETCHMODE_ASSOC);
  546. foreach($data as $list) {
  547. $sql = "UPDATE endpointman_template_list SET model_id = '".$new_product_list[$list['model_id']]['model_id']."', product_id = '".$new_product_list[$list['product_id']]['product_id']."' WHERE id = ". $list['id'];
  548. $db->query($sql);
  549. }
  550. $data = array();
  551. $data =& $db->getAll("SELECT * FROM endpointman_custom_configs",array(), DB_FETCHMODE_ASSOC);
  552. $variable_change = array(
  553. "{\$srvip}" => "{\$server.ip.1}",
  554. "{\$ext}" => "{\$ext.line.1}",
  555. "{\$pass}" => "{\$pass.line.1}",
  556. "{\$secret}" => "{\$pass.line.1}",
  557. "{\$displayname}" => "{\$displayname.line.1}"
  558. );
  559. foreach($data as $list) {
  560. foreach($variable_change as $key => $value) {
  561. $list['data'] = str_replace($key, $value, $list['data']);
  562. }
  563. $sql = "UPDATE endpointman_custom_configs SET data = '".addslashes($list['data'])."' WHERE id = ". $list['id'];
  564. $db->query($sql);
  565. }
  566. exec("rm -Rf ".PHONE_MODULES_PATH);
  567. if(!file_exists(PHONE_MODULES_PATH)) {
  568. mkdir(PHONE_MODULES_PATH, 0764);
  569. out("Creating Phone Modules Directory");
  570. }
  571. if(!file_exists(PHONE_MODULES_PATH."setup.php")) {
  572. copy(LOCAL_PATH."Install/setup.php",PHONE_MODULES_PATH."setup.php");
  573. out("Moving Auto Provisioner Class");
  574. }
  575. if(!file_exists(PHONE_MODULES_PATH."temp/")) {
  576. mkdir(PHONE_MODULES_PATH."temp/", 0764);
  577. out("Creating temp folder");
  578. }
  579. }
  580. if ($ver <= "2.2.1") {
  581. }
  582. if ($ver <= "2.2.2") {
  583. out("Remove all Dashes in IDs");
  584. $data = array();
  585. $data =& $db->getAll("SELECT * FROM `endpointman_model_list",array(), DB_FETCHMODE_ASSOC);
  586. foreach($data as $list) {
  587. $new_model_id = str_replace("-", "", $list['id']);
  588. $sql = "UPDATE endpointman_model_list SET id = '".$new_model_id."' WHERE id = ". $list['id'];
  589. $db->query($sql);
  590. }
  591. $data = array();
  592. $data =& $db->getAll("SELECT * FROM `endpointman_product_list",array(), DB_FETCHMODE_ASSOC);
  593. foreach($data as $list) {
  594. $new_product_id = str_replace("-", "", $list['id']);
  595. $sql = "UPDATE endpointman_product_list SET id = '".$new_product_id."' WHERE id = ". $list['id'];
  596. $db->query($sql);
  597. }
  598. $data = array();
  599. $data =& $db->getAll("SELECT * FROM `endpointman_mac_list",array(), DB_FETCHMODE_ASSOC);
  600. foreach($data as $list) {
  601. $new_model_id = str_replace("-", "", $list['model']);
  602. $sql = "UPDATE endpointman_mac_list SET model = '".$new_model_id."' WHERE id = ". $list['id'];
  603. $db->query($sql);
  604. }
  605. $data = array();
  606. $data =& $db->getAll("SELECT * FROM endpointman_template_list",array(), DB_FETCHMODE_ASSOC);
  607. foreach($data as $list) {
  608. $new_model_id = str_replace("-", "", $list['model_id']);
  609. $new_product_id = str_replace("-", "", $list['product_id']);
  610. $sql = "UPDATE endpointman_template_list SET model_id = '".$new_model_id."', product_id = '".$new_product_id."' WHERE id = ". $list['id'];
  611. $db->query($sql);
  612. }
  613. $data = array();
  614. $data =& $db->getAll("SELECT * FROM endpointman_custom_configs",array(), DB_FETCHMODE_ASSOC);
  615. foreach($data as $list) {
  616. $new_product_id = str_replace("-", "", $list['product_id']);
  617. $sql = "UPDATE endpointman_custom_configs SET product_id = '".$new_product_id."' WHERE id = ". $list['id'];
  618. $db->query($sql);
  619. }
  620. }
  621. if ($new_install) {
  622. out("Creating Brand List Table");
  623. $sql = "CREATE TABLE IF NOT EXISTS `endpointman_brand_list` (
  624. `id` varchar(11) NOT NULL,
  625. `name` varchar(255) NOT NULL,
  626. `directory` varchar(255) NOT NULL,
  627. `cfg_ver` varchar(255) NOT NULL,
  628. `installed` int(1) NOT NULL DEFAULT '0',
  629. `hidden` int(1) NOT NULL DEFAULT '0',
  630. PRIMARY KEY (`id`)
  631. ) ENGINE=MyISAM DEFAULT CHARSET=latin1";
  632. $db->query($sql);
  633. out("Creating Global Variables Table");
  634. $sql = "CREATE TABLE IF NOT EXISTS `endpointman_global_vars` (
  635. `idnum` int(11) NOT NULL AUTO_INCREMENT COMMENT 'Index',
  636. `var_name` varchar(25) NOT NULL COMMENT 'Variable Name',
  637. `value` text NOT NULL COMMENT 'Data',
  638. PRIMARY KEY (`idnum`)
  639. ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=17";
  640. $db->query($sql);
  641. out("Locating NMAP + ARP + ASTERISK Executables");
  642. $nmap = find_exec("nmap");
  643. $arp = find_exec("arp");
  644. $asterisk = find_exec("asterisk");
  645. out("Inserting data into the global vars Table");
  646. $sql = "INSERT INTO `endpointman_global_vars` (`idnum`, `var_name`, `value`) VALUES
  647. (1, 'srvip', ''),
  648. (2, 'tz', ''),
  649. (3, 'gmtoff', ''),
  650. (4, 'gmthr', ''),
  651. (5, 'config_location', '/tftpboot/'),
  652. (6, 'update_server', 'http://www.provisioner.net/release/'),
  653. (7, 'version', '".$version."'),
  654. (8, 'enable_ari', '1'),
  655. (9, 'debug', '1'),
  656. (10, 'arp_location', '".$arp."'),
  657. (11, 'nmap_location', '".$nmap."'),
  658. (12, 'asterisk_location', '".$asterisk."'),
  659. (13, 'language', ''),
  660. (14, 'check_updates', '1'),
  661. (15, 'disable_htaccess', ''),
  662. (16, 'endpoint_vers', '0')";
  663. $db->query($sql);
  664. out("Creating mac list Table");
  665. $sql = "CREATE TABLE IF NOT EXISTS `endpointman_mac_list` (
  666. `id` int(10) NOT NULL AUTO_INCREMENT,
  667. `mac` varchar(12) DEFAULT NULL,
  668. `model` varchar(11) NOT NULL,
  669. `ext` varchar(15) DEFAULT 'Not Assigned',
  670. `description` varchar(20) DEFAULT NULL,
  671. `custom_cfg_template` int(11) NOT NULL,
  672. `custom_cfg_data` blob NOT NULL,
  673. `user_cfg_data` blob NOT NULL,
  674. `config_files_override` text NOT NULL,
  675. PRIMARY KEY (`id`),
  676. UNIQUE KEY `mac` (`mac`)
  677. ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1";
  678. $db->query($sql);
  679. out("Creating model List Table");
  680. $sql = "CREATE TABLE IF NOT EXISTS `endpointman_model_list` (
  681. `id` varchar(11) NOT NULL COMMENT 'Key ',
  682. `brand` int(11) NOT NULL COMMENT 'Brand',
  683. `model` varchar(25) NOT NULL COMMENT 'Model',
  684. `template_list` text NOT NULL,
  685. `template_data` blob NOT NULL,
  686. `product_id` varchar(11) NOT NULL,
  687. `enabled` int(1) NOT NULL DEFAULT '0',
  688. `hidden` int(1) NOT NULL DEFAULT '0',
  689. PRIMARY KEY (`id`)
  690. ) ENGINE=MyISAM DEFAULT CHARSET=latin1";
  691. $db->query($sql);
  692. out("Creating oui List Table");
  693. $sql = "CREATE TABLE IF NOT EXISTS `endpointman_oui_list` (
  694. `id` int(30) NOT NULL AUTO_INCREMENT,
  695. `oui` varchar(30) DEFAULT NULL,
  696. `brand` int(11) NOT NULL,
  697. `custom` int(1) NOT NULL DEFAULT '0',
  698. PRIMARY KEY (`id`),
  699. UNIQUE KEY `oui` (`oui`)
  700. ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1";
  701. $db->query($sql);
  702. out("Creating product List Table");
  703. $sql = "CREATE TABLE IF NOT EXISTS `endpointman_product_list` (
  704. `id` varchar(11) NOT NULL,
  705. `brand` int(11) NOT NULL,
  706. `long_name` varchar(255) NOT NULL,
  707. `short_name` varchar(255) NOT NULL,
  708. `cfg_dir` varchar(255) NOT NULL,
  709. `cfg_ver` varchar(255) NOT NULL,
  710. `hidden` int(1) NOT NULL DEFAULT '0',
  711. `firmware_vers` varchar(255) NOT NULL,
  712. `firmware_files` text NOT NULL,
  713. `config_files` text,
  714. `special_cfgs` blob NOT NULL,
  715. PRIMARY KEY (`id`)
  716. ) ENGINE=MyISAM DEFAULT CHARSET=latin1;";
  717. $db->query($sql);
  718. out("Creating Template List Table");
  719. $sql = "CREATE TABLE IF NOT EXISTS `endpointman_template_list` (
  720. `id` int(11) NOT NULL AUTO_INCREMENT,
  721. `product_id` varchar(11) NOT NULL,
  722. `model_id` varchar(10) NOT NULL,
  723. `name` varchar(255) NOT NULL,
  724. `custom_cfg_data` blob,
  725. `config_files_override` text,
  726. PRIMARY KEY (`id`)
  727. ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1";
  728. $db->query($sql);
  729. out("Creating Time Zone List Table");
  730. $sql = "CREATE TABLE IF NOT EXISTS `endpointman_time_zones` (
  731. `idnum` int(11) NOT NULL auto_increment COMMENT 'Record Number',
  732. `tz` varchar(10) NOT NULL COMMENT 'Time Zone',
  733. `gmtoff` varchar(10) NOT NULL COMMENT 'Offset in Seconds',
  734. `gmthr` varchar(10) NOT NULL,
  735. PRIMARY KEY (`idnum`)
  736. ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=116";
  737. $db->query($sql);
  738. out("Inserting Data into table Table");
  739. $sql = "INSERT INTO `endpointman_time_zones` (`idnum`, `tz`, `gmtoff`, `gmthr`) VALUES
  740. (1, 'USA-10', '-36000', 'GMT-10:00'),
  741. (2, 'USA-9', '-32400', 'GMT-09:00'),
  742. (3, 'CAN-8', '-28800', 'GMT-08:00'),
  743. (4, 'MEX-8', '-28800', 'GMT-08:00'),
  744. (5, 'USA-8', '-28800', 'GMT-08:00'),
  745. (6, 'CAN-7', '-25200', 'GMT-07:00'),
  746. (7, 'MEX-7', '-25200', 'GMT-07:00'),
  747. (8, 'USA2-7', '-25200', 'GMT-07:00'),
  748. (9, 'USA-7', '-25200', 'GMT-07:00'),
  749. (10, 'CAN-6', '-21600', 'GMT-06:00'),
  750. (11, 'CHL-6', '-21600', 'GMT-06:00'),
  751. (12, 'MEX-6', '-21600', 'GMT-06:00'),
  752. (13, 'USA-6', '-21600', 'GMT-06:00'),
  753. (14, 'BHS-5', '-18000', 'GMT-05:00'),
  754. (15, 'CAN-5', '-18000', 'GMT-05:00'),
  755. (16, 'CUB-5', '-18000', 'GMT-05:00'),
  756. (17, 'USA-5', '-18000', 'GMT-05:00'),
  757. (18, 'VEN-4.5', '-16200', 'GMT-04:00'),
  758. (19, 'CAN-4', '-14400', 'GMT-04:00'),
  759. (20, 'CHL-4', '-14400', 'GMT-04:00'),
  760. (21, 'PRY-4', '-14400', 'GMT-04:00'),
  761. (22, 'BMU-4', '-14400', 'GMT-04:00'),
  762. (23, 'FLK-4', '-14400', 'GMT-04:00'),
  763. (24, 'TTB-4', '-14400', 'GMT-04:00'),
  764. (25, 'CAN-3.5', '-12600', 'GMT-03:30'),
  765. (26, 'GRL-3', '-10800', 'GMT-03:00'),
  766. (27, 'ARG-3', '-10800', 'GMT-03:00'),
  767. (28, 'BRA2-3', '-10800', 'GMT-03:00'),
  768. (29, 'BRA1-3', '-10800', 'GMT-03:00'),
  769. (30, 'BRA-2', '-7200', 'GMT-02:00'),
  770. (31, 'PRT-1', '-3600', 'GMT-01:00'),
  771. (32, 'FRO-0', '0', 'GMT'),
  772. (33, 'IRL-0', '0', 'GMT'),
  773. (34, 'PRT-0', '0', 'GMT'),
  774. (35, 'ESP-0', '0', 'GMT'),
  775. (36, 'GBR-0', '0', 'GMT'),
  776. (37, 'ALB+1', '3600', 'GMT+01:00'),
  777. (38, 'AUT+1', '3600', 'GMT+01:00'),
  778. (39, 'BEL+1', '3600', 'GMT+01:00'),
  779. (40, 'CAI+1', '3600', 'GMT+01:00'),
  780. (41, 'CHA+1', '3600', 'GMT+01:00'),
  781. (42, 'HRV+1', '3600', 'GMT+01:00'),
  782. (43, 'CZE+1', '3600', 'GMT+01:00'),
  783. (44, 'DNK+1', '3600', 'GMT+01:00'),
  784. (45, 'FRA+1', '3600', 'GMT+01:00'),
  785. (46, 'GER+1', '3600', 'GMT+01:00'),
  786. (47, 'HUN+1', '3600', 'GMT+01:00'),
  787. (48, 'ITA+1', '3600', 'GMT+01:00'),
  788. (49, 'LUX+1', '3600', 'GMT+01:00'),
  789. (50, 'MAK+1', '3600', 'GMT+01:00'),
  790. (51, 'NLD+1', '3600', 'GMT+01:00'),
  791. (52, 'NAM+1', '3600', 'GMT+01:00'),
  792. (53, 'NOR+1', '3600', 'GMT+01:00'),
  793. (54, 'POL+1', '3600', 'GMT+01:00'),
  794. (55, 'SVK+1', '3600', 'GMT+01:00'),
  795. (56, 'ESP+1', '3600', 'GMT+01:00'),
  796. (57, 'SWE+1', '3600', 'GMT+01:00'),
  797. (58, 'CHE+1', '3600', 'GMT+01:00'),
  798. (59, 'GIB+1', '3600', 'GMT+01:00'),
  799. (60, 'YUG+1', '3600', 'GMT+01:00'),
  800. (61, 'WAT+1', '3600', 'GMT+01:00'),
  801. (62, 'BLR+2', '7200', 'GMT+02:00'),
  802. (63, 'BGR+2', '7200', 'GMT+02:00'),
  803. (64, 'CYP+2', '7200', 'GMT+02:00'),
  804. (65, 'CAT+2', '7200', 'GMT+02:00'),
  805. (66, 'EGY+2', '7200', 'GMT+02:00'),
  806. (67, 'EST+2', '7200', 'GMT+02:00'),
  807. (68, 'FIN+2', '7200', 'GMT+02:00'),
  808. (69, 'GAZ+2', '7200', 'GMT+02:00'),
  809. (70, 'GRC+2', '7200', 'GMT+02:00'),
  810. (71, 'ISR+2', '7200', 'GMT+02:00'),
  811. (72, 'JOR+2', '7200', 'GMT+02:00'),
  812. (73, 'LVA+2', '7200', 'GMT+02:00'),
  813. (74, 'LBN+2', '7200', 'GMT+02:00'),
  814. (75, 'MDA+2', '7200', 'GMT+02:00'),
  815. (76, 'RUS+2', '7200', 'GMT+02:00'),
  816. (77, 'ROU+2', '7200', 'GMT+02:00'),
  817. (78, 'SYR+2', '7200', 'GMT+02:00'),
  818. (79, 'TUR+2', '7200', 'GMT+02:00'),
  819. (80, 'UKR+2', '7200', 'GMT+02:00'),
  820. (81, 'EAT+3', '10800', 'GMT+03:00'),
  821. (82, 'IRQ+3', '10800', 'GMT+03:00'),
  822. (83, 'RUS+3', '10800', 'GMT+03:00'),
  823. (84, 'IRN+3.5', '12600', 'GMT+03:30'),
  824. (85, 'ARM+4', '14400', 'GMT+04:00'),
  825. (86, 'AZE+4', '14400', 'GMT+04:00'),
  826. (87, 'GEO+4', '14400', 'GMT+04:00'),
  827. (88, 'KAZ+4', '14400', 'GMT+04:00'),
  828. (89, 'RUS+4', '14400', 'GMT+04:00'),
  829. (90, 'KAZ+5', '18000', 'GMT+05:00'),
  830. (91, 'KGZ+5', '18000', 'GMT+05:00'),
  831. (92, 'PAK+5', '18000', 'GMT+05:00'),
  832. (93, 'RUS+5', '18000', 'GMT+05:00'),
  833. (94, 'IND+5.5', '19800', 'GMT+05:30'),
  834. (95, 'KAZ+6', '21600', 'GMT+06:00'),
  835. (96, 'RUS+6', '21600', 'GMT+06:00'),
  836. (97, 'RUS+7', '25200', 'GMT+07:00'),
  837. (98, 'THA+7', '25200', 'GMT+07:00'),
  838. (99, 'CHN+7', '25200', 'GMT+07:00'),
  839. (100, 'SGP+8', '28800', 'GMT+08:00'),
  840. (101, 'KOR+8', '28800', 'GMT+08:00'),
  841. (102, 'AUS+8', '28800', 'GMT+08:00'),
  842. (103, 'JPN+9', '32400', 'GMT+09:00'),
  843. (104, 'AUS+9.5', '34200', 'GMT+09:30'),
  844. (105, 'AUS2+9.5', '34200', 'GMT+09:30'),
  845. (106, 'AUS+10', '36000', 'GMT+10:00'),
  846. (107, 'AUS2+10', '36000', 'GMT+10:00'),
  847. (108, 'AUS3+10', '36000', 'GMT+10:00'),
  848. (109, 'RUS+10', '36000', 'GMT+10:00'),
  849. (110, 'AUS+10.5', '37800', 'GMT+10:30'),
  850. (111, 'NCL+11', '39600', 'GMT+11:00'),
  851. (112, 'NZL+12', '43200', 'GMT+12:00'),
  852. (113, 'RUS+12', '43200', 'GMT+12:00'),
  853. (114, 'NZL+12.75', '45900', 'GMT+12:00'),
  854. (115, 'TON+13', '46800', 'GMT+13:00')";
  855. $db->query($sql);
  856. out("Create Custom Configs Table");
  857. $sql = "CREATE TABLE IF NOT EXISTS `endpointman_custom_configs` (
  858. `id` int(11) NOT NULL AUTO_INCREMENT,
  859. `name` varchar(255) NOT NULL,
  860. `original_name` varchar(255) NOT NULL,
  861. `product_id` varchar(11) NOT NULL,
  862. `data` blob NOT NULL,
  863. PRIMARY KEY (`id`)
  864. ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1";
  865. $db->query($sql);
  866. if(file_exists($amp_conf['AMPWEBROOT']."/recordings")) {
  867. out("Installing ARI Module");
  868. copy(LOCAL_PATH. "Install/phonesettings.module", $amp_conf['AMPWEBROOT']."/recordings/modules/phonesettings.module");
  869. copy(LOCAL_PATH. "templates/javascript/jquery.coda-slider-2.0.js", $amp_conf['AMPWEBROOT']."/recordings/theme/js/jquery.coda-slider-2.0.js");
  870. copy(LOCAL_PATH. "templates/javascript/jquery.easing.1.3.js", $amp_conf['AMPWEBROOT']."/recordings/theme/js/jquery.easing.1.3.js");
  871. copy(LOCAL_PATH. "templates/stylesheets/coda-slider-2.0a.css", $amp_conf['AMPWEBROOT']."/recordings/theme/coda-slider-2.0a.css");
  872. out("Fixing permissions on ARI module");
  873. chmod($amp_conf['AMPWEBROOT']."/recordings/modules/phonesettings.module", 0664);
  874. }
  875. } else {
  876. out("Update Version Number");
  877. $sql = "UPDATE endpointman_global_vars SET value = '".$version."' WHERE var_name = 'version'";
  878. $db->query($sql);
  879. }