aboutsummaryrefslogtreecommitdiffstats
path: root/packages/freeswitch/freeswitch_recordings.tmp
diff options
context:
space:
mode:
Diffstat (limited to 'packages/freeswitch/freeswitch_recordings.tmp')
-rw-r--r--packages/freeswitch/freeswitch_recordings.tmp315
1 files changed, 315 insertions, 0 deletions
diff --git a/packages/freeswitch/freeswitch_recordings.tmp b/packages/freeswitch/freeswitch_recordings.tmp
new file mode 100644
index 00000000..53c285fe
--- /dev/null
+++ b/packages/freeswitch/freeswitch_recordings.tmp
@@ -0,0 +1,315 @@
+<?php
+/* $Id$ */
+/*
+ freeswitch_recordings.php
+ Copyright (C) 2008 Mark J Crane
+ All rights reserved.
+
+ FreeSWITCH (TM)
+ http://www.freeswitch.org/
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+
+ THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
+ AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
+ OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+*/
+
+require("guiconfig.inc");
+require("/usr/local/pkg/freeswitch.inc");
+
+$recording_dir = '/usr/local/freeswitch/recordings/';
+
+if (($_GET['a'] == "download") && file_exists($recording_dir.$_GET['filename'])) {
+ session_cache_limiter('public');
+ $fd = fopen($recording_dir.$_GET['filename'], "rb");
+ if ($_GET['t'] == "bin") {
+ header("Content-Type: application/force-download");
+ header("Content-Type: application/octet-stream");
+ header("Content-Type: application/download");
+ header("Content-Description: File Transfer");
+ header('Content-Disposition: attachment; filename="'.$_GET['filename'].'"');
+ }
+ else {
+ header("Content-Type: audio/x-wav");
+ }
+ header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
+ header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Date in the past
+ header("Content-Length: " . filesize($recording_dir.$_GET['filename']));
+ fpassthru($fd);
+ exit;
+}
+else {
+ //echo $recording_dir.$_GET['filename'];
+}
+
+
+$a_recordings = &$config['installedpackages']['freeswitchrecordings']['config'];
+
+
+if ($_GET['act'] == "del") {
+ if ($_GET['type'] == 'recordings') {
+ if ($a_recordings[$_GET['id']]) {
+ unlink('/usr/local/freeswitch/recordings/'.$a_recordings[$_GET['id']]['filename']);
+ unset($a_recordings[$_GET['id']]);
+ write_config();
+ header("Location: freeswitch_recordings.php");
+ exit;
+ }
+ }
+}
+
+$pgtitle = "FreeSWITCH: Recordings";
+include("head.inc");
+
+?>
+
+<script>
+function EvalSound(soundobj) {
+ var thissound= eval("document."+soundobj);
+ thissound.Play();
+}
+</script>
+
+
+
+<body link="#0000CC" vlink="#0000CC" alink="#0000CC">
+<?php include("fbegin.inc"); ?>
+<p class="pgtitle"><?=$pgtitle?></p>
+
+<div id="mainlevel">
+<table width="100%" border="0" cellpadding="0" cellspacing="0">
+<tr><td class="tabnavtbl">
+<?php
+
+ $tab_array = array();
+ $tab_array[] = array(gettext("Settings"), false, "/pkg_edit.php?xml=freeswitch.xml&amp;id=0");
+ $tab_array[] = array(gettext("Dialplan"), false, "/freeswitch/freeswitch_dialplan_includes.php");
+ $tab_array[] = array(gettext("Extensions"), false, "/pkg.php?xml=freeswitch_extensions.xml");
+ $tab_array[] = array(gettext("External"), false, "/pkg_edit.php?xml=freeswitch_external.xml&amp;id=0");
+ $tab_array[] = array(gettext("Gateways"), false, "/freeswitch/freeswitch_gateways.php");
+ $tab_array[] = array(gettext("Internal"), false, "/pkg_edit.php?xml=freeswitch_internal.xml&amp;id=0");
+ $tab_array[] = array(gettext("IVR"), false, "/freeswitch/freeswitch_ivr.php");
+ $tab_array[] = array(gettext("Modules"), false, "/pkg_edit.php?xml=freeswitch_modules.xml&amp;id=0");
+ $tab_array[] = array(gettext("Public"), false, "/freeswitch/freeswitch_public_includes.php");
+ $tab_array[] = array(gettext("Rec"), true, "/freeswitch/freeswitch_recordings.php");
+ $tab_array[] = array(gettext("Status"), false, "/freeswitch/freeswitch_status.php");
+ $tab_array[] = array(gettext("Vars"), false, "/pkg_edit.php?xml=freeswitch_vars.xml&amp;id=0");
+ display_top_tabs($tab_array);
+
+?>
+</td></tr>
+</table>
+
+<table width="100%" border="0" cellpadding="0" cellspacing="0">
+ <tr>
+ <td class="tabcont" >
+
+<form action="freeswitch_recordings.php" method="post" name="iform" id="iform">
+<?php
+
+
+//build a list of recordings from the config.xml
+$config_recording_list = '';
+$i = 0;
+if (count($a_recordings) > 0) {
+ foreach ($a_recordings as $recordingent) {
+ $config_recording_list .= $recordingent['filename']."|";
+ $i++;
+ }
+}
+
+
+
+$config_change = 0;
+if (is_dir($recording_dir)) {
+ if ($dh = opendir($recording_dir)) {
+ while (($file = readdir($dh)) !== false) {
+ if (filetype($recording_dir . $file) == "file") {
+
+ if (strpos($config_recording_list, $file) === false) {
+
+ //$handle = fopen($recording_dir.$file,'rb');
+ //$file_content = fread($handle,filesize($recording_dir.$file));
+ //fclose($handle);
+
+ $a_file = split("\.", $file);
+
+ $recordingent = array();
+ $recordingent['filename'] = $file;
+ $recordingent['recordingname'] = $a_file[0];
+ //$recordingent['filecontent'] = base64_encode($file_content);
+ $recordingent['descr'] = 'Auto';
+
+ $a_recordings[] = $recordingent;
+ write_config();
+
+ unset($file_content);
+
+ }
+ else {
+ //echo "The file was found.<br/>";
+ }
+
+ }
+ }
+ closedir($dh);
+ }
+}
+
+
+
+
+$i = 0;
+foreach ($a_recordings as $recordingent) {
+
+ if (!is_file($recording_dir.$recordingent['filename'])) {
+ //echo "not found: ".$recordingent['filename']."<br />";
+
+ //recording not found restore the file from the config.xml
+ $file_content = $recordingent['filecontent'];
+ $handle = fopen($recording_dir.$recordingent['filename'],'w');
+ fwrite ($handle, base64_decode($file_content));
+ unset($file_content);
+ fclose($handle);
+ $recordingent['filecontent'] = base64_encode($file_content);
+
+ // loop through recordings in the config.xml
+ // if the file does not exist remove it from the file system.
+ //unset($a_recordings[$i]);
+
+ $config_change = 1;
+ }
+ else {
+ //echo "found: ".$recordingent['filename']."<br />";
+ }
+
+$i++;
+}
+
+
+if ($config_change == 1) {
+ write_config();
+ $config_change = 0;
+}
+
+//if ($savemsg) print_info_box($savemsg);
+//if (file_exists($d_hostsdirty_path)): echo"<p>";
+//print_info_box_np("The FreeSWITCH recordings have been changed.<br>You must apply the changes in order for them to take effect.");
+//echo"<br />";
+//endif;
+
+?>
+ <table width="100%" border="0" cellpadding="6" cellspacing="0">
+ <tr>
+ <td><p><span class="vexpl"><span class="red"><strong>Note:<br>
+ </strong></span>
+ To make a recording dial extension 732673 (record) or you can make a
+ 16bit 8khz/16khz Mono WAV file then copy it to the
+ following directory then refresh the page to play it back.
+ Click on the 'Filename' to download it or the 'Recording Name' to
+ play the audio.
+ <br>
+ <br>
+ /usr/local/freeswitch/recordings/
+ </span></p></td>
+ </tr>
+ </table>
+ <br />
+
+ <table width="100%" border="0" cellpadding="0" cellspacing="0">
+ <tr>
+ <td width="20%" class="listhdrr">Filename (download)</td>
+ <td width="25%" class="listhdrr">Recording Name (play)</td>
+ <td width="25%" class="listhdr">Description</td>
+ <td width="10%" class="list">
+ <!--
+ <table border="0" cellspacing="0" cellpadding="1">
+ <tr>
+ <td width="17"></td>
+ <td valign="middle"><a href="freeswitch_recordings_edit.php"><img src="/themes/<?= $g['theme']; ?>/images/icons/icon_plus.gif" width="17" height="17" border="0"></a></td>
+ </tr>
+ </table>
+ -->
+ </td>
+ </tr>
+
+ <?php $i = 0; foreach ($a_recordings as $recordingent): ?>
+ <tr>
+ <td class="listlr" ondblclick="document.location='freeswitch_recordings_edit.php?id=<?=$i;?>'">
+ <a href="freeswitch_recordings.php?a=download&t=bin&filename=<?=$recordingent['filename'];?>">
+ <?=$recordingent['filename']?>
+ </a>
+ </td>
+ <td class="listr" ondblclick="document.location='freeswitch_recordings_edit.php?id=<?=$i;?>';">
+ <a href="javascript:void(0)" onclick="window.open('freeswitch_recordings_play.php?a=download&t=wav&filename=<?=$recordingent['filename'];?>', 'play',' width=300,height=40,menubar=no,status=no,toolbar=no')">
+ <?=$recordingent['recordingname'];?>&nbsp;
+ </a>
+ </td>
+ <td class="listbg" ondblclick="document.location='freeswitch_recordings_edit.php?id=<?=$i;?>';">
+ <font color="#FFFFFF"><?=htmlspecialchars($recordingent['descr']);?>&nbsp;
+ </td>
+ <td valign="middle" nowrap class="list">
+ <table border="0" cellspacing="0" cellpadding="1">
+ <tr>
+ <td valign="middle"><a href="freeswitch_recordings_edit.php?id=<?=$i;?>"><img src="/themes/<?= $g['theme']; ?>/images/icons/icon_e.gif" width="17" height="17" border="0"></a></td>
+ <td><a href="freeswitch_recordings.php?type=recordings&act=del&id=<?=$i;?>" onclick="return confirm('Do you really want to delete this recording?')"><img src="/themes/<?= $g['theme']; ?>/images/icons/icon_x.gif" width="17" height="17" border="0"></a></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <?php $i++; endforeach; ?>
+ <!--
+ <tr>
+ <td class="list" colspan="3"></td>
+ <td class="list">
+ <table border="0" cellspacing="0" cellpadding="1">
+ <tr>
+ <td width="17"></td>
+ <td valign="middle"><a href="freeswitch_recordings_edit.php"><img src="/themes/<?= $g['theme']; ?>/images/icons/icon_plus.gif" width="17" height="17" border="0"></a></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ -->
+
+ <tr>
+ <td class="list" colspan="3"></td>
+ <td class="list"></td>
+ </tr>
+ </table>
+
+</form>
+
+<br>
+<br>
+<br>
+<br>
+<br>
+<br>
+
+</td>
+</tr>
+</table>
+
+</div>
+
+
+<?php include("fend.inc"); ?>
+</body>
+</html>