root/contributed_modules/modules/importextensions/page.importextensions.php

Revision 5049, 9.0 kB (checked in by p_lindheimer, 5 years ago)

add importextensions contributed module

Line 
1 <?php
2 require_once "/var/www/html/admin/functions.inc.php";
3 require_once "/var/www/html/admin/modules/core/functions.inc.php";
4 $amp_conf = parse_amportal_conf("/etc/amportal.conf");
5 $asterisk_conf = parse_asterisk_conf("/etc/asterisk/asterisk.conf");
6 require_once "/var/www/html/admin/common/php-asmanager.php";
7 require_once "/var/www/html/admin/header_auth.php";
8
9 if ( $_REQUEST["csv_uploaded"] ) {
10
11     $aFields = array (
12       "display" => array(false, -1),
13       "tech" => array(false, -1),
14       "action" => array(false, -1),
15       "extdisplay" => array(false, -1),
16       "extension" => array(false, -1),
17       "description" => array(false, -1),
18       "devicetype" => array(false, -1),
19       "deviceuser" => array(false, -1),
20       "password" => array(false, -1),
21       "directdid" => array(false, -1),
22       "didalert" => array(false, -1),
23       "outboundcid" => array(false, -1),
24       "emergency_cid" => array(false, -1),
25       "record_in" => array(false, -1),
26       "record_out" => array(false, -1),
27       "devinfo_secret" => array(false, -1),
28       "devinfo_dtmfmode" => array(false, -1),
29       "devinfo_canreinvite" => array(false, -1),
30       "devinfo_context" => array(false, -1),
31       "devinfo_host" => array(false, -1),
32       "devinfo_type" => array(false, -1),
33       "devinfo_nat" => array(false, -1),
34       "devinfo_port" => array(false, -1),
35       "devinfo_qualify" => array(false, -1),
36       "devinfo_callgroup" => array(false, -1),
37       "devinfo_pickupgroup" => array(false, -1),
38       "devinfo_disallow" => array(false, -1),
39       "devinfo_allow" => array(false, -1),
40       "devinfo_dial" => array(false, -1),
41       "devinfo_accountcode" => array(false, -1),
42       "devinfo_mailbox" => array(false, -1),
43       "vm" => array(false, -1),
44       "vmpwd" => array(false, -1),
45       "email" => array(false, -1),
46       "pager" => array(false, -1),
47       "attach" => array(false, -1),
48       "saycid" => array(false, -1),
49       "envelope" => array(false, -1),
50       "delete" => array(false, -1),
51       "options" => array(false, -1),
52       "vmcontext" => array(false, -1),
53       "name" => array(false, -1),
54     );
55    
56 $fh = fopen($_FILES['csvFile']['tmp_name'], "r");
57 while (($aInfo = fgetcsv($fh, 1000, ",")) !== FALSE)
58     {
59         if ( empty($aInfo[0]) ) {
60           continue;
61         }
62         //If this is the first row then we need to check each fields listed
63         if ($i==0)
64         {
65            
66             for ($j=0; $j<count($aInfo); $j++)
67             {
68                 $aKeys = array_keys($aFields);
69                
70                 foreach ($aKeys as $sKey)
71                 {
72                     if ($aInfo[$j] == $sKey)
73                     {
74                         $aFields[$sKey][0] = true;
75                         $aFields[$sKey][1] = $j;
76                     }
77                 }
78             }
79            
80             $i++;
81             continue;
82         }
83
84         if ($aFields["name"][0]) {
85                 $vars["name"] = trim($aInfo[$aFields["name"][1]]);
86         }
87         if ($aFields["display"][0]) {
88                 $vars["display"] = trim($aInfo[$aFields["display"][1]]);
89         }
90         if ($aFields["tech"][0]) {
91                 $vars["tech"] = trim($aInfo[$aFields["tech"][1]]);
92         }
93         if ($aFields["action"][0]) {
94                 $vars["action"] = trim($aInfo[$aFields["action"][1]]);
95         }
96         if ($aFields["extdisplay"][0]) {
97                 $vars["extdisplay"] = trim($aInfo[$aFields["extdisplay"][1]]);
98         }
99         if ($aFields["extension"][0]) {
100                 $vars["extension"] = trim($aInfo[$aFields["extension"][1]]);
101         }
102         if ($aFields["description"][0]) {
103                 $vars["description"] = trim($aInfo[$aFields["description"][1]]);
104         }
105         if ($aFields["devicetype"][0]) {
106                 $vars["devicetype"] = trim($aInfo[$aFields["devicetype"][1]]);
107         }
108         if ($aFields["deviceuser"][0]) {
109                 $vars["deviceuser"] = trim($aInfo[$aFields["deviceuser"][1]]);
110         }
111         if ($aFields["password"][0]) {
112                 $vars["password"] = trim($aInfo[$aFields["password"][1]]);
113         }
114         if ($aFields["directdid"][0]) {
115                 $vars["directdid"] = trim($aInfo[$aFields["directdid"][1]]);
116         }
117         if ($aFields["didalert"][0]) {
118                 $vars["didalert"] = trim($aInfo[$aFields["didalert"][1]]);
119         }
120         if ($aFields["outboundcid"][0]) {
121                 $vars["outboundcid"] = trim($aInfo[$aFields["outboundcid"][1]]);
122         }
123         if ($aFields["emergency_cid"][0]) {
124                 $vars["emergency_cid"] = trim($aInfo[$aFields["emergency_cid"][1]]);
125         }
126         if ($aFields["record_in"][0]) {
127                 $vars["record_in"] = trim($aInfo[$aFields["record_in"][1]]);
128         }
129         if ($aFields["record_out"][0]) {
130                 $vars["record_out"] = trim($aInfo[$aFields["record_out"][1]]);
131         }
132         if ($aFields["devinfo_secret"][0]) {
133                 $vars["devinfo_secret"] = trim($aInfo[$aFields["devinfo_secret"][1]]);
134         }
135         if ($aFields["devinfo_dtmfmode"][0]) {
136                 $vars["devinfo_dtmfmode"] = trim($aInfo[$aFields["devinfo_dtmfmode"][1]]);
137         }
138         if ($aFields["devinfo_canreinvite"][0]) {
139                 $vars["devinfo_canreinvite"] = trim($aInfo[$aFields["devinfo_canreinvite"][1]]);
140         }
141         if ($aFields["devinfo_context"][0]) {
142                 $vars["devinfo_context"] = trim($aInfo[$aFields["devinfo_context"][1]]);
143         }
144         if ($aFields["devinfo_host"][0]) {
145                 $vars["devinfo_host"] = trim($aInfo[$aFields["devinfo_host"][1]]);
146         }
147         if ($aFields["devinfo_type"][0]) {
148                 $vars["devinfo_type"] = trim($aInfo[$aFields["devinfo_type"][1]]);
149         }
150         if ($aFields["devinfo_nat"][0]) {
151                 $vars["devinfo_nat"] = trim($aInfo[$aFields["devinfo_nat"][1]]);
152         }
153         if ($aFields["devinfo_port"][0]) {
154                 $vars["devinfo_port"] = trim($aInfo[$aFields["devinfo_port"][1]]);
155         }
156         if ($aFields["devinfo_qualify"][0]) {
157                 $vars["devinfo_qualify"] = trim($aInfo[$aFields["devinfo_qualify"][1]]);
158         }
159         if ($aFields["devinfo_callgroup"][0]) {
160                 $vars["devinfo_callgroup"] = trim($aInfo[$aFields["devinfo_callgroup"][1]]);
161         }
162         if ($aFields["devinfo_pickupgroup"][0]) {
163                 $vars["devinfo_pickupgroup"] = trim($aInfo[$aFields["devinfo_pickupgroup"][1]]);
164         }
165         if ($aFields["devinfo_disallow"][0]) {
166                 $vars["devinfo_disallow"] = trim($aInfo[$aFields["devinfo_disallow"][1]]);
167         }
168         if ($aFields["devinfo_allow"][0]) {
169                 $vars["devinfo_allow"] = trim($aInfo[$aFields["devinfo_allow"][1]]);
170         }
171         if ($aFields["devinfo_dial"][0]) {
172                 $vars["devinfo_dial"] = trim($aInfo[$aFields["devinfo_dial"][1]]);
173         }
174         if ($aFields["devinfo_accountcode"][0]) {
175                 $vars["devinfo_accountcode"] = trim($aInfo[$aFields["devinfo_accountcode"][1]]);
176         }
177         if ($aFields["devinfo_mailbox"][0]) {
178                 $vars["devinfo_mailbox"] = trim($aInfo[$aFields["devinfo_mailbox"][1]]);
179         }
180         if ($aFields["vm"][0]) {
181                 $vars["vm"] = trim($aInfo[$aFields["vm"][1]]);
182         }
183         if ($aFields["vmpwd"][0]) {
184                 $vars["vmpwd"] = trim($aInfo[$aFields["vmpwd"][1]]);
185         }
186         if ($aFields["email"][0]) {
187                 $vars["email"] = trim($aInfo[$aFields["email"][1]]);
188         }
189         if ($aFields["pager"][0]) {
190                 $vars["pager"] = trim($aInfo[$aFields["pager"][1]]);
191         }
192         if ($aFields["attach"][0]) {
193                 $vars["attach"] = trim($aInfo[$aFields["attach"][1]]);
194         }
195         if ($aFields["saycid"][0]) {
196                 $vars["saycid"] = trim($aInfo[$aFields["saycid"][1]]);
197         }
198         if ($aFields["envelope"][0]) {
199                 $vars["envelope"] = trim($aInfo[$aFields["envelope"][1]]);
200         }
201         if ($aFields["delete"][0]) {
202                 $vars["delete"] = trim($aInfo[$aFields["delete"][1]]);
203         }
204         if ($aFields["options"][0]) {
205                 $vars["options"] = trim($aInfo[$aFields["options"][1]]);
206         }
207         if ($aFields["vmcontext"][0]) {
208                 $vars["vmcontext"] = trim($aInfo[$aFields["vmcontext"][1]]);
209         }
210   $_REQUEST = $vars;
211    voicemail_mailbox_add($mbox, $vars);
212    core_devices_add($vars["extension"],$vars["tech"],$vars["devinfo_dial"],$vars["devicetype"],$vars["deviceuser"],$vars["description"],$vars["emergency_cid"]);
213    #core_devices_addsip($vars["extension"]);
214          core_users_add($vars,$vars["vmcontext"]);
215   print "Added: " . $vars["extension"] . "<BR>";
216   needreload();
217         #redirect_standard_continue();
218
219     }
220 } else {
221 ?>
222 <p>Right click -> Save as : <a href="modules/importextensions/template.csv">Template CSV</a><br><br>
223 <form action="<?php $_SERVER['PHP_SELF'] ?>" name="uploadcsv" method="post" enctype="multipart/form-data">
224 Choose Account CSV File: <input name="csvFile" type="file">
225 <input name="csv_uploaded" type="hidden" value="1">
226 <input type="submit" value="Import!">
227 </form>
228 <?php
229 }
230 ?>
Note: See TracBrowser for help on using the browser.