From a768bb8bc1a23c4cb2f115c7e8b07d84cf3b8ad0 Mon Sep 17 00:00:00 2001 From: FusionPBX Date: Thu, 15 Jan 2026 12:53:54 -0700 Subject: [PATCH] Add Call Disposition --- app/xml_cdr/app_config.php | 1 - app/xml_cdr/app_languages.php | 27 +++++++++++++++++++++++++++ app/xml_cdr/xml_cdr_details.php | 16 ++++++++++++---- 3 files changed, 39 insertions(+), 5 deletions(-) diff --git a/app/xml_cdr/app_config.php b/app/xml_cdr/app_config.php index 81db7147cf..1acf2b6b30 100644 --- a/app/xml_cdr/app_config.php +++ b/app/xml_cdr/app_config.php @@ -224,7 +224,6 @@ $apps[$x]['permissions'][$y]['groups'][] = "superadmin"; $y++; $apps[$x]['permissions'][$y]['name'] = "xml_cdr_call_disposition"; - $apps[$x]['permissions'][$y]['groups'][] = "admin"; $apps[$x]['permissions'][$y]['groups'][] = "superadmin"; $y++; $apps[$x]['permissions'][$y]['name'] = "xml_cdr_hangup_cause"; diff --git a/app/xml_cdr/app_languages.php b/app/xml_cdr/app_languages.php index 88af48411d..007090e4f0 100644 --- a/app/xml_cdr/app_languages.php +++ b/app/xml_cdr/app_languages.php @@ -1106,6 +1106,33 @@ $text['label-status']['zh-cn'] = "地位"; $text['label-status']['ja-jp'] = "スターテス"; $text['label-status']['ko-kr'] = "상태"; +$text['label-call_disposition']['en-us'] = "Call Disposition"; +$text['label-call_disposition']['en-gb'] = "Call Disposition"; +$text['label-call_disposition']['ar-eg'] = "تحديد مكالمة"; +$text['label-call_disposition']['de-at'] = "Anrufverlauf"; +$text['label-call_disposition']['de-ch'] = "Anrufverlauf"; +$text['label-call_disposition']['de-de'] = "Anrufverlauf"; +$text['label-call_disposition']['el-gr'] = "Αποτέλεσμα κλήσης"; +$text['label-call_disposition']['es-cl'] = "Disposición de llamada"; +$text['label-call_disposition']['es-mx'] = "Disposición de llamada"; +$text['label-call_disposition']['fr-ca'] = "Disposition d'appel"; +$text['label-call_disposition']['fr-fr'] = "Disposition d'appel"; +$text['label-call_disposition']['he-il'] = "תוצאות קרייה"; +$text['label-call_disposition']['it-it'] = "Esito chiamata"; +$text['label-call_disposition']['ka-ge'] = "სარეკვეთო შედეგი"; +$text['label-call_disposition']['nl-nl'] = "Gespreksafhandeling"; +$text['label-call_disposition']['pl-pl'] = "Rozwiązanie połączenia"; +$text['label-call_disposition']['pt-br'] = "Disposição de chamada"; +$text['label-call_disposition']['pt-pt'] = "Disposição de chamada"; +$text['label-call_disposition']['ro-ro'] = "Dispoziție apel"; +$text['label-call_disposition']['ru-ru'] = "Результат звонка"; +$text['label-call_disposition']['sv-se'] = "Anropshantering"; +$text['label-call_disposition']['uk-ua'] = "Результат дзвінка"; +$text['label-call_disposition']['tr-tr'] = "Arayüz sonucu"; +$text['label-call_disposition']['zh-cn'] = "通话处理"; +$text['label-call_disposition']['ja-jp'] = "通話処理"; +$text['label-call_disposition']['ko-kr'] = "통화 처리"; + $text['label-start_range']['en-us'] = "Start Range"; $text['label-start_range']['en-gb'] = "Start Range"; $text['label-start_range']['ar-eg'] = "نطاق البداية"; diff --git a/app/xml_cdr/xml_cdr_details.php b/app/xml_cdr/xml_cdr_details.php index 29fb1ade9c..955797b3ac 100644 --- a/app/xml_cdr/xml_cdr_details.php +++ b/app/xml_cdr/xml_cdr_details.php @@ -38,8 +38,12 @@ $language = new text; $text = $language->get(); +//get variables from the session + $domain_uuid = $_SESSION['domain_uuid']; + $user_uuid = $_SESSION['user_uuid']; + //add the settings object - $settings = new settings(["database" => $database, "domain_uuid" => $_SESSION['domain_uuid'], "user_uuid" => $_SESSION['user_uuid']]); + $settings = new settings(["database" => $database, "domain_uuid" => $domain_uuid, "user_uuid" => $user_uuid]); $transcribe_enabled = $settings->get('transcribe', 'enabled', false); $transcribe_engine = $settings->get('transcribe', 'engine', ''); $call_log_enabled = $settings->get('cdr', 'call_log_enabled', false); @@ -79,6 +83,7 @@ $record_path = trim($row["record_path"] ?? ''); $record_name = trim($row["record_name"] ?? ''); $record_transcription = trim($row["record_transcription"] ?? ''); + $call_disposition = trim($row["call_disposition"] ?? ''); $status = trim($row["status"] ?? ''); } unset($sql, $parameters, $row); @@ -90,13 +95,13 @@ file_exists($record_path.'/'.$record_name)) { //prepare the params - $params['domain_uuid'] = $_SESSION['domain_uuid']; + $params['domain_uuid'] = $domain_uuid; $params['xml_cdr_uuid'] = $uuid; $params['call_direction'] = $call_direction; //add the recording to the transcribe queue $array['transcribe_queue'][$x]['transcribe_queue_uuid'] = uuid(); - $array['transcribe_queue'][$x]['domain_uuid'] = $_SESSION['domain_uuid']; + $array['transcribe_queue'][$x]['domain_uuid'] = $domain_uuid; $array['transcribe_queue'][$x]['hostname'] = gethostname(); $array['transcribe_queue'][$x]['transcribe_status'] = 'pending'; $array['transcribe_queue'][$x]['transcribe_app_class'] = 'call_recordings'; @@ -277,7 +282,7 @@ //build the call flow summary array $xml_cdr = new xml_cdr(["database" => $database, "settings" => $settings, "destinations" => $destinations]); - $xml_cdr->domain_uuid = $_SESSION['domain_uuid']; + $xml_cdr->domain_uuid = $domain_uuid; $xml_cdr->call_direction = $call_direction; //used to determine when the call is outbound $xml_cdr->status = $status; //used to determine when the call is outbound if (empty($call_flow)) { @@ -388,6 +393,9 @@ $summary_array['start'] = escape($start_stamp); $summary_array['end'] = escape($end_stamp); $summary_array['duration'] = escape(gmdate("G:i:s", (int)$duration)); + if (permission_exists('xml_cdr_call_disposition')) { + $summary_array['call_disposition'] = escape($call_disposition); + } if (isset($status)) { $summary_array['status'] = escape($status); }