root/contributed_modules/modules/isymphony/page.isymphony.php

Revision 7772, 23.9 kB (checked in by seanmh, 3 years ago)

1.0.0 Added backward compatibility support for 2.0 rev 1104.

Fixed bug in which a flawed context would prevent orphaned parked calls from ringing back to the parking extension if parked via the panel.
Made debug menu always visible.
Added server debug menu.
Debug logs now show on main module page.
Multiple debug options can now be set at once.
Added database column checks in installation script to handle module upgrades.
Added default FreePBX page context to configuration.
Added admin username and password fields to the main module page.
Added originate timeout field to main module page.
Added auto reload and enable page status checkboxes to main module page.
Added global Jabber connection configuration fields on main module page.
Added email and cell phone fields to extension page.
Added Jabber connection configuration override fields to extension page.
Added Jabber username and password fields to extension page.
Added auto answer checkbox to extension page.
Modified database debug tables to account for new tables and columns.

Line 
1 <?php
2 /*
3  *Name         : page.isymphony.php
4  *Author       : Michael Yara
5  *Created      : July 2, 2008
6  *Last Updated : May 27, 2009
7  *History      : 0.6
8  *Purpose      : Information page for iSymphony module
9  *Copyright    : 2008 HEHE Enterprises, LLC
10  */
11
12  
13 //Check to see if the server is running
14 $psOutput = array();
15 $serverRunning = false;
16 $serverRunningDisplay = "";
17 exec("ps -auxww | grep java", $psOutput);
18
19 foreach($psOutput as $line) {
20   if(strstr($line, "iSymphonyServer.jar") !== false) {
21     $serverRunning = true;
22     break;
23   }
24 }
25
26 $serverRunningDisplay = $serverRunning ? "<span style=\"color: #00FF00\">Up</span>" : "<span style=\"color: #FF0000\">Down</span>";
27
28 //Check for a reload action
29 if($serverRunning && iSymphonyConnect() && isset($_REQUEST["isymphony_reload"])) {
30  
31   //Reload server and block for 5 secs so server can repopulate
32   reloadISymphonyServer();
33   sleep(5);
34 }
35
36 //Check for a license activation action
37 $licenseActivationError = "";
38 if($serverRunning && iSymphonyConnect() && isset($_REQUEST["isymphony_activate_license"]) && isset($_REQUEST["isymphony_license_key"]) && (trim($_REQUEST["isymphony_license_key"]) != "")) {
39  
40   if(activateISymphonyLicense("default", "default", trim($_REQUEST["isymphony_license_key"])) === false) {
41     $licenseActivationError = $ISERROR;
42   }
43  
44   //Block for 5 secs to let location reload
45   sleep(5);
46  
47   //Close iSymphony connection
48   iSymphonyDisconnect();
49 }
50
51 //Check for a location settings update action
52 if(isset($_REQUEST["isymphony_update_location_settings"])) {
53
54   //Update data base
55   isymphony_location_update(  trim($_REQUEST["isymphony_admin_user_name"]),
56                 trim($_REQUEST["isymphony_admin_password"]),
57                 trim($_REQUEST["isymphony_originate_timeout"]),
58                 isset($_REQUEST["isymphony_auto_reload"]) ? "1" : "0",
59                 isset($_REQUEST["isymphony_page_status_enabled"]) ? "1" : "0", 
60                 trim($_REQUEST["isymphony_jabber_host"]),
61                 trim($_REQUEST["isymphony_jabber_domain"]),
62                 trim($_REQUEST["isymphony_jabber_resource"]),
63                 trim($_REQUEST["isymphony_jabber_port"]));
64   //Flag FreePBX for reload             
65   needreload();             
66 }
67
68 //Grab location information
69 $locationInformation = isymphony_location_get();
70
71 //Debug url additions
72 $debugUrlAdditions = "";
73
74 //Check if a request to show the database was made
75 $databaseDisplay = "";
76 if(isset($_REQUEST["showmoduledb"])) {
77  
78   $debugUrlAdditions .= "&showmoduledb=yes";
79  
80   //Build location information table
81   $databaseDisplay .= " <table>
82                 <tr>
83                   <tr><td colspan = \"9\"><h5>Location</h5></td></tr>
84                 </tr>
85                 <tr>
86                   <td>Admin User Name&nbsp&nbsp&nbsp</td>
87                   <td>Admin Password&nbsp&nbsp&nbsp</td>
88                   <td>Originate Timeout&nbsp&nbsp&nbsp</td>
89                   <td>Auto Reload&nbsp&nbsp&nbsp</td>
90                   <td>Page Status Enabled&nbsp&nbsp&nbsp</td>
91                   <td>Jabber Host&nbsp&nbsp&nbsp</td>
92                   <td>Jabber Domain&nbsp&nbsp&nbsp</td>
93                   <td>Jabber Resource&nbsp&nbsp&nbsp</td>
94                   <td>Jabber Port&nbsp&nbsp&nbsp</td>
95                 </tr>
96                 <tr>
97                   <td colspan = \"9\"><hr></td>
98                 </tr>
99                 <tr>
100                   <td>{$locationInformation['admin_user_name']}</td>
101                   <td>{$locationInformation['admin_password']}</td>
102                   <td>{$locationInformation['originate_timeout']}</td>
103                   <td>{$locationInformation['auto_reload']}</td>
104                   <td>{$locationInformation['page_status_enabled']}</td>
105                   <td>{$locationInformation['jabber_host']}</td>
106                   <td>{$locationInformation['jabber_domain']}</td>
107                   <td>{$locationInformation['jabber_resource']}</td>
108                   <td>{$locationInformation['jabber_port']}</td>
109                 </tr>
110               </table>";
111  
112   //Build extensions table
113   $databaseDisplay .= " <table>
114                 <tr>
115                   <tr><td colspan = \"15\"><h5>Extensions</h5></td></tr>
116                 </tr>
117                 <tr>
118                   <td>User ID&nbsp&nbsp&nbsp</td>
119                   <td>Add Extension&nbsp&nbsp&nbsp</td>
120                   <td>Add Profile&nbsp&nbsp&nbsp</td>
121                   <td>Password&nbsp&nbsp&nbsp</td>
122                   <td>Display Name&nbsp&nbsp&nbsp</td>
123                   <td>Peer&nbsp&nbsp&nbsp</td>
124                   <td>Email&nbsp&nbsp&nbsp</td>
125                   <td>Cell Phone&nbsp&nbsp&nbsp</td>
126                   <td>Auto Answer&nbsp&nbsp&nbsp</td>
127                   <td>Jabber Host&nbsp&nbsp&nbsp</td>
128                   <td>Jabber Domain&nbsp&nbsp&nbsp</td>
129                   <td>Jabber Resource&nbsp&nbsp&nbsp</td>
130                   <td>Jabber Port&nbsp&nbsp&nbsp</td>
131                   <td>Jabber User Name&nbsp&nbsp&nbsp</td>
132                   <td>Jabber Password&nbsp&nbsp&nbsp</td>
133                 <tr>
134                 </tr>
135                   <td colspan = \"15\"><hr></td>
136                 </tr>";
137
138   foreach(isymphony_user_list() as $user) {
139     $databaseDisplay .= " <tr>
140                   <td>{$user['user_id']}</td>
141                   <td>{$user['add_extension']}</td>
142                   <td>{$user['add_profile']}</td>
143                   <td>{$user['password']}</td>
144                   <td>{$user['display_name']}</td>
145                   <td>{$user['peer']}</td>
146                   <td>{$user['email']}</td>
147                   <td>{$user['cell_phone']}</td>
148                   <td>{$user['auto_answer']}</td>
149                   <td>{$user['jabber_host']}</td>
150                   <td>{$user['jabber_domain']}</td>
151                   <td>{$user['jabber_resource']}</td>
152                   <td>{$user['jabber_port']}</td>
153                   <td>{$user['jabber_user_name']}</td>
154                   <td>{$user['jabber_password']}</td>
155                 </tr>";
156   }
157
158   $databaseDisplay .= "</table>";
159  
160   //Build queues table
161   $databaseDisplay .= " <table>
162                 <tr>
163                   <tr><td colspan = \"3\"><h5>Queues</h5></td></tr>
164                 </tr>
165                 <tr>
166                   <td>Queue ID&nbsp&nbsp&nbsp</td>
167                   <td>Add Queue&nbsp&nbsp&nbsp</td>
168                   <td>Display Name&nbsp&nbsp&nbsp</td>
169                 <tr>
170                 </tr>
171                   <td colspan = \"3\"><hr></td>
172                 </tr>";
173
174   foreach(isymphony_queue_list() as $queue) {
175     $databaseDisplay .= " <tr>
176                   <td>{$queue['queue_id']}</td>
177                   <td>{$queue['add_queue']}</td>
178                   <td>{$queue['display_name']}</td>
179                 </tr>";
180   }
181
182   $databaseDisplay .= "</table>";
183  
184   //Build conference room table
185   $databaseDisplay .= " <table>
186                 <tr>
187                   <tr><td colspan = \"3\"><h5>Conference Rooms</h5></td></tr>
188                 </tr>
189                 <tr>
190                   <td>Conference Room ID&nbsp&nbsp&nbsp</td>
191                   <td>Add Conference Room&nbsp&nbsp&nbsp</td>
192                   <td>Display Name&nbsp&nbsp&nbsp</td>
193                 <tr>
194                 </tr>
195                   <td colspan = \"3\"><hr></td>
196                 </tr>";
197
198   foreach(isymphony_conference_room_list() as $conferenceRoom) {
199     $databaseDisplay .= " <tr>
200                   <td>{$conferenceRoom['conference_room_id']}</td>
201                   <td>{$conferenceRoom['add_conference_room']}</td>
202                   <td>{$conferenceRoom['display_name']}</td>
203                 </tr>";
204   }
205
206   $databaseDisplay .= "</table>";
207 }
208
209 //Check if a request to show module debug log was made
210 $debugLogDisplay = "";
211 if(isset($_REQUEST["showmoduledebuglog"])) {
212  
213   $debugUrlAdditions .= "&showmoduledebuglog=yes";
214  
215   $debugLogDisplay .= " <tr><td colspan=\"2\"><h5>Module Debug Log<hr></h5></td></tr>
216               <tr><td colspan=\"2\"><p>";
217  
218   //Open debug log
219   if(($debugLogFile = fopen("/var/www/html/admin/modules/isymphony/debug.txt", 'r')) !== false) {
220     while (!feof($debugLogFile)) {
221           $line = fgets($debugLogFile, 4096);
222           $debugLogDisplay .= htmlspecialchars($line) . "<br>";
223       }
224       fclose($debugLogFile);
225   }
226
227   $debugLogDisplay .= "</p></td></tr>";
228 }
229
230 //Check if a request to show module error log was made
231 if(isset($_REQUEST["showmoduleerrorlog"])) {
232  
233   $debugUrlAdditions .= "&showmoduleerrorlog=yes";
234  
235   $debugLogDisplay .= " <tr><td colspan=\"2\"><h5>Module Error Log<hr></h5></td></tr>
236               <tr><td colspan=\"2\"><p>";
237
238   //Open error log
239   if(($errorLogFile = fopen("/var/www/html/admin/modules/isymphony/error.txt", 'r')) !== false) {
240     while (!feof($errorLogFile)) {
241           $line = fgets($errorLogFile, 4096);
242           $debugLogDisplay .= htmlspecialchars($line) . "<br>";
243       }
244       fclose($errorLogFile);
245   }
246  
247   $debugLogDisplay .= "</p></td></tr>";
248 }
249
250 //Check if a request to show server error log was made
251 if(isset($_REQUEST["showservererrorlog"])) {
252  
253   $debugUrlAdditions .= "&showservererrorlog=yes";
254  
255   $debugLogDisplay .= " <tr><td colspan=\"2\"><h5>Server Error Log<hr></h5></td></tr>
256               <tr><td colspan=\"2\"><p>";
257
258   //Open error log
259   if(($errorLogFile = fopen("/opt/isymphony/server/logs/error.txt", 'r')) !== false) {
260     while (!feof($errorLogFile)) {
261           $line = fgets($errorLogFile, 4096);
262           $debugLogDisplay .= htmlspecialchars($line) . "<br>";
263       }
264       fclose($errorLogFile);
265   }
266  
267   $debugLogDisplay .= "</p></td></tr>";
268 }
269
270 //Check if a request to show server core log was made
271 if(isset($_REQUEST["showservercorelog"])) {
272  
273   $debugUrlAdditions .= "&showservercorelog=yes";
274  
275   $debugLogDisplay .= " <tr><td colspan=\"2\"><h5>Server Core Log<hr></h5></td></tr>
276               <tr><td colspan=\"2\"><p>";
277
278   //Open error log
279   if(($errorLogFile = fopen("/opt/isymphony/server/logs/core-events.txt", 'r')) !== false) {
280     while (!feof($errorLogFile)) {
281           $line = fgets($errorLogFile, 4096);
282           $debugLogDisplay .= htmlspecialchars($line) . "<br>";
283       }
284       fclose($errorLogFile);
285   }
286  
287   $debugLogDisplay .= "</p></td></tr>";
288 }
289
290 //Check if a request to show server communication log was made
291 if(isset($_REQUEST["showservercommunicationlog"])) {
292  
293   $debugUrlAdditions .= "&showservercommunicationlog=yes";
294  
295   $debugLogDisplay .= " <tr><td colspan=\"2\"><h5>Server Communication Log<hr></h5></td></tr>
296               <tr><td colspan=\"2\"><p>";
297
298   //Open error log
299   if(($errorLogFile = fopen("/opt/isymphony/server/logs/communication.txt", 'r')) !== false) {
300     while (!feof($errorLogFile)) {
301           $line = fgets($errorLogFile, 4096);
302           $debugLogDisplay .= htmlspecialchars($line) . "<br>";
303       }
304       fclose($errorLogFile);
305   }
306  
307   $debugLogDisplay .= "</p></td></tr>";
308 }
309
310 //Check if a request to show server aj external log was made
311 if(isset($_REQUEST["showserverajexternallog"])) {
312  
313   $debugUrlAdditions .= "&showserverajexternallog=yes";
314  
315   $debugLogDisplay .= " <tr><td colspan=\"2\"><h5>Server AJ External Log<hr></h5></td></tr>
316               <tr><td colspan=\"2\"><p>";
317
318   //Open error log
319   if(($errorLogFile = fopen("/opt/isymphony/server/logs/asterisk-java-external.txt", 'r')) !== false) {
320     while (!feof($errorLogFile)) {
321           $line = fgets($errorLogFile, 4096);
322           $debugLogDisplay .= htmlspecialchars($line) . "<br>";
323       }
324       fclose($errorLogFile);
325   }
326  
327   $debugLogDisplay .= "</p></td></tr>";
328 }
329
330 //Check if a request to show server aj internal log was made
331 if(isset($_REQUEST["showserverajinternallog"])) {
332  
333   $debugUrlAdditions .= "&showserverajinternallog=yes";
334  
335   $debugLogDisplay .= " <tr><td colspan=\"2\"><h5>Server AJ Internal Log<hr></h5></td></tr>
336               <tr><td colspan=\"2\"><p>";
337
338   //Open error log
339   if(($errorLogFile = fopen("/opt/isymphony/server/logs/asterisk-java-internal.txt", 'r')) !== false) {
340     while (!feof($errorLogFile)) {
341           $line = fgets($errorLogFile, 4096);
342           $debugLogDisplay .= htmlspecialchars($line) . "<br>";
343       }
344       fclose($errorLogFile);
345   }
346  
347   $debugLogDisplay .= "</p></td></tr>";
348 }
349
350 //Connect to iSymphony server to query information
351 if($serverRunning && iSymphonyConnect()) {
352        
353   //Get server version
354   if(($versionDisplay = getiSymphonyServerVersion()) === false) {
355     $versionDisplay = "";
356   }
357
358   //Get licensed to name
359   if(($licensedToDisplay = getISymphonyLicenseName("default", "default")) === false) {
360     $licensedToDisplay = "";
361   }
362  
363   //Get license days
364   if(($licenseTrialDaysDisplay = getISymphonyLicenseTrialDays("default", "default")) === false) {
365     $licenseTrialDaysDisplay = "";
366   }
367  
368   //Get license clients
369   if(($licenseClientsDisplay = getISymphonyLicenseClients("default", "default")) === false) {
370     $licenseClientsDisplay = "";
371   }
372  
373   //Get license queues
374   if(($licenseQueuesDisplay = getISymphonyLicenseQueues("default", "default")) === false) {
375     $licenseQueuesDisplay = "";
376   }
377
378   //Build action buttons
379   $reloadServerButton = " <form name=\"isymphony_reload_form\" action=\"config.php?type=setup&display=isymphony$debugUrlAdditions\" method=\"post\">
380                 <input type=\"Submit\" name=\"isymphony_reload\" value=\"Reload\">
381               </form>";
382   $activateLicenseButton = "  <form name=\"isymphony_activate_license_form\" action=\"config.php?type=setup&display=isymphony$debugUrlAdditions\" method=\"post\">
383                   <input type=\"text\" name=\"isymphony_license_key\">
384                   <input type=\"Submit\" name=\"isymphony_activate_license\" value=\"Activate\">
385                 </form>";
386
387   //Close iSymphony connection
388   iSymphonyDisconnect();
389
390 } else {
391   $versionDisplay = "";
392   $licensedToDisplay = "";
393   $licenseTrialDaysDisplay = "";
394   $licenseClientsDisplay = "";
395   $licenseQueuesDisplay = "";
396   $reloadServerButton = "";
397   $activateLicenseButton = "";
398 }
399
400 //Display license activation error if any
401 if($licenseActivationError != "") {
402   $licenseActivationError = " <span style=\"color: #FF0000\">
403                   An error occurred while activating your license:<br>
404                   $licenseActivationError
405                 </span>";
406 }
407
408 $display = "<script language=\"javascript\">
409       <!--
410         
411         function checkForm() {
412           
413           var settingsForm = document.getElementById('isymphony_settings_form');       
414
415           if(settingsForm.elements['isymphony_admin_user_name'].value.length == 0) {
416             alert('Admin User Name cannot be blank.');
417             return false;
418           }
419
420           if(settingsForm.elements['isymphony_admin_password'].value.length == 0) {
421             alert('Admin Password cannot be blank.');
422             return false;
423           }
424
425           if(settingsForm.elements['isymphony_originate_timeout'].value.length == 0) {
426             alert('Originate Timeout cannot be blank.');
427             return false;
428           }
429
430           if(settingsForm.elements['isymphony_originate_timeout'].value != parseInt(settingsForm.elements['isymphony_originate_timeout'].value)) {
431             alert('Originate Timeout must be numeric.');
432             return false;
433           }
434
435           if(settingsForm.elements['isymphony_jabber_port'].value.length == 0) {
436             alert('Jabber Port cannot be blank.');
437             return false;
438           }
439
440           if(settingsForm.elements['isymphony_jabber_port'].value != parseInt(settingsForm.elements['isymphony_jabber_port'].value)) {
441             alert('Jabber Port must be numeric.');
442             return false;
443           }
444
445           return true;
446         }
447       //-->
448       </script>
449       
450       <div class=\"content\">
451         $licenseActivationError
452         <table>
453           <tr><td colspan=\"2\"><h2 id=\"title\">iSymphony</h2></td></tr>
454           <tr><td colspan=\"2\"><h5>Server<hr></h5></td></tr>
455           <tr>
456             <td><a href=\"#\" class=\"info\">Status:<span>Displays if the iSymphony server is running.</span></a></td>
457             <td>$serverRunningDisplay</td>           
458           </tr>
459           <tr>
460             <td><a href=\"#\" class=\"info\">Version:<span>Displays the version of the iSymphony server.</span></a></td>
461             <td>$versionDisplay</td>           
462           </tr>
463           <tr>
464             <td><a href=\"#\" class=\"info\">Reload Server:<span>Reloads the iSymphony server.</span></a>&nbsp&nbsp</td>
465             <td>$reloadServerButton</td>           
466           </tr>
467
468           <tr><td colspan=\"2\"><h5>License<hr></h5></td></tr>
469           <tr>
470             <td><a href=\"#\" class=\"info\">Licensed To:<span>Displays the name of the person or company this server is licensed to.</span></a></td>
471             <td>$licensedToDisplay</td>           
472           </tr>
473           <tr>
474             <td><a href=\"#\" class=\"info\">Trial Days:<span>Displays the number of remaining license trial days.</span></a></td>
475             <td>$licenseTrialDaysDisplay</td>           
476           </tr>
477           <tr>
478             <td><a href=\"#\" class=\"info\">Clients:<span>Displays the number of licensed clients.</span></a></td>
479             <td>$licenseClientsDisplay</td>           
480           </tr>
481           <tr>
482             <td><a href=\"#\" class=\"info\">Queues:<span>Displays the number of licensed queues.</span></a></td>
483             <td>$licenseQueuesDisplay</td>           
484           </tr>
485           <tr>
486             <td><a href=\"#\" class=\"info\">Activate:<span>Activates a license with a given serial key.</span></a></td>
487             <td>$activateLicenseButton</td>           
488           </tr>
489
490           <form name=\"isymphony_settings_form\" id=\"isymphony_settings_form\" action=\"config.php?type=setup&display=isymphony$debugUrlAdditions\" method=\"post\" onsubmit=\"return checkForm();\">
491           <tr><td colspan=\"2\"><h5>Server Settings<hr></h5></td></tr>
492           <tr>
493             <td><a href=\"#\" class=\"info\">Admin User Name:<span>User name used to login to the administration section in the panel.</span></a></td>
494             <td><input size=\"20\" type=\"text\" name=\"isymphony_admin_user_name\" value=\"" . htmlspecialchars($locationInformation['admin_user_name']) . "\"></td>
495           </tr>
496           <tr>
497             <td><a href=\"#\" class=\"info\">Admin Password:<span>Password used to login to the administration section in the panel.</span></a></td>
498             <td><input size=\"20\" type=\"text\" name=\"isymphony_admin_password\" value=\"" . htmlspecialchars($locationInformation['admin_password']) . "\"></td>
499           </tr>
500           <tr>
501             <td><a href=\"#\" class=\"info\">Originate Timeout:<span>Number of milliseconds that the originating extension will be rung when placing a call via the panel before timing out.</span></a></td>
502             <td><input size=\"20\" type=\"text\" name=\"isymphony_originate_timeout\" value=\"" . htmlspecialchars($locationInformation['originate_timeout']) . "\"></td>
503           </tr>
504           <tr>
505             <td><a href=\"#\" class=\"info\">Auto Reload:<span>Tells the server to automatically reload the location when the dial plan is reloaded.</span></a></td>
506             <td><input type=\"checkbox\" name=\"isymphony_auto_reload\"" . (($locationInformation['auto_reload'] == "1") ? " checked" : "") . "></td>
507           </tr>
508           <tr>
509             <td><a href=\"#\" class=\"info\">Enable Page Status:<span>If checked allows you to see paging status on extensions in the panel.</span></a></td>
510             <td><input type=\"checkbox\" name=\"isymphony_page_status_enabled\"" . (($locationInformation['page_status_enabled'] == "1") ? " checked" : "") . "></td>
511           </tr>
512
513           <tr><td colspan=\"2\"><h5>Global Jabber Settings<hr></h5></td></tr>
514           <tr>
515             <td><a href=\"#\" class=\"info\">Host:<span>Jabber host to be used unless otherwise overridden by the extension settings.</span></a></td>
516             <td><input size=\"20\" type=\"text\" name=\"isymphony_jabber_host\" value=\"" . htmlspecialchars($locationInformation['jabber_host']) . "\"></td>
517           </tr>
518           <tr>
519             <td><a href=\"#\" class=\"info\">Domain:<span>Jabber domain to be used unless otherwise overridden by the extension settings.</span></a></td>
520             <td><input size=\"20\" type=\"text\" name=\"isymphony_jabber_domain\" value=\"" . htmlspecialchars($locationInformation['jabber_domain']) . "\"></td>
521           </tr>
522           <tr>
523             <td><a href=\"#\" class=\"info\">Resource:<span>Jabber resource to be used unless otherwise overridden by the extension settings.</span></a></td>
524             <td><input size=\"20\" type=\"text\" name=\"isymphony_jabber_resource\" value=\"" . htmlspecialchars($locationInformation['jabber_resource']) . "\"></td>
525           </tr>
526           <tr>
527             <td><a href=\"#\" class=\"info\">Port:<span>Jabber port to be used unless otherwise overridden by the extension settings.</span></a></td>
528             <td><input size=\"20\" type=\"text\" name=\"isymphony_jabber_port\" value=\"" . htmlspecialchars($locationInformation['jabber_port']) . "\"></td>
529           </tr>
530           <tr>
531             <td colspan=\"2\"><input type=\"Submit\" name=\"isymphony_update_location_settings\" value=\"Submit Changes\"></td>
532           </tr>
533           </form>
534           <tr><td colspan=\"2\"><h5>Module Debug<hr></h5></td></tr>
535           <tr><td><a href=\"config.php?type=setup&display=isymphony&showmoduledebuglog=yes$debugUrlAdditions\">View Debug Log</a></td></tr>
536           <tr><td><a href=\"config.php?type=setup&display=isymphony&showmoduleerrorlog=yes$debugUrlAdditions\">View Error Log</a></td></tr>
537           <tr><td><a href=\"config.php?type=setup&display=isymphony&showmoduledb=yes$debugUrlAdditions\">View Database</a></td></tr>
538           <tr><td colspan=\"2\"><h5>Server Debug<hr></h5></td></tr>
539           <tr><td><a href=\"config.php?type=setup&display=isymphony&showservererrorlog=yes$debugUrlAdditions\">View Error Log</a></td></tr>
540           <tr><td><a href=\"config.php?type=setup&display=isymphony&showservercorelog=yes$debugUrlAdditions\">View Core Log</a></td></tr>
541           <tr><td><a href=\"config.php?type=setup&display=isymphony&showservercommunicationlog=yes$debugUrlAdditions\">View Communication Log</a></td></tr>
542           <tr><td><a href=\"config.php?type=setup&display=isymphony&showserverajexternallog=yes$debugUrlAdditions\">View AMI External Log</a></td></tr>
543           <tr><td><a href=\"config.php?type=setup&display=isymphony&showserverajinternallog=yes$debugUrlAdditions\">View AMI Internal Log</a></td></tr>
544           $debugLogDisplay
545         </table>
546         $databaseDisplay
547       <table>
548         <tr>
549           <td><h5>Description<hr></h5></td>
550         </tr>
551         <tr>
552           <td>
553           <p>This module will automatically sync the iSymphony Configuration with the current FreePBX configuration so that you will not have
554             to manually configure Extension, Profiles, Queues, and Conference Rooms in iSymphony. Any time you add, remove, edit an Extension,
555             Queue, or Conference Room in FreePBX the changes will automatically be applied to iSymphony. You can control what elements will be
556             available in iSymphony by using the check boxes in the iSymphony section of the User/Extension, Queue, and Conference Room pages.
557             By default the profile passwords will be set to \"secret\" but they can be modified on the User/Extension page.
558           </p>
559           <p>
560             Dont forget to register at <a href=\"http://www.i9technologies.com/isymphony\">http://www.i9technologies.com/isymphony</a> to get your free Conductor Edition
561             trial license to experience the full features of iSymphony. You will also get a Free Registered Edition license with 5 clients that is yours for life. If you have a license key you can enter it above.
562           </p>
563             <strong>Note: Queues and Conferences are only available in Conductor Edition.</strong>
564           </td>
565         </tr>
566         <tr>
567           <td><br><h5>Getting Started<hr></h5></td>
568         </tr>
569         <tr>
570           <td>1. Make sure that the FreePBX \"Asterisk API\" module is installed and activated.</td>
571         </tr>
572         <tr>
573           <td>2. Go <a href=\"http://www.i9technologies.com/isymphony\">here</a> and download the iSymphony Server, Client, and User Manual.</td>
574         </tr>
575         <tr>
576           <td>3. If you are using iSymphony 2.1 or higher skip steps 4, 5, and 6.</td>
577         </tr>
578         <tr>
579           <td>4. Open <strong>/etc/amportal.conf</strong></td>
580         </tr>
581         <tr>
582           <td>5. Look for the line <strong>#POST_RELOAD=</strong></td>
583         </tr>
584         <tr>
585           <td>6. Modify it to read <strong>POST_RELOAD=bash /var/www/html/admin/modules/isymphony/post_reload.sh</strong></td>
586         </tr>
587         <tr>
588           <td>7. Follow the Server Installation instruction in the User Manual. Skip steps 3 and 5 as this module will add the appropriate contexts<br>
589             automatically. Also Skip the Administration section in the manual, since this module will automatically configure iSymphony for you, and<br>
590             move on to the Client Installation portion when instructed to do so.
591           </td>
592         </tr>
593         <tr>
594           <td>8. Reload your FreePBX configuration so it can sync the iSymphony configuration with FreePBX.</td>
595         </tr>
596         <tr>
597           <td>9. Move on to the iSymphony Client Installation portion of the manual to start using iSymphony.</td>
598         </tr>
599         <tr>
600           <td>10. If you would like further modification of the iSymphony Server than this module provides see the the Server Configuration section under<br>
601             Administration in the manual on how to connect to the iSymphony Administrator.</td>
602         </tr>
603       </table>
604       <br>
605       <br>
606       For more information please visit <a href=\"http://www.i9technologies.com/isymphony\">http://www.i9technologies.com/isymphony</a>
607       </div>";
608
609 echo $display;
610 echo "<br>";
611 ?>
Note: See TracBrowser for help on using the browser.