diff --git a/app/extensions/app_config.php b/app/extensions/app_config.php
index 8d29d837be..ce7ee10829 100644
--- a/app/extensions/app_config.php
+++ b/app/extensions/app_config.php
@@ -642,6 +642,18 @@
$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'] = "extension_language";
+ $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'] = "extension_dialect";
+ $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'] = "extension_voice";
+ $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'] = "extension_type";
$apps[$x]['db'][$y]['fields'][$z]['type'] = "text";
$apps[$x]['db'][$y]['fields'][$z]['description']['en-us'] = "";
diff --git a/app/extensions/app_languages.php b/app/extensions/app_languages.php
index 44555f64a4..b79940b3b2 100644
--- a/app/extensions/app_languages.php
+++ b/app/extensions/app_languages.php
@@ -2314,6 +2314,30 @@ $text['label-extension_only']['zh-cn'] = "仅限分机";
$text['label-extension_only']['ja-jp'] = "内線のみ";
$text['label-extension_only']['ko-kr'] = "내선 전용";
+$text['label-language']['en-us'] = "Language";
+$text['label-language']['en-gb'] = "Language";
+$text['label-language']['ar-eg'] = "اللغة";
+$text['label-language']['de-at'] = "Sprache";
+$text['label-language']['de-ch'] = "Sprache";
+$text['label-language']['de-de'] = "Sprache";
+$text['label-language']['es-cl'] = "Idioma";
+$text['label-language']['es-mx'] = "Idioma";
+$text['label-language']['fr-ca'] = "Langue";
+$text['label-language']['fr-fr'] = "Langue";
+$text['label-language']['he-il'] = "שפה";
+$text['label-language']['it-it'] = "Lingua";
+$text['label-language']['nl-nl'] = "Taal";
+$text['label-language']['pl-pl'] = "Język";
+$text['label-language']['pt-br'] = "Língua";
+$text['label-language']['pt-pt'] = "Língua";
+$text['label-language']['ro-ro'] = "Limba";
+$text['label-language']['ru-ru'] = "Язык";
+$text['label-language']['sv-se'] = "Språk";
+$text['label-language']['uk-ua'] = "Українська";
+$text['label-language']['zh-cn'] = "语言";
+$text['label-language']['ja-jp'] = "言語";
+$text['label-language']['ko-kr'] = "언어";
+
$text['label-extension_type']['en-us'] = "Type";
$text['label-extension_type']['ar-eg'] = "النوع";
$text['label-extension_type']['de-at'] = "Art";
@@ -3846,5 +3870,4 @@ $text['button-call_forward']['zh-cn'] = "呼叫转移";
$text['button-call_forward']['ja-jp'] = "電話転送";
$text['button-call_forward']['ko-kr'] = "착신 전환";
-?>
-
+?>
\ No newline at end of file
diff --git a/app/extensions/extension_edit.php b/app/extensions/extension_edit.php
index bf2e85017e..a2a72b5af7 100644
--- a/app/extensions/extension_edit.php
+++ b/app/extensions/extension_edit.php
@@ -132,10 +132,14 @@
$absolute_codec_string = $_POST["absolute_codec_string"];
$force_ping = $_POST["force_ping"];
$dial_string = $_POST["dial_string"];
+ $extension_language = $_POST["extension_language"];
$extension_type = $_POST["extension_type"];
$enabled = $_POST["enabled"] ?? 'false';
$description = $_POST["description"];
+ //set defaults
+ $extension_language = $extension_language ?? '';
+
//outbound caller id number - only allow numeric and +
if (!empty($outbound_caller_id_number)) {
$outbound_caller_id_number = preg_replace('#[^\+0-9]#', '', $outbound_caller_id_number);
@@ -157,7 +161,7 @@
else{
$subnet = 32;
}
-
+
if(($addr = inet_pton($ipaddr)) !== false){
$ips[] = $ipaddr.'/'.$subnet;
}
@@ -425,6 +429,12 @@
$password = generate_password($password_length, $password_strength);
}
+ //seperate the language components into language, dialect and voice
+ $language_array = explode("/",$ivr_menu_language);
+ $ivr_menu_language = $language_array[0] ?? 'en';
+ $ivr_menu_dialect = $language_array[1] ?? 'us';
+ $ivr_menu_voice = $language_array[2] ?? 'callie';
+
//create the data array
$array["extensions"][$i]["domain_uuid"] = $domain_uuid;
$array["extensions"][$i]["extension_uuid"] = $extension_uuid;
@@ -531,6 +541,11 @@
$array["extensions"][$i]["dial_string"] = $dial_string;
}
}
+ if (permission_exists('extension_language')) {
+ $array['ivr_menus'][0]["extension_language"] = $extension_language;
+ $array['ivr_menus'][0]["extension_dialect"] = $extension_dialect;
+ $array['ivr_menus'][0]["extension_voice"] = $extension_voice;
+ }
if (permission_exists('extension_type')) {
$array["extensions"][$i]["extension_type"] = $extension_type;
}
@@ -1273,7 +1288,7 @@
echo "
\n";
echo " ".$text['description-accountcode']."\n";
echo "\n";
- echo "\n";
+ echo "\n";
}
if (permission_exists('device_edit') && (empty($extension_type) || $extension_type != 'virtual')) {
@@ -1974,6 +1989,35 @@
echo "\n";
}
+ if (permission_exists('extension_language')) {
+ echo "