diff --git a/app/fax/fax_send.php b/app/fax/fax_send.php index 8945231095..cbd205bb87 100644 --- a/app/fax/fax_send.php +++ b/app/fax/fax_send.php @@ -29,6 +29,8 @@ if (!isset($included)) { $included = false; } +if (stristr(PHP_OS, 'WIN')) { $IS_WINDOWS = true; } else { $IS_WINDOWS = false; } + if (!$included) { include "root.php"; @@ -97,6 +99,22 @@ if (!$included) { } +function correct_path($p) { + global $IS_WINDOWS; + if ($IS_WINDOWS) { + return str_replace('/', '\\', $p); + } + return $p; +} + +function gs_cmd($args) { + global $IS_WINDOWS; + if ($IS_WINDOWS) { + return 'gswin32c '.$args; + } + return 'gs '.$args; +} + //get the fax extension if (strlen($fax_extension) > 0) { //set the fax directories. example /usr/local/freeswitch/storage/fax/329/inbox @@ -260,11 +278,17 @@ if (!$included) { //convert uploaded pdf to tif if (file_exists($dir_fax_temp.'/'.$fax_name.'.pdf')) { chdir($dir_fax_temp); - exec("gs -q -sDEVICE=tiffg3 -r".$gs_r." -g".$gs_g." -dNOPAUSE -sOutputFile=".$fax_name.".tif -- ".$fax_name.".pdf -c quit"); //convert pdf to tif + + //convert pdf to tif + $cmd = gs_cmd("-q -sDEVICE=tiffg3 -r".$gs_r." -g".$gs_g." -dNOPAUSE -sOutputFile=".correct_path($fax_name).".tif -- ".correct_path($fax_name).".pdf -c quit"); + // echo($cmd . "
\n"); + exec($cmd); @unlink($dir_fax_temp.'/'.$fax_name.'.pdf'); } - $tif_page_count = exec("tiffinfo ".$dir_fax_temp.'/'.$fax_name.".tif | grep \"Page Number\" | grep -c \"P\""); + $cmd = "tiffinfo ".correct_path($dir_fax_temp.'/'.$fax_name).".tif | grep \"Page Number\" | grep -c \"P\""; + // echo($cmd . "
\n"); + $tif_page_count = exec($cmd); if ($tif_page_count != '') { $fax_page_count += $tif_page_count; } @@ -433,7 +457,9 @@ if (!$included) { //convert pdf to tif, add to array of pages, delete pdf if (file_exists($dir_fax_temp.'/'.$fax_instance_uuid.'_cover.pdf')) { chdir($dir_fax_temp); - exec("gs -q -sDEVICE=tiffg3 -r".$gs_r." -g".$gs_g." -dNOPAUSE -sOutputFile=".$fax_instance_uuid."_cover.tif -- ".$fax_instance_uuid."_cover.pdf -c quit"); + $cmd = gs_cmd("-q -sDEVICE=tiffg3 -r".$gs_r." -g".$gs_g." -dNOPAUSE -sOutputFile=".correct_path($fax_instance_uuid)."_cover.tif -- ".correct_path($fax_instance_uuid)."_cover.pdf -c quit"); + // echo($cmd . "
\n"); + exec($cmd); if (is_array($tif_files) && sizeof($tif_files) > 0) { array_unshift($tif_files, $dir_fax_temp.'/'.$fax_instance_uuid.'_cover.tif'); } @@ -448,19 +474,46 @@ if (!$included) { if (is_array($tif_files) && sizeof($tif_files) > 0) { $cmd = "tiffcp -c none "; foreach ($tif_files as $tif_file) { - $cmd .= $tif_file.' '; + $cmd .= correct_path($tif_file) . ' '; } - $cmd .= $dir_fax_temp.'/'.$fax_instance_uuid.'.tif'; + $cmd .= correct_path($dir_fax_temp.'/'.$fax_instance_uuid.'.tif'); + //echo($cmd . "
\n"); exec($cmd); + foreach ($tif_files as $tif_file) { @unlink($tif_file); } + //generate pdf (a work around, as tiff2pdf was improperly inverting the colors) - exec("tiff2pdf -u i -p ".$fax_page_size." -w ".$page_width." -l ".$page_height." -f -o ".$dir_fax_temp.'/'.$fax_instance_uuid.".pdf ".$dir_fax_temp.'/'.$fax_instance_uuid.".tif"); + $cmd = 'tiff2pdf -u i -p '.$fax_page_size. + ' -w '.$page_width. + ' -l '.$page_height. + ' -f -o '. + correct_path($dir_fax_temp.'/'.$fax_instance_uuid.'.pdf').' '. + correct_path($dir_fax_temp.'/'.$fax_instance_uuid.'.tif'); + // echo($cmd . "
\n"); + exec($cmd); + chdir($dir_fax_temp); - exec("gs -q -sDEVICE=tiffg3 -r".$gs_r." -g".$gs_g." -dNOPAUSE -sOutputFile=".$fax_instance_uuid."_temp.tif -- ".$fax_instance_uuid.".pdf -c quit"); //convert pdf to tif + + //convert pdf to tif + $cmd = gs_cmd('-q -sDEVICE=tiffg3 -r'.$gs_r.' -g'.$gs_g.' -dNOPAUSE -sOutputFile='. + correct_path($fax_instance_uuid.'_temp.tif'). + ' -- '.$fax_instance_uuid.'.pdf -c quit'); + // echo($cmd . "
\n"); + exec($cmd); + @unlink($dir_fax_temp.'/'.$fax_instance_uuid.".pdf"); - exec("tiff2pdf -u i -p ".$fax_page_size." -w ".$page_width." -l ".$page_height." -f -o ".$dir_fax_temp.'/'.$fax_instance_uuid.".pdf ".$dir_fax_temp.'/'.$fax_instance_uuid."_temp.tif"); + + $cmd = 'tiff2pdf -u i -p '.$fax_page_size. + ' -w '.$page_width. + ' -l '.$page_height. + ' -f -o '. + correct_path($dir_fax_temp.'/'.$fax_instance_uuid.'.pdf').' '. + correct_path($dir_fax_temp.'/'.$fax_instance_uuid.'_temp.tif'); + // echo($cmd . "
\n"); + exec($cmd); + @unlink($dir_fax_temp.'/'.$fax_instance_uuid."_temp.tif"); } else { @@ -568,9 +621,12 @@ if (!$included) { sleep(5); //move the generated tif (and pdf) files to the sent directory - exec("cp ".$dir_fax_temp.'/'.$fax_instance_uuid.".tif ".$dir_fax_sent.'/'.$fax_instance_uuid.".tif"); + if (file_exists($dir_fax_temp.'/'.$fax_instance_uuid.".tif")) { + copy($dir_fax_temp.'/'.$fax_instance_uuid.".tif", $dir_fax_sent.'/'.$fax_instance_uuid.".tif"); + } + if (file_exists($dir_fax_temp.'/'.$fax_instance_uuid.".pdf")) { - exec("cp ".$dir_fax_temp.'/'.$fax_instance_uuid.".pdf ".$dir_fax_sent.'/'.$fax_instance_uuid.".pdf"); + copy($dir_fax_temp.'/'.$fax_instance_uuid.".pdf ", $dir_fax_sent.'/'.$fax_instance_uuid.".pdf"); } if (!$included) {