root/contributed_modules/modules/dynroute/install.php

Revision 14068, 3.1 kB (checked in by john@erba.tv, 3 weeks ago)

security: added block on calling directly to all .php files in module,
changed uninstall from sql script to php to be aligned with current
standards, removed closing tags on .php

Line 
1 <?php
2 // Dynamic routing modules
3 // Copied from ivr and calleridlookup modules
4 // John Fawcett Sept 2009
5
6 if (!defined('FREEPBX_IS_AUTH')) { die('No direct script access allowed'); }
7
8 require_once dirname(__FILE__)."/functions.inc.php";
9
10 if (! function_exists("out")) {
11   function out($text) {
12     echo $text."<br />";
13   }
14 }
15
16 if (! function_exists("outn")) {
17   function outn($text) {
18     echo $text;
19   }
20 }
21
22 global $db;
23 global $amp_conf;
24 $autoincrement = (($amp_conf["AMPDBENGINE"] == "sqlite") || ($amp_conf["AMPDBENGINE"] == "sqlite3")) ? "AUTOINCREMENT":"AUTO_INCREMENT";
25
26 $sql = "
27   CREATE TABLE IF NOT EXISTS dynroute (
28     `dynroute_id` INTEGER NOT NULL PRIMARY KEY $autoincrement,
29     `displayname` VARCHAR(50) not null,
30     `sourcetype` VARCHAR(100) default NULL,
31     `mysql_host` varchar(60) default NULL,
32     `mysql_dbname` varchar(60) default NULL,
33     `mysql_query` text,
34     `mysql_username` varchar(30) default NULL,
35     `mysql_password` varchar(30) default NULL,
36                 `enable_dtmf_input` varchar(8),
37                 `timeout` INT,
38                 `announcement_id` INT(11),
39                 `chan_var_name` varchar(255),
40                 `chan_var_name_res` varchar(255)
41   );
42   ";
43 sql($sql);
44
45 $sql = "
46 CREATE TABLE IF NOT EXISTS dynroute_dests
47 (
48   `dynroute_id` INT NOT NULL,
49   `selection` VARCHAR(255),
50   `dest` VARCHAR(50)
51 )
52 ";
53 sql($sql);
54
55 $sql = "SELECT enable_dtmf_input FROM dynroute";
56 $check = $db->getRow($sql, DB_FETCHMODE_ASSOC);
57 if(DB::IsError($check)) {
58         // add new field
59         $sql = "ALTER TABLE dynroute ADD COLUMN `enable_dtmf_input` VARCHAR(8);";
60         $result = $db->query($sql);
61         if(DB::IsError($result)) { die_freepbx($result->getDebugInfo()); }
62 }
63
64 $sql = "SELECT timeout FROM dynroute";
65 $check = $db->getRow($sql, DB_FETCHMODE_ASSOC);
66 if(DB::IsError($check)) {
67         // add new field
68         $sql = "ALTER TABLE dynroute ADD COLUMN `timeout` INT;";
69         $result = $db->query($sql);
70         if(DB::IsError($result)) { die_freepbx($result->getDebugInfo()); }
71 }
72
73 $sql = "SELECT announcement_id FROM dynroute";
74 $check = $db->getRow($sql, DB_FETCHMODE_ASSOC);
75 if(DB::IsError($check)) {
76         // add new field
77         $sql = "ALTER TABLE dynroute ADD COLUMN `announcement_id` INT(11);";
78         $result = $db->query($sql);
79         if(DB::IsError($result)) { die_freepbx($result->getDebugInfo()); }
80 }
81
82 $sql = "SELECT chan_var_name FROM dynroute";
83 $check = $db->getRow($sql, DB_FETCHMODE_ASSOC);
84 if(DB::IsError($check)) {
85         // add new field
86         $sql = "ALTER TABLE dynroute ADD COLUMN `chan_var_name` VARCHAR(255);";
87         $result = $db->query($sql);
88         if(DB::IsError($result)) { die_freepbx($result->getDebugInfo()); }
89 }
90
91 $sql = "SELECT chan_var_name_res FROM dynroute";
92 $check = $db->getRow($sql, DB_FETCHMODE_ASSOC);
93 if(DB::IsError($check)) {
94         // add new field
95         $sql = "ALTER TABLE dynroute ADD COLUMN `chan_var_name_res` VARCHAR(255);";
96         $result = $db->query($sql);
97         if(DB::IsError($result)) { die_freepbx($result->getDebugInfo()); }
98 }
99
100 // This used to be called from page.ivr.php every time, it should not be needed, it should
101 // be called once and be done with.
102 //
103 dynroute_init();
Note: See TracBrowser for help on using the browser.