root/contributed_modules/modules/setcid/functions.inc.php

Revision 10450, 4.2 kB (checked in by mickecarlsson, 2 years ago)

Close #4609, fix dbug leftovers in setcid module

Line 
1 <?php
2
3
4 function setcid_get_config($engine) {
5   global $ext;
6   switch ($engine) {
7     case 'asterisk':
8       $ext->addInclude('from-internal-additional', 'app-setcid');
9       foreach (setcid_list() as $row) {
10           $ext->add('app-setcid',$row['cid_id'], '', new ext_noop('('.$row['description'].') Changing cid to '.$row['cid_name'].' <'. $row['cid_num'].'>'));
11           $ext->add('app-setcid',$row['cid_id'], '', new ext_set('CALLERID(name)', $row['cid_name']));
12           $ext->add('app-setcid',$row['cid_id'], '', new ext_set('CALLERID(num)', $row['cid_num']));
13           $ext->add('app-setcid',$row['cid_id'], '', new ext_goto($row['dest']));
14       }
15     break;
16   }
17 }
18
19 /**  Get a list of all cid
20  */
21 function setcid_list() {
22   global $db;
23   $sql = "SELECT cid_id, description, cid_name, cid_num, dest FROM setcid ORDER BY description ";
24   $results = $db->getAll($sql, DB_FETCHMODE_ASSOC);
25   if(DB::IsError($results)) {
26     die_freepbx($results->getMessage()."<br><br>Error selecting from setcid"); 
27   }
28   return $results;
29 }
30
31 function setcid_destinations() {
32   global $module_page;
33   $extens = array();
34
35   // it makes no sense to point at another callerid (and it can be an infinite loop)
36   if ($module_page == 'setcid') {
37     return false;
38   }
39
40   // return an associative array with destination and description
41   foreach (setcid_list() as $row) {
42     $extens[] = array('destination' => 'app-setcid,' . $row['cid_id'] . ',1', 'description' => $row['description']);
43   }
44   return $extens;
45 }
46
47 function setcid_get($cid_id) {
48   global $db;
49   $sql = "SELECT cid_id, description, cid_name, cid_num, dest FROM setcid WHERE cid_id = ".$db->escapeSimple($cid_id);
50   $row = $db->getRow($sql, DB_FETCHMODE_ASSOC);
51   if(DB::IsError($row)) {
52     die_freepbx($row->getMessage()."<br><br>Error selecting row from setcid"); 
53   }
54  
55   return $row;
56 }
57
58 function setcid_add($description, $cid_name, $cid_num, $dest) {
59   global $db;
60   $sql = "INSERT INTO setcid (description, cid_name, cid_num, dest) VALUES (".
61     "'".$db->escapeSimple($description)."', ".
62     "'".$db->escapeSimple($cid_name)."', ".
63     "'".$db->escapeSimple($cid_num)."', ".
64     "'".$db->escapeSimple($dest)."')";
65   $result = $db->query($sql);
66   if(DB::IsError($result)) {
67     die_freepbx($result->getMessage().$sql);
68   }
69 }
70
71 function setcid_delete($cid_id) {
72   global $db;
73   $sql = "DELETE FROM setcid WHERE cid_id = ".$db->escapeSimple($cid_id);
74   $result = $db->query($sql);
75   if(DB::IsError($result)) {
76     die_freepbx($result->getMessage().$sql);
77   }
78 }
79
80 function setcid_edit($cid_id, $description, $cid_name, $cid_num, $dest) {
81   global $db;
82   $sql = "UPDATE setcid SET ".
83     "description = '".$db->escapeSimple($description)."', ".
84     "cid_name = '".$db->escapeSimple($cid_name)."', ".
85     "cid_num = '".$db->escapeSimple($cid_num)."', ".
86     "dest = '".$db->escapeSimple($dest)."' ".
87     "WHERE cid_id = ".$db->escapeSimple($cid_id);
88   $result = $db->query($sql);
89   if(DB::IsError($result)) {
90     die_freepbx($result->getMessage().$sql);
91   }
92 }
93
94
95
96 //----------------------------------------------------------------------------
97 // Dynamic Destination Registry and Recordings Registry Functions
98
99 function setcid_check_destinations($dest=true) {
100   global $active_modules;
101
102   $destlist = array();
103   if (is_array($dest) && empty($dest)) {
104     return $destlist;
105   }
106   $sql = "SELECT cid_id, description, dest FROM setcid ";
107   if ($dest !== true) {
108     $sql .= "WHERE cid_id in ('".implode("','",$dest)."')";
109   }
110   $results = sql($sql,"getAll",DB_FETCHMODE_ASSOC);
111
112   $type = isset($active_modules['setcid']['type'])?$active_modules['setcid']['type']:'setup';
113
114   foreach ($results as $result) {
115     $thisdest = $result['dest'];
116     $thisid   = $result['cid_id'];
117     $destlist[] = array(
118       'dest' => $thisdest,
119       'description' => 'Set CallerID: '.$result['description'],
120       'edit_url' => 'config.php?display=setcid&type=tool&id='.urlencode($thisid),
121     );
122   }
123   return $destlist;
124 }
125
126 function setcid_getdest($id) {
127   return array("app-setcid,$id,1");
128 }
129
130 function setcid_getdestinfo($dest) {
131   if (substr(trim($dest),0,11) == 'app-setcid,') {
132     $grp = explode(',',$dest);
133     $id = $grp[1];
134     $thiscid = setcid_get($id);
135     if (empty($thiscid)) {
136       return array();
137     } else {
138       return array('description' => sprintf(_("Set CallerID %s: "),$thiscid['description']),
139                    'edit_url' => 'config.php?display=setcid&id='.urlencode($id),
140                   );
141     }
142   } else {
143     return false;
144   }
145 }
146
147 ?>
Note: See TracBrowser for help on using the browser.