New feature: Caller id number startswith (#6987)

* Destination Condition for CID Starts With added

* Translations for CID Starts with added

* changed "startswith" to prefix in app_languages

* added prefix where it needs to be

* Update destination_edit.php
This commit is contained in:
Antonio Fernandez 2024-05-29 13:32:51 -04:00 committed by GitHub
parent 08a7bb3d8e
commit cf8087916b
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 47 additions and 4 deletions

View File

@ -1119,6 +1119,32 @@ $text['option-caller_id_number']['zh-cn'] = "来电显示号码";
$text['option-caller_id_number']['ja-jp'] = "発信者番号";
$text['option-caller_id_number']['ko-kr'] = "발신자 ID 번호";
$text['option-caller_id_number_prefix']['en-us'] = "Caller ID Number (Prefix)";
$text['option-caller_id_number_prefix']['en-gb'] = "Caller ID Number (Prefix)";
$text['option-caller_id_number_prefix']['ar-eg'] = "(ابدا ب) رقم المتصل";
$text['option-caller_id_number_prefix']['de-at'] = "Anruferkennung (Nummer) (Beginnt mit)";
$text['option-caller_id_number_prefix']['de-ch'] = "Anruferkennung (Nummer) (Beginnt mit)";
$text['option-caller_id_number_prefix']['de-de'] = "Anruferkennung (Nummer) (Beginnt mit)";
$text['option-caller_id_number_prefix']['el-gr'] = "Αριθμός αναγνώρισης καλούντος (Ξεκινάει με)";
$text['option-caller_id_number_prefix']['es-cl'] = "Número de Caller ID (Comienza con)";
$text['option-caller_id_number_prefix']['es-mx'] = "Número de Caller ID (Comienza con)";
$text['option-caller_id_number_prefix']['fr-ca'] = "Numéro d'identification de l'appelant. (Commence avec)";
$text['option-caller_id_number_prefix']['fr-fr'] = "Numéro d'identification de l'appelant. (Commence avec)";
$text['option-caller_id_number_prefix']['he-il'] = "(מתחיל עם) מספר זיהוי מתקשר";
$text['option-caller_id_number_prefix']['it-it'] = "ID Numero Chiamante (Inizia con)";
$text['option-caller_id_number_prefix']['nl-nl'] = "CID Nummer (Begint met)";
$text['option-caller_id_number_prefix']['pl-pl'] = "Prezentacja numeru dzwoniącego (Zaczynać z)";
$text['option-caller_id_number_prefix']['pt-br'] = "Número do discador (Começa com)";
$text['option-caller_id_number_prefix']['pt-pt'] = "Número do Chamador (Começa com)";
$text['option-caller_id_number_prefix']['ro-ro'] = "Numărul de identificare a apelantului (Incepe cu)";
$text['option-caller_id_number_prefix']['ru-ru'] = "Идентификационный номер (Caller ID) вызывающего абонента (Начинается с)";
$text['option-caller_id_number_prefix']['sv-se'] = "Caller ID Nummer (Börjar med)";
$text['option-caller_id_number_prefix']['uk-ua'] = "Caller ID Номер (Починається з)";
$text['option-caller_id_number_prefix']['tr-tr'] = "Arayanın Kimlik Numarası (İle başlar)";
$text['option-caller_id_number_prefix']['zh-cn'] = "来电显示号码 (以。。开始)";
$text['option-caller_id_number_prefix']['ja-jp'] = "発信者番号 (始まり)";
$text['option-caller_id_number_prefix']['ko-kr'] = "발신자 ID 번호 (다음으로 시작)";
$text['label-destination_actions']['en-us'] = "Actions";
$text['label-destination_actions']['en-gb'] = "Actions";
$text['label-destination_actions']['ar-eg'] = "الأفعال";

View File

@ -127,7 +127,7 @@
$i=0;
foreach($destination_conditions as $row) {
if (isset($row['condition_expression']) && !empty($row['condition_expression'])) {
if ($row['condition_field'] == 'caller_id_number') {
if ($row['condition_field'] == 'caller_id_number' || $row['condition_field'] == 'caller_id_number_prefix') {
$row['condition_expression'] = preg_replace('#[^\+0-9\*]#', '', $row['condition_expression']);
$action_array = explode(":", $row['condition_action'], 2);
$conditions[$i]['condition_field'] = $row['condition_field'];
@ -483,7 +483,12 @@
}
$dialplan["dialplan_xml"] .= " <condition regex=\"all\" break=\"never\">\n";
$dialplan["dialplan_xml"] .= " <regex field=\"".$dialplan_detail_type."\" expression=\"".xml::sanitize($destination_number_regex)."\"/>\n";
$dialplan["dialplan_xml"] .= " <regex field=\"".xml::sanitize($row['condition_field'])."\" expression=\"^".xml::sanitize($condition_expression)."$\"/>\n";
if ($row['condition_field'] == 'caller_id_number_prefix'){
$dialplan["dialplan_xml"] .= " <regex field=\"caller_id_number\" expression=\"^".xml::sanitize($condition_expression)."\"/>\n";
}
else{
$dialplan["dialplan_xml"] .= " <regex field=\"".xml::sanitize($row['condition_field'])."\" expression=\"^".xml::sanitize($condition_expression)."$\"/>\n";
}
$dialplan["dialplan_xml"] .= " <action application=\"export\" data=\"call_direction=inbound\" inline=\"true\"/>\n";
$dialplan["dialplan_xml"] .= " <action application=\"set\" data=\"domain_uuid=".$_SESSION['domain_uuid']."\" inline=\"true\"/>\n";
$dialplan["dialplan_xml"] .= " <action application=\"set\" data=\"domain_name=".$_SESSION['domain_name']."\" inline=\"true\"/>\n";
@ -635,8 +640,14 @@
$dialplan["dialplan_details"][$y]["domain_uuid"] = $domain_uuid;
$dialplan["dialplan_details"][$y]["dialplan_uuid"] = $dialplan_uuid;
$dialplan["dialplan_details"][$y]["dialplan_detail_tag"] = "regex";
$dialplan["dialplan_details"][$y]["dialplan_detail_type"] = $row['condition_field'];
$dialplan["dialplan_details"][$y]["dialplan_detail_data"] = '^'.$condition_expression.'$';
if ($row['condition_field'] == 'caller_id_number_prefix') {
$dialplan["dialplan_details"][$y]["dialplan_detail_type"] = 'caller_id_number';
$dialplan["dialplan_details"][$y]["dialplan_detail_data"] = '^'.$condition_expression;
}
else {
$dialplan["dialplan_details"][$y]["dialplan_detail_type"] = $row['condition_field'];
$dialplan["dialplan_details"][$y]["dialplan_detail_data"] = '^'.$condition_expression.'$';
}
$dialplan["dialplan_details"][$y]["dialplan_detail_group"] = $dialplan_detail_group;
$dialplan["dialplan_details"][$y]["dialplan_detail_order"] = $dialplan_detail_order;
$y++;
@ -1663,6 +1674,12 @@
else {
echo " <option value=\"caller_id_number\">".$text['option-caller_id_number']."</option>\n";
}
if ($row['condition_field'] == 'caller_id_number_prefix') {
echo " <option value=\"caller_id_number_prefix\" selected='selected'>".$text['option-caller_id_number_prefix']."</option>\n";
}
else {
echo " <option value=\"caller_id_number_prefix\">".$text['option-caller_id_number_prefix']."</option>\n";
}
echo " </select>\n";
echo " <input class='formfld' type='text' name=\"destination_conditions[$x][condition_expression]\" id='destination_conditions' maxlength='255' value=\"".escape($row['condition_expression'] ?? '')."\">\n";
echo " <br />\n";