root/modules/branches/2.10/outroutemsg/functions.inc.php

Revision 12013, 6.0 kB (checked in by mickecarlsson, 2 years ago)

Re #5055 removed stray code

Line 
1 <?php /* $Id: function.inc.php  $ */
2 //Copyright (C) 2009 Philippe Lindheimer
3 //Copyright (C) 2009 Bandwidth.com
4 //Copyright (C) 2010 Mikael Carlsson
5 //
6 //This program is free software; you can redistribute it and/or
7 //modify it under the terms of the GNU General Public License
8 //as published by the Free Software Foundation version 2
9 //of the License.
10 //
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
16 define ('DEFAULT_MSG', -1);
17 define ('CONGESTION_TONE', -2);
18
19 function outroutemsg_get_config($engine) {
20     global $db;
21     global $ext;
22     global $version;
23
24     switch($engine) {
25         case "asterisk":
26
27             /* here we add macro-outisbusy with the following actions:
28              * if ( EMERGENCYROUTE=YES ):
29              *     choose Emergency Message over everything else, ANSWER CALL
30              * if ( INTRACOMPANYROUTE=YES ):
31              *     choose Intracompany Message over default
32              * Use default
33              */
34
35         $contextname = 'macro-outisbusy';
36
37         $outroutemsg_ids = outroutemsg_get();
38         $exten = 's';
39
40         $ext->add($contextname, $exten, '', new ext_progress());
41         $ext->add($contextname, $exten, '', new ext_gotoif('$["${EMERGENCYROUTE}" = "YES"]', 'emergency,1'));
42         $ext->add($contextname, $exten, '', new ext_gotoif('$["${INTRACOMPANYROUTE}" = "YES"]', 'intracompany,1'));
43
44         switch ($outroutemsg_ids['default_msg_id']) {
45             case DEFAULT_MSG:
46                 $ext->add($contextname, $exten, '', new ext_playback("all-circuits-busy-now&pls-try-call-later, noanswer"));
47                 break;
48             case CONGESTION_TONE:
49                 $ext->add($contextname, $exten, '', new ext_playtones("congestion"));
50                 break;
51             default:
52                 $message = recordings_get_file($outroutemsg_ids['default_msg_id']);
53                 $message = ($message != "") ? $message : "all-circuits-busy-now&pls-try-call-later";
54                 $ext->add($contextname, $exten, '', new ext_playback("$message, noanswer"));
55         }
56         $ext->add($contextname, $exten, '', new ext_congestion());
57         $ext->add($contextname, $exten, '', new ext_hangup());
58
59         $exten = 'intracompany';
60         switch ($outroutemsg_ids['intracompany_msg_id']) {
61             case DEFAULT_MSG:
62                 $ext->add($contextname, $exten, '', new ext_playback("all-circuits-busy-now&pls-try-call-later, noanswer"));
63                 break;
64             case CONGESTION_TONE:
65                 $ext->add($contextname, $exten, '', new ext_playtones("congestion"));
66                 break;
67             default:
68                 $message = recordings_get_file($outroutemsg_ids['intracompany_msg_id']);
69                 $message = ($message != "") ? $message : "all-circuits-busy-now&pls-try-call-later";
70                 $ext->add($contextname, $exten, '', new ext_playback("$message, noanswer"));
71         }
72         $ext->add($contextname, $exten, '', new ext_congestion());
73         $ext->add($contextname, $exten, '', new ext_hangup());
74
75         $exten = 'emergency';
76         switch ($outroutemsg_ids['emergency_msg_id']) {
77             case DEFAULT_MSG:
78                 $ext->add($contextname, $exten, '', new ext_playback("all-circuits-busy-now&pls-try-call-later"));
79                 break;
80             case CONGESTION_TONE:
81                 $ext->add($contextname, $exten, '', new ext_playtones("congestion"));
82                 break;
83             default:
84                 $message = recordings_get_file($outroutemsg_ids['emergency_msg_id']);
85                 $message = ($message != "") ? $message : "all-circuits-busy-now&pls-try-call-later";
86                 $ext->add($contextname, $exten, '', new ext_playback("$message"));
87         }
88         $ext->add($contextname, $exten, '', new ext_congestion());
89         $ext->add($contextname, $exten, '', new ext_hangup());
90     }
91 }
92
93 function outroutemsg_add($default_msg_id, $intracompany_msg_id, $emergency_msg_id, $no_answer_msg_id, $invalidnmbr_msg_id) {
94     global $db;
95
96     $default_msg_id      = $db->escapeSimple($default_msg_id);
97     $intracompany_msg_id = $db->escapeSimple($intracompany_msg_id);
98     $emergency_msg_id    = $db->escapeSimple($emergency_msg_id);
99     $no_answer_msg_id    = $db->escapeSimple($no_answer_msg_id);
100     $invalidnmbr_msg_id  = $db->escapeSimple($invalidnmbr_msg_id);
101     
102     // in future will do in a outroutemsg_del but not needed for now
103     //
104     $sql = "DELETE FROM outroutemsg WHERE `keyword` IN  ('default_msg_id', 'intracompany_msg_id', 'emergency_msg_id', 'no_answer_msg_id', 'invalidnmbr_msg_id')";
105     $result = $db->query($sql);
106     if(DB::IsError($result)) {
107         die_freepbx($result->getMessage().$sql);
108     }
109
110     $insert_fields =array(
111         array('default_msg_id', "$default_msg_id"),
112         array('intracompany_msg_id', "$intracompany_msg_id"),
113         array('emergency_msg_id', "$emergency_msg_id"),
114         array('no_answer_msg_id', "$no_answer_msg_id"),
115         array('invalidnmbr_msg_id', "$invalidnmbr_msg_id"),
116         );
117
118     $compiled = $db->prepare('INSERT INTO outroutemsg (keyword, data) values (?,?)');
119     $result = $db->executeMultiple($compiled,$insert_fields);
120     if(DB::IsError($result)) {
121         die_freepbx($result->getDebugInfo()."<br><br>".'error adding to outroutemsg table');
122     }
123 }
124
125 function outroutemsg_get() {
126     global $db;
127     $sql = "SELECT keyword, data FROM outroutemsg";
128     $results = $db->getAssoc($sql);
129     if(DB::IsError($results)) {
130         $results = array();
131     }
132     $results['default_msg_id']      = isset($results['default_msg_id'])      ? $results['default_msg_id']      : DEFAULT_MSG;
133     $results['intracompany_msg_id'] = isset($results['intracompany_msg_id']) ? $results['intracompany_msg_id'] : DEFAULT_MSG;
134     $results['emergency_msg_id']    = isset($results['emergency_msg_id'])    ? $results['emergency_msg_id']    : DEFAULT_MSG;
135     $results['no_answer_msg_id']    = isset($results['no_answer_msg_id'])    ? $results['no_answer_msg_id']    : DEFAULT_MSG;
136     $results['invalidnmbr_msg_id']  = isset($results['invalidnmbr_msg_id'])  ? $results['invalidnmbr_msg_id']  : DEFAULT_MSG;
137     return $results;
138 }
139
140 function outroutemsg_recordings_usage($recording_id) {
141     global $active_modules;
142
143     $my_id = sql("SELECT `data` FROM `outroutemsg` WHERE `data` = '$recording_id'","getOne");
144     if (!isset($my_id) || $my_id == '') {
145         return array();
146     } else {
147         $type = isset($active_modules['outroutemsg']['type'])?$active_modules['outroutemsg']['type']:'tool';
148         $usage_arr[] = array(
149             'url_query' => 'config.php?type='.$type.'&display=outroutemsg',
150             'description' => _("Route Congestion Messages"),
151         );
152         return $usage_arr;
153     }
154 }
155
156 ?>
157
Note: See TracBrowser for help on using the browser.