diff options
author | Mark Crane <mcrane@pfsense.org> | 2008-12-06 11:02:28 +0000 |
---|---|---|
committer | Mark Crane <mcrane@pfsense.org> | 2008-12-06 11:02:28 +0000 |
commit | 1022bb41bcb1c5e42bd088c93bab4e1d99df3b87 (patch) | |
tree | f4479dc830091175abe8424942a0fac604e0eb80 /packages/freeswitch/freeswitch_recordings.tmp | |
parent | dedba3abe3b07e7447c008e3b4c4aca01c206a31 (diff) | |
download | pfsense-packages-1022bb41bcb1c5e42bd088c93bab4e1d99df3b87.tar.gz pfsense-packages-1022bb41bcb1c5e42bd088c93bab4e1d99df3b87.tar.bz2 pfsense-packages-1022bb41bcb1c5e42bd088c93bab4e1d99df3b87.zip |
Update FreeSWITCH package v0.3 added IVR, Recordings, enhanced GUI for Dialplan, Gateways, Public. Updated FreeSWITCH to revision 10638.
Diffstat (limited to 'packages/freeswitch/freeswitch_recordings.tmp')
-rw-r--r-- | packages/freeswitch/freeswitch_recordings.tmp | 315 |
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&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&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&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&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&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'];?> + </a> + </td> + <td class="listbg" ondblclick="document.location='freeswitch_recordings_edit.php?id=<?=$i;?>';"> + <font color="#FFFFFF"><?=htmlspecialchars($recordingent['descr']);?> + </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> |