CDR - Details: Add button to Transcribe via AI, if enabled.

This commit is contained in:
fusionate
2024-05-21 16:07:44 -06:00
parent 003b6d7aa8
commit e6860a54b9
2 changed files with 103 additions and 3 deletions

View File

@@ -3818,4 +3818,30 @@ $text['label-codec_write']['uk-ua'] = "";
$text['label-codec_write']['zh-cn'] = "";
$text['label-codec_write']['ja-jp'] = "";
$text['label-codec_write']['ko-kr'] = "";
?>
$text['label-text']['en-us'] = "Text";
$text['label-text']['en-gb'] = "Text";
$text['label-text']['ar-eg'] = "نص";
$text['label-text']['de-at'] = "Text";
$text['label-text']['de-ch'] = "Text";
$text['label-text']['de-de'] = "Text";
$text['label-text']['el-gr'] = "Κείμενο";
$text['label-text']['es-cl'] = "Texto";
$text['label-text']['es-mx'] = "Texto";
$text['label-text']['fr-ca'] = "Texte";
$text['label-text']['fr-fr'] = "Texte";
$text['label-text']['he-il'] = "טֶקסט";
$text['label-text']['it-it'] = "Testo";
$text['label-text']['nl-nl'] = "Tekst";
$text['label-text']['pl-pl'] = "Tekst";
$text['label-text']['pt-br'] = "Texto";
$text['label-text']['pt-pt'] = "Texto";
$text['label-text']['ro-ro'] = "Text";
$text['label-text']['ru-ru'] = "Текст";
$text['label-text']['sv-se'] = "Text";
$text['label-text']['uk-ua'] = "текст";
$text['label-text']['zh-cn'] = "文本";
$text['label-text']['ja-jp'] = "文章";
$text['label-text']['ko-kr'] = "텍스트";
?>

View File

@@ -41,6 +41,11 @@
$language = new text;
$text = $language->get();
//add the settings object
$settings = new settings(["domain_uuid" => $_SESSION['domain_uuid'], "user_uuid" => $_SESSION['user_uuid']]);
$transcribe_enabled = $settings->get('transcribe', 'enabled', 'false');
$transcribe_engine = $settings->get('transcribe', 'engine', '');
//get the http values and set them to a variable
if (is_uuid($_REQUEST["id"])) {
$uuid = $_REQUEST["id"];
@@ -72,10 +77,62 @@
$call_flow = trim($row["call_flow"] ?? '');
$direction = trim($row["direction"] ?? '');
$call_direction = trim($row["direction"] ?? '');
$record_path = trim($row["record_path"] ?? '');
$record_name = trim($row["record_name"] ?? '');
$record_transcription = trim($row["record_transcription"] ?? '');
$status = trim($row["status"] ?? '');
}
unset($sql, $parameters, $row);
//transcribe, if enabled
if (
!empty($_GET['action']) &&
$_GET['action'] == 'transcribe' &&
$transcribe_enabled == 'true' &&
!empty($transcribe_engine) &&
empty($record_transcription) &&
!empty($record_path) &&
!empty($record_name) &&
file_exists($record_path.'/'.$record_name)
) {
//add the transcribe object
$transcribe = new transcribe($settings);
//audio to text - get the transcription from the audio file
$transcribe->audio_path = $record_path;
$transcribe->audio_filename = $record_name;
$record_transcription = $transcribe->transcribe();
//build call recording data array
if (!empty($record_transcription)) {
$array['xml_cdr'][0]['xml_cdr_uuid'] = $uuid;
$array['xml_cdr'][0]['record_transcription'] = $record_transcription;
}
//update the checked rows
if (is_array($array) && @sizeof($array) != 0) {
//add temporary permissions
$p = new permissions;
$p->add('xml_cdr_edit', 'temp');
//remove record_path, record_name and record_length
$database = new database;
$database->app_name = 'xml_cdr';
$database->app_uuid = '4a085c51-7635-ff03-f67b-86e834422848';
$database->save($array, false);
$message = $database->message;
unset($array);
//remove the temporary permissions
$p->delete('xml_cdr_edit', 'temp');
//set message
message::add($text['message-audio_transcribed']);
}
//redirect
header('Location: '.$_SERVER['PHP_SELF'].'?id='.$uuid);
exit;
}
//get the cdr json from the database
if (empty($json_string)) {
$sql = "select * from v_xml_cdr_json ";
@@ -320,12 +377,15 @@
//page title and description
echo "<table width='100%' border='0' cellpadding='0' cellspacing='0'>\n";
echo "<tr>\n";
echo "<td width='30%' align='left' valign='top' nowrap='nowrap'><b>".$text['title2']."</b></td>\n";
echo "<td width='30%' align='left' valign='top' nowrap='nowrap'><b>".$text['title2']."</b><br><br></td>\n";
echo "<td width='70%' align='right' valign='top'>\n";
echo button::create(['type'=>'button','label'=>$text['button-back'],'icon'=>$_SESSION['theme']['button_icon_back'],'style'=>'margin-left: 15px;','link'=>'xml_cdr.php'.(!empty($_SESSION['xml_cdr']['last_query']) ? '?'.urlencode($_SESSION['xml_cdr']['last_query']) : null)]);
echo button::create(['type'=>'button','label'=>$text['button-back'],'icon'=>$_SESSION['theme']['button_icon_back'],'link'=>'xml_cdr.php'.(!empty($_SESSION['xml_cdr']['last_query']) ? '?'.urlencode($_SESSION['xml_cdr']['last_query']) : null)]);
if ($_SESSION['cdr']['call_log_enabled']['boolean'] == 'true' && isset($log_content) && !empty($log_content)) {
echo button::create(['type'=>'button','label'=>$text['button-call_log'],'icon'=>$_SESSION['theme']['button_icon_search'],'style'=>'margin-left: 15px;','link'=>'xml_cdr_log.php?id='.$uuid]);
}
if ($transcribe_enabled == 'true' && !empty($transcribe_engine) && empty($record_transcription)) {
echo button::create(['type'=>'button','label'=>$text['button-transcribe'],'icon'=>'quote-right','id'=>'btn_transcribe','name'=>'btn_transcribe','collapse'=>'hide-xs','style'=>'margin-left: 15px;','onclick'=>"window.location.href='?id=".$uuid."&action=transcribe';"]);
}
echo "</td>\n";
echo "</tr>\n";
echo "<tr>\n";
@@ -459,6 +519,20 @@
echo "</table>";
echo "<br /><br />\n";
//transcription, if enabled
if ($transcribe_enabled == 'true' && !empty($transcribe_engine) && !empty($record_transcription)) {
echo "<b>".$text['label-transcription']."</b><br>\n";
echo "<table width='100%' border='0' cellpadding='0' cellspacing='0'>\n";
echo "<tr>\n";
echo " <th>".$text['label-text']."</th>\n";
echo "</tr>\n";
echo "<tr >\n";
echo " <td valign='top' class='".$row_style[0]."'>".escape($record_transcription)."</td>\n";
echo "</tr>\n";
echo "</table>";
echo "<br /><br />\n";
}
//call stats
if (permission_exists('xml_cdr_call_stats')) {
$c = 0;