diff --git a/app/extensions/app_config.php b/app/extensions/app_config.php index 3f302fcb04..04a39dcfce 100644 --- a/app/extensions/app_config.php +++ b/app/extensions/app_config.php @@ -76,6 +76,11 @@ $apps[$x]['permissions'][$y]['name'] = "extension_password"; $apps[$x]['permissions'][$y]['groups'][] = "superadmin"; $apps[$x]['permissions'][$y]['groups'][] = "admin"; + $y++; + $apps[$x]['permissions'][$y]['name'] = "extension_missed_call"; + //$apps[$x]['permissions'][$y]['groups'][] = "superadmin"; + //$apps[$x]['permissions'][$y]['groups'][] = "admin"; + $y++; //schema details $y = 0; //table array index @@ -211,6 +216,14 @@ $apps[$x]['db'][$y]['fields'][$z]['description']['en-us'] = ""; $apps[$x]['db'][$y]['fields'][$z]['deprecated'] = "true"; $z++; + $apps[$x]['db'][$y]['fields'][$z]['name'] = "missed_call_app"; + $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'] = "missed_call_data"; + $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'] = "user_context"; $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 3da7979bc1..8a4f0b1645 100644 --- a/app/extensions/app_languages.php +++ b/app/extensions/app_languages.php @@ -252,6 +252,15 @@ $text['label-user_context']['pl'] = "Kontekst"; $text['label-user_context']['uk'] = "Контекст"; $text['label-user_context']['sv-se'] = "Sammanhang"; +$text['label-url']['en-us'] = "URL"; +$text['label-url']['es-cl'] = "URL"; +$text['label-url']['pt-pt'] = "URL"; +$text['label-url']['fr-fr'] = "URL"; +$text['label-url']['pt-br'] = "URL"; +$text['label-url']['pl'] = "URL"; +$text['label-url']['uk'] = "URL"; +$text['label-url']['sv-se'] = "URL"; + $text['label-true']['en-us'] = "True"; $text['label-true']['es-cl'] = "Verdadero"; $text['label-true']['pt-pt'] = "Sim"; @@ -270,6 +279,15 @@ $text['label-toll_allow']['pl'] = "Zezwalaj na drogie/szczególwe połaczenia"; $text['label-toll_allow']['uk'] = ""; $text['label-toll_allow']['sv-se'] = "Toll Allow"; +$text['label-text']['en-us'] = "Text"; +$text['label-text']['es-cl'] = "Texto"; +$text['label-text']['pt-pt'] = "Texto"; +$text['label-text']['fr-fr'] = "texte"; +$text['label-text']['pt-br'] = "Texto"; +$text['label-text']['pl'] = "Tekst"; +$text['label-text']['uk'] = "текст"; +$text['label-text']['sv-se'] = "Text"; + $text['label-sip_force_expires']['en-us'] = "SIP Force Expires"; $text['label-sip_force_expires']['es-cl'] = "Forzado SIP Expira"; $text['label-sip_force_expires']['pt-pt'] = "Forçar o tempo de expiração SIP"; @@ -405,6 +423,15 @@ $text['label-mwi_account']['pl'] = "Konto powiadomienia oczekującej poczty gło $text['label-mwi_account']['uk'] = ""; $text['label-mwi_account']['sv-se'] = "MWI Konto"; +$text['label-missed_call']['en-us'] = "Missed Call"; +$text['label-missed_call']['es-cl'] = "Llamada Perdida"; +$text['label-missed_call']['pt-pt'] = "Chamada Perdida"; +$text['label-missed_call']['fr-fr'] = "Appel Manqué"; +$text['label-missed_call']['pt-br'] = "Chamada Perdida"; +$text['label-missed_call']['pl'] = "Nieodebrane Połączenie"; +$text['label-missed_call']['uk'] = "пропущений Дзвінок"; +$text['label-missed_call']['sv-se'] = "Missat Samtal"; + $text['label-line']['en-us'] = "Line"; $text['label-line']['pt-pt'] = "Linha"; $text['label-line']['fr-fr'] = "Ligne"; @@ -486,6 +513,15 @@ $text['label-emergency_caller_id_name']['pl'] = "Prezentacja nazwy dzwoniącego $text['label-emergency_caller_id_name']['uk'] = ""; $text['label-emergency_caller_id_name']['sv-se'] = "Nöd Namnvisning"; +$text['label-email']['en-us'] = "Email"; +$text['label-email']['es-cl'] = "Email"; +$text['label-email']['pt-pt'] = "Email"; +$text['label-email']['fr-fr'] = "Courriel"; +$text['label-email']['pt-br'] = "Email"; +$text['label-email']['pl'] = "Email"; +$text['label-email']['uk'] = "Електронна пошта"; +$text['label-email']['sv-se'] = "E-post"; + $text['label-effective_caller_id_number']['en-us'] = "Effective Caller ID Number"; $text['label-effective_caller_id_number']['es-cl'] = "Número de Caller ID Efectivo"; $text['label-effective_caller_id_number']['pt-pt'] = "Número interno"; @@ -873,6 +909,15 @@ $text['description-mwi_account']['pl'] = "Konto powiadomienia oczekującej uzytk $text['description-mwi_account']['uk'] = ""; $text['description-mwi_account']['sv-se'] = "MWI konto med user@domain för den röstbrevlåda som skall monitoreras."; +$text['description-missed_call']['en-us'] = "Select the notification type, and enter the appropriate destination."; +$text['description-missed_call']['es-cl'] = "Seleccione el tipo de notificación, y entrar en el destino apropiado."; +$text['description-missed_call']['pt-pt'] = "Selecione o tipo de notificação e digite o destino apropriado."; +$text['description-missed_call']['fr-fr'] = "Sélectionnez le type de notification, et entrez la destination appropriée."; +$text['description-missed_call']['pt-br'] = "Selecione o tipo de notificação e digite o destino apropriado."; +$text['description-missed_call']['pl'] = "Wybierz typ powiadomienia, i wpisz odpowiednie miejsce przeznaczenia."; +$text['description-missed_call']['uk'] = "Виберіть тип повідомлення, і ввести відповідний пункт призначення."; +$text['description-missed_call']['sv-se'] = "Välj typ anmälan, och ange lämplig destination."; + $text['description-limit_max']['en-us'] = "Enter the max number of outgoing calls for this user."; $text['description-limit_max']['es-cl'] = "Ingrese el número máximo de llamadas salientes para este usuario."; $text['description-limit_max']['pt-pt'] = "Introduza o número máximo de chamadas de saída para este utilizador."; diff --git a/app/extensions/extension_copy.php b/app/extensions/extension_copy.php index 2a5c35be7f..d406b5ef4f 100644 --- a/app/extensions/extension_copy.php +++ b/app/extensions/extension_copy.php @@ -70,6 +70,8 @@ else { $limit_max = $row["limit_max"]; $limit_destination = $row["limit_destination"]; $user_context = $row["user_context"]; + $missed_call_app = $row["missed_call_app"]; + $missed_call_data = $row["missed_call_data"]; $toll_allow = $row["toll_allow"]; $call_timeout = $row["call_timeout"]; $call_group = $row["call_group"]; @@ -110,6 +112,8 @@ else { $sql .= "limit_max, "; $sql .= "limit_destination, "; $sql .= "user_context, "; + $sql .= "missed_call_app, "; + $sql .= "missed_call_data, "; $sql .= "toll_allow, "; $sql .= "call_timeout, "; $sql .= "call_group, "; @@ -145,6 +149,8 @@ else { if (strlen($limit_max) > 0) { $sql .= "'$limit_max', "; } else { $sql .= "null, "; } $sql .= "'$limit_destination', "; $sql .= "'$user_context', "; + $sql .= "'$missed_call_app', "; + $sql .= "'$missed_call_data', "; $sql .= "'$toll_allow', "; if (strlen($call_timeout) > 0) { $sql .= "'$call_timeout', "; } else { $sql .= "null, "; } $sql .= "'$call_group', "; diff --git a/app/extensions/extension_edit.php b/app/extensions/extension_edit.php index 048a5a3ce7..424bf41f0b 100644 --- a/app/extensions/extension_edit.php +++ b/app/extensions/extension_edit.php @@ -121,6 +121,8 @@ else { $user_context = check_str($_POST["user_context"]); $range = check_str($_POST["range"]); $autogen_users = check_str($_POST["autogen_users"]); + $missed_call_app = check_str($_POST["missed_call_app"]); + $missed_call_data = check_str($_POST["missed_call_data"]); $toll_allow = check_str($_POST["toll_allow"]); $call_timeout = check_str($_POST["call_timeout"]); $call_group = check_str($_POST["call_group"]); @@ -136,6 +138,7 @@ else { $dial_string = check_str($_POST["dial_string"]); $enabled = check_str($_POST["enabled"]); $description = check_str($_POST["description"]); + } //delete the user from the v_extension_users @@ -345,6 +348,43 @@ if (count($_POST) > 0 && strlen($_POST["persistformvar"]) == 0) { //add or update the database if ($_POST["persistformvar"] != "true") { + //prep missed call values for db insert/update + switch ($missed_call_app) { + case 'email': + $missed_call_data = str_replace(';',',',$missed_call_data); + $missed_call_data = str_replace(' ','',$missed_call_data); + if (substr_count($missed_call_data, ',') > 0) { + $missed_call_data_array = explode(',', $missed_call_data); + foreach ($missed_call_data_array as $array_index => $email_address) { + if (!valid_email($email_address)) { unset($missed_call_data_array[$array_index]); } + } + echo "
".print_r($missed_call_data_array, true)."


"; + if (sizeof($missed_call_data_array) > 0) { + $missed_call_data = implode(',', $missed_call_data_array); + } + else { + unset($missed_call_app, $missed_call_data); + } + echo "Multiple Emails = ".$missed_call_data; + } + else { + echo "Single Email = ".$missed_call_data."
"; + if (!valid_email($missed_call_data)) { + echo "Invalid Email

"; + unset($missed_call_app, $missed_call_data); + } + } + break; + case 'text': + $missed_call_data = str_replace('-','',$missed_call_data); + $missed_call_data = str_replace('.','',$missed_call_data); + $missed_call_data = str_replace('(','',$missed_call_data); + $missed_call_data = str_replace(')','',$missed_call_data); + $missed_call_data = str_replace(' ','',$missed_call_data); + if (!is_numeric($missed_call_data)) { unset($missed_call_app, $missed_call_data); } + break; + } + //add the extension to the database if ($action == "add" && permission_exists('extension_add')) { $user_email = ''; @@ -394,6 +434,10 @@ if (count($_POST) > 0 && strlen($_POST["persistformvar"]) == 0) { $sql .= "limit_max, "; $sql .= "limit_destination, "; $sql .= "user_context, "; + if (permission_exists('extension_missed_call')) { + $sql .= "missed_call_app, "; + $sql .= "missed_call_data, "; + } if (permission_exists('extension_toll')) { $sql .= "toll_allow, "; } @@ -448,6 +492,10 @@ if (count($_POST) > 0 && strlen($_POST["persistformvar"]) == 0) { $sql .= "'$limit_max', "; $sql .= "'$limit_destination', "; $sql .= "'$user_context', "; + if (permission_exists('extension_missed_call')) { + $sql .= "'$missed_call_app', "; + $sql .= "'$missed_call_data', "; + } if (permission_exists('extension_toll')) { $sql .= "'$toll_allow', "; } @@ -588,6 +636,10 @@ if (count($_POST) > 0 && strlen($_POST["persistformvar"]) == 0) { $sql .= "limit_max = '$limit_max', "; $sql .= "limit_destination = '$limit_destination', "; $sql .= "user_context = '$user_context', "; + if (permission_exists('extension_missed_call')) { + $sql .= "missed_call_app = '$missed_call_app', "; + $sql .= "missed_call_data = '$missed_call_data', "; + } if (permission_exists('extension_toll')) { $sql .= "toll_allow = '$toll_allow', "; } @@ -769,6 +821,8 @@ if (count($_POST) > 0 && strlen($_POST["persistformvar"]) == 0) { $limit_max = $row["limit_max"]; $limit_destination = $row["limit_destination"]; $user_context = $row["user_context"]; + $missed_call_app = $row["missed_call_app"]; + $missed_call_data = $row["missed_call_data"]; $toll_allow = $row["toll_allow"]; $call_timeout = $row["call_timeout"]; $call_group = $row["call_group"]; @@ -1526,6 +1580,26 @@ if (count($_POST) > 0 && strlen($_POST["persistformvar"]) == 0) { echo "\n"; } + if (permission_exists('extension_missed_call')) { + echo "\n"; + echo "\n"; + echo " ".$text['label-missed_call']."\n"; + echo "\n"; + echo "\n"; + echo " \n"; + $missed_call_data = ($missed_call_app == 'text') ? format_phone($missed_call_data) : $missed_call_data; + echo " \n"; + echo "
\n"; + echo $text['description-missed_call']."\n"; + echo "\n"; + echo "\n"; + } + if (permission_exists('extension_toll')) { echo "\n"; echo "\n";