Add Call Center Queue Limit

This commit is contained in:
FusionPBX
2026-01-20 10:43:05 -07:00
committed by GitHub
parent 17a9634b14
commit 180046824f
3 changed files with 76 additions and 0 deletions

View File

@@ -433,6 +433,10 @@
$apps[$x]['db'][$y]['fields'][$z]['type'] = "text";
$apps[$x]['db'][$y]['fields'][$z]['description']['en-us'] = "";
$z++;
$apps[$x]['db'][$y]['fields'][$z]['name'] = "queue_limit";
$apps[$x]['db'][$y]['fields'][$z]['type'] = "text";
$apps[$x]['db'][$y]['fields'][$z]['description']['en-us'] = "";
$z++;
$apps[$x]['db'][$y]['fields'][$z]['name'] = "queue_time_base_score";
$apps[$x]['db'][$y]['fields'][$z]['type'] = "text";
$apps[$x]['db'][$y]['fields'][$z]['description']['en-us'] = "";

View File

@@ -1482,6 +1482,32 @@ $text['label-record_template']['zh-cn'] = "记录";
$text['label-record_template']['ja-jp'] = "記録";
$text['label-record_template']['ko-kr'] = "기록";
$text['label-queue_limit']['en-us'] = "Queue Limit";
$text['label-queue_limit']['en-gb'] = "Queue Limit";
$text['label-queue_limit']['ar-eg'] = "حد الصف";
$text['label-queue_limit']['de-at'] = "Warteschlangenlimit";
$text['label-queue_limit']['de-ch'] = "Warteschlangenlimit";
$text['label-queue_limit']['de-de'] = "Warteschlangenlimit";
$text['label-queue_limit']['el-gr'] = "Όριο ουράς";
$text['label-queue_limit']['es-cl'] = "Límite de cola";
$text['label-queue_limit']['es-mx'] = "Límite de cola";
$text['label-queue_limit']['fr-ca'] = "Limite de file d'attente";
$text['label-queue_limit']['fr-fr'] = "Limite de file d'attente";
$text['label-queue_limit']['he-il'] = "גבול תור";
$text['label-queue_limit']['it-it'] = "Limite della coda";
$text['label-queue_limit']['ka-ge'] = "სორო ლიმიტი";
$text['label-queue_limit']['nl-nl'] = "Wachtelimiet";
$text['label-queue_limit']['pl-pl'] = "Limit kolejki";
$text['label-queue_limit']['pt-br'] = "Limite da fila";
$text['label-queue_limit']['pt-pt'] = "Limite da fila";
$text['label-queue_limit']['ro-ro'] = "Limită coadă";
$text['label-queue_limit']['ru-ru'] = "Лимит очереди";
$text['label-queue_limit']['sv-se'] = "Kölimiten";
$text['label-queue_limit']['uk-ua'] = "Ліміт черги";
$text['label-queue_limit']['zh-cn'] = "队列限制";
$text['label-queue_limit']['ja-jp'] = "キュー制限";
$text['label-queue_limit']['ko-kr'] = "큐 제한";
$text['label-queue']['en-us'] = "Queue";
$text['label-queue']['en-gb'] = "Queue";
$text['label-queue']['ar-eg'] = "طابور";
@@ -2964,6 +2990,32 @@ $text['description-record_template']['zh-cn'] = "保存录音。";
$text['description-record_template']['ja-jp'] = "記録を保存します。";
$text['description-record_template']['ko-kr'] = "녹음을 저장합니다.";
$text['description-queue_limit']['en-us'] = "Limit the number of callers allowed to wait in queue.";
$text['description-queue_limit']['en-gb'] = "Limit the number of callers allowed to wait in queue.";
$text['description-queue_limit']['ar-eg'] = "حدد عدد المتصلين المسموح لهم الانتظار في الطابور.";
$text['description-queue_limit']['de-at'] = "Begrenzen Sie die Anzahl der Anrufer, die im Warteschlangenpuffer warten dürfen.";
$text['description-queue_limit']['de-ch'] = "Begrenzen Sie die Anzahl der Anrufer, die im Warteschlangenpuffer warten dürfen.";
$text['description-queue_limit']['de-de'] = "Begrenzen Sie die Anzahl der Anrufer, die im Warteschlangenpuffer warten dürfen.";
$text['description-queue_limit']['el-gr'] = "Ορίστε το όριο των καλεσμένων που επιτρέπεται να περιμένουν στη ουρά.";
$text['description-queue_limit']['es-cl'] = "Limite el número de llamadas permitidas en la cola de espera.";
$text['description-queue_limit']['es-mx'] = "Limita el número de llamadas permitidas en la cola de espera.";
$text['description-queue_limit']['fr-ca'] = "Limitez le nombre d'appelants autorisés à attendre dans la file d'attente.";
$text['description-queue_limit']['fr-fr'] = "Limitez le nombre d'appelants autorisés à attendre dans la file d'attente.";
$text['description-queue_limit']['he-il'] = "הגבל את מספר המתקשרים המותרים לחכות בתור.";
$text['description-queue_limit']['it-it'] = "Limita il numero di chiamanti consentiti in attesa nella coda.";
$text['description-queue_limit']['ka-ge'] = "მიმოიჩნეთ მოძველების რაოდენობა, რომელიც საშუალებელია კოლაში დარჩეს.";
$text['description-queue_limit']['nl-nl'] = "Beperk het aantal aanroepers dat in de wachtrij mag wachten.";
$text['description-queue_limit']['pl-pl'] = "Ogranicz liczbę osób, które mogą czekać w kolejce.";
$text['description-queue_limit']['pt-br'] = "Limite o número de chamadas permitidas na fila de espera.";
$text['description-queue_limit']['pt-pt'] = "Limite o número de chamadas permitidas na fila de espera.";
$text['description-queue_limit']['ro-ro'] = "Limitați numărul de apelanți care pot aștepta în coadă.";
$text['description-queue_limit']['ru-ru'] = "Ограничьте количество звонящих, которые могут ожидать в очереди.";
$text['description-queue_limit']['sv-se'] = "Begränsa antalet anropare som får vänta i kön.";
$text['description-queue_limit']['uk-ua'] = "Обмежте кількість дзвінків, які можуть чекати в черзі.";
$text['description-queue_limit']['zh-cn'] = "限制允许在队列中等待的呼叫者数量.";
$text['description-queue_limit']['ja-jp'] = "キューで待機できる通話者の数を制限します。";
$text['description-queue_limit']['ko-kr'] = "대기열에서 기다릴 수 있는 통화자의 수를 제한합니다.";
$text['description-queue_name']['en-us'] = "Enter the queue name.";
$text['description-queue_name']['en-gb'] = "Enter the queue name.";
$text['description-queue_name']['ar-eg'] = "أدخل اسم قائمة الانتظار.";

View File

@@ -112,6 +112,7 @@
$call_center_tiers = $_POST["call_center_tiers"];
$queue_moh_sound = $_POST["queue_moh_sound"];
$queue_record_enabled = $_POST["queue_record_enabled"];
$queue_limit = $_POST["queue_limit"];
$queue_time_base_score = $_POST["queue_time_base_score"];
$queue_time_base_score_sec = $_POST["queue_time_base_score_sec"];
$queue_max_wait_time = $_POST["queue_max_wait_time"];
@@ -341,6 +342,7 @@
$array['call_center_queues'][0]['queue_record_template'] = $record_template;
$array['call_center_queues'][0]['queue_dialect'] = $queue_dialect;
$array['call_center_queues'][0]['queue_voice'] = $queue_voice;
$array['call_center_queues'][0]['queue_limit'] = $queue_limit;
$array['call_center_queues'][0]['queue_time_base_score'] = $queue_time_base_score;
$array['call_center_queues'][0]['queue_time_base_score_sec'] = $queue_time_base_score_sec;
$array['call_center_queues'][0]['queue_max_wait_time'] = $queue_max_wait_time;
@@ -409,6 +411,11 @@
//build the xml dialplan
$dialplan_xml = "<extension name=\"".xml::sanitize($queue_name)."\" continue=\"\" uuid=\"".xml::sanitize($dialplan_uuid)."\">\n";
if (!empty($queue_limit)) {
$dialplan_xml .= " <condition field=\"destination_number\" expression=\"^(callcenter\+)?".xml::sanitize($queue_extension)."$\" break=\"on-false\">\n";
$dialplan_xml .= " <action application=\"limit\" data=\"hash inbound \${destination_number} ".xml::sanitize($queue_limit)." !NORMAL_CIRCUIT_CONGESTION\"/>\n";
$dialplan_xml .= " </condition>\n";
}
$dialplan_xml .= " <condition field=\"destination_number\" expression=\"^([^#]+#)(.*)\$\" break=\"never\">\n";
$dialplan_xml .= " <action application=\"set\" data=\"caller_id_name=\$2\"/>\n";
$dialplan_xml .= " </condition>\n";
@@ -571,6 +578,7 @@
$sql .= "queue_strategy, ";
$sql .= "queue_moh_sound, ";
$sql .= "queue_record_template, ";
$sql .= "queue_limit, ";
$sql .= "queue_time_base_score, ";
$sql .= "queue_time_base_score_sec, ";
$sql .= "queue_max_wait_time, ";
@@ -614,6 +622,7 @@
$queue_strategy = $row["queue_strategy"];
$queue_moh_sound = $row["queue_moh_sound"];
$queue_record_template = $row["queue_record_template"];
$queue_limit = $row["queue_limit"];
$queue_time_base_score = $row["queue_time_base_score"];
$queue_time_base_score_sec = $row["queue_time_base_score_sec"];
$queue_max_wait_time = $row["queue_max_wait_time"];
@@ -1126,6 +1135,17 @@
echo "</td>\n";
echo "</tr>\n";
echo "<tr>\n";
echo "<td class='vncell' valign='top' align='left' nowrap>\n";
echo " ".$text['label-queue_limit']."\n";
echo "</td>\n";
echo "<td class='vtable' align='left'>\n";
echo " <input class='formfld' type='number' name='queue_limit' maxlength='5' min='0' step='1' value='".escape($queue_limit)."'>\n";
echo "<br />\n";
echo $text['description-queue_limit']."\n";
echo "</td>\n";
echo "</tr>\n";
echo "<tr>\n";
echo "<td class='vncell' valign='top' align='left' nowrap>\n";
echo " ".$text['label-time_base_score']."\n";