From 5de3e7a9d5ab1592cd80bc31245c05d8a87bbeff Mon Sep 17 00:00:00 2001 From: fusionate Date: Thu, 11 Dec 2025 19:18:11 -0700 Subject: [PATCH] Fax Server - Advanced Settings: Add Test button to check email account connectivity. --- app/fax/app_languages.php | 270 ++++++++++++++++++++++++++++++++++ app/fax/fax_advanced.php | 63 +++++++- app/fax/fax_advanced_test.php | 156 ++++++++++++++++++++ 3 files changed, 488 insertions(+), 1 deletion(-) create mode 100644 app/fax/fax_advanced_test.php diff --git a/app/fax/app_languages.php b/app/fax/app_languages.php index af0a7ce6bb..f802944fca 100644 --- a/app/fax/app_languages.php +++ b/app/fax/app_languages.php @@ -5535,4 +5535,274 @@ $text['label-fax_download']['zh-cn'] = "下载传真"; $text['label-fax_download']['ja-jp'] = "ファックスをダウンロード"; $text['label-fax_download']['ko-kr'] = "팩스 다운로드"; +$text['button-test']['en-us'] = "Test"; +$text['button-test']['en-gb'] = "Test"; +$text['button-test']['ar-eg'] = "الاختبار"; +$text['button-test']['de-at'] = "Prüfung"; +$text['button-test']['de-ch'] = "Prüfung"; +$text['button-test']['de-de'] = "Prüfung"; +$text['button-test']['el-gr'] = "Δοκιμή"; +$text['button-test']['es-cl'] = "Prueba"; +$text['button-test']['es-mx'] = "Prueba"; +$text['button-test']['fr-ca'] = "Test"; +$text['button-test']['fr-fr'] = "Test"; +$text['button-test']['he-il'] = "מבחן"; +$text['button-test']['it-it'] = "test di prova"; +$text['button-test']['ka-ge'] = "შემოწმება"; +$text['button-test']['nl-nl'] = "Test"; +$text['button-test']['pl-pl'] = "test"; +$text['button-test']['pt-br'] = "Teste de teste"; +$text['button-test']['pt-pt'] = "Teste de teste"; +$text['button-test']['ro-ro'] = "Test"; +$text['button-test']['ru-ru'] = "Испытания"; +$text['button-test']['sv-se'] = "Testa test"; +$text['button-test']['uk-ua'] = "Тести"; +$text['button-test']['tr-tr'] = "Ölçek"; +$text['button-test']['zh-cn'] = "测试"; +$text['button-test']['ja-jp'] = "テスト"; +$text['button-test']['ko-kr'] = "시험"; + +$text['header-advanced_fax_settings_test']['en-us'] = "Advanced Fax Settings Test"; +$text['header-advanced_fax_settings_test']['en-gb'] = "Advanced Fax Settings Test"; +$text['header-advanced_fax_settings_test']['ar-eg'] = "اختبار إعدادات الفاكس المتقدمة"; +$text['header-advanced_fax_settings_test']['de-at'] = "Erweiterter Fax-Einstellungen-Test"; +$text['header-advanced_fax_settings_test']['de-ch'] = "Erweiterter Fax-Einstellungen-Test"; +$text['header-advanced_fax_settings_test']['de-de'] = "Erweiterter Fax-Einstellungen-Test"; +$text['header-advanced_fax_settings_test']['el-gr'] = "Δοκιμή ρυθμίσεων φαξ για προχωρημένους"; +$text['header-advanced_fax_settings_test']['es-cl'] = "Prueba de configuración de fax avanzada"; +$text['header-advanced_fax_settings_test']['es-mx'] = "Prueba de configuración de fax avanzada"; +$text['header-advanced_fax_settings_test']['fr-ca'] = "Prueba de configuración de fax avanzada"; +$text['header-advanced_fax_settings_test']['fr-fr'] = "Test des paramètres avancés de télécopie"; +$text['header-advanced_fax_settings_test']['he-il'] = "בדיקת הגדרות פקס מתקדמות"; +$text['header-advanced_fax_settings_test']['it-it'] = "Test delle impostazioni avanzate del fax"; +$text['header-advanced_fax_settings_test']['ka-ge'] = "გაფართოებული ფაქსის პარამეტრების ტესტი"; +$text['header-advanced_fax_settings_test']['nl-nl'] = "Test geavanceerde faxinstellingen"; +$text['header-advanced_fax_settings_test']['pl-pl'] = "Test zaawansowanych ustawień faksu"; +$text['header-advanced_fax_settings_test']['pt-br'] = "Teste de configurações avançadas de fax"; +$text['header-advanced_fax_settings_test']['pt-pt'] = "Teste de definições avançadas de fax"; +$text['header-advanced_fax_settings_test']['ro-ro'] = "Test setări avansate de fax"; +$text['header-advanced_fax_settings_test']['ru-ru'] = "Проверка расширенных настроек факса"; +$text['header-advanced_fax_settings_test']['sv-se'] = "Test av avancerade faxinställningar"; +$text['header-advanced_fax_settings_test']['uk-ua'] = "Тест розширених налаштувань факсу"; +$text['header-advanced_fax_settings_test']['tr-tr'] = "Gelişmiş Faks Ayarları Testi"; +$text['header-advanced_fax_settings_test']['zh-cn'] = "高级传真设置测试"; +$text['header-advanced_fax_settings_test']['ja-jp'] = "高度なFAX設定テスト"; +$text['header-advanced_fax_settings_test']['ko-kr'] = "고급 팩스 설정 테스트"; + +$text['description-advanced_fax_settings_test']['en-us'] = "Below are the test results for the active Advanced Settings of the fax server."; +$text['description-advanced_fax_settings_test']['en-gb'] = "Below are the test results for the active Advanced Settings of the fax server."; +$text['description-advanced_fax_settings_test']['ar-eg'] = "فيما يلي نتائج اختبار الإعدادات المتقدمة النشطة لخادم الفاكس."; +$text['description-advanced_fax_settings_test']['de-at'] = "Nachfolgend sind die Testergebnisse für die aktiven erweiterten Einstellungen des Faxservers aufgeführt."; +$text['description-advanced_fax_settings_test']['de-ch'] = "Nachfolgend sind die Testergebnisse für die aktiven erweiterten Einstellungen des Faxservers aufgeführt."; +$text['description-advanced_fax_settings_test']['de-de'] = "Nachfolgend sind die Testergebnisse für die aktiven erweiterten Einstellungen des Faxservers aufgeführt."; +$text['description-advanced_fax_settings_test']['el-gr'] = "Παρακάτω παρατίθενται τα αποτελέσματα των δοκιμών για τις ενεργές Ρυθμίσεις για προχωρημένους του διακομιστή φαξ."; +$text['description-advanced_fax_settings_test']['es-cl'] = "A continuación se muestran los resultados de la prueba de la configuración avanzada activa del servidor de fax."; +$text['description-advanced_fax_settings_test']['es-mx'] = "A continuación se muestran los resultados de la prueba de la configuración avanzada activa del servidor de fax."; +$text['description-advanced_fax_settings_test']['fr-ca'] = "Vous trouverez ci-dessous les résultats des tests effectués sur les paramètres avancés actifs du serveur de fax."; +$text['description-advanced_fax_settings_test']['fr-fr'] = "Vous trouverez ci-dessous les résultats des tests effectués sur les paramètres avancés actifs du serveur de fax."; +$text['description-advanced_fax_settings_test']['he-il'] = "להלן תוצאות הבדיקה עבור ההגדרות המתקדמות הפעילות של שרת הפקס."; +$text['description-advanced_fax_settings_test']['it-it'] = "Di seguito sono riportati i risultati dei test per le Impostazioni avanzate attive del server fax."; +$text['description-advanced_fax_settings_test']['ka-ge'] = "ქვემოთ მოცემულია ფაქსის სერვერის აქტიური „გაფართოებული პარამეტრების“ ტესტის შედეგები."; +$text['description-advanced_fax_settings_test']['nl-nl'] = "Hieronder vindt u de testresultaten voor de actieve geavanceerde instellingen van de faxserver."; +$text['description-advanced_fax_settings_test']['pl-pl'] = "Poniżej znajdują się wyniki testów dla aktywnych ustawień zaawansowanych serwera faksowego."; +$text['description-advanced_fax_settings_test']['pt-br'] = "Abaixo estão os resultados dos testes para as Configurações Avançadas ativas do servidor de fax."; +$text['description-advanced_fax_settings_test']['pt-pt'] = "Abaixo estão os resultados dos testes para as Definições Avançadas ativas do servidor de fax."; +$text['description-advanced_fax_settings_test']['ro-ro'] = "Mai jos sunt rezultatele testelor pentru Setările Avansate active ale serverului de fax."; +$text['description-advanced_fax_settings_test']['ru-ru'] = "Ниже представлены результаты тестирования активных расширенных настроек факс-сервера."; +$text['description-advanced_fax_settings_test']['sv-se'] = "Nedan visas testresultaten för de aktiva avancerade inställningarna för faxservern."; +$text['description-advanced_fax_settings_test']['uk-ua'] = "Нижче наведено результати тестування для активних додаткових налаштувань факс-сервера."; +$text['description-advanced_fax_settings_test']['tr-tr'] = "Aşağıda faks sunucusunun aktif Gelişmiş Ayarları için test sonuçları yer almaktadır."; +$text['description-advanced_fax_settings_test']['zh-cn'] = "以下是传真服务器当前高级设置的测试结果。"; +$text['description-advanced_fax_settings_test']['ja-jp'] = "以下は、ファックス サーバーのアクティブな詳細設定のテスト結果です。"; +$text['description-advanced_fax_settings_test']['ko-kr'] = "다음은 팩스 서버의 고급 설정에 대한 테스트 결과입니다."; + +$text['header-settings']['en-us'] = "Settings"; +$text['header-settings']['en-gb'] = "Settings"; +$text['header-settings']['ar-eg'] = "الترتيبات"; +$text['header-settings']['de-at'] = "Einstellungen"; +$text['header-settings']['de-ch'] = "Einstellungen"; +$text['header-settings']['de-de'] = "Einstellungen"; +$text['header-settings']['el-gr'] = "Ρυθμίσεις"; +$text['header-settings']['es-cl'] = "Ajustes"; +$text['header-settings']['es-mx'] = "Ajustes"; +$text['header-settings']['fr-ca'] = "Paramètres"; +$text['header-settings']['fr-fr'] = "Paramètres"; +$text['header-settings']['he-il'] = "הגדרות הגדרות"; +$text['header-settings']['it-it'] = "Impostazioni impostazioni"; +$text['header-settings']['ka-ge'] = "მორგება"; +$text['header-settings']['nl-nl'] = "Instellingen"; +$text['header-settings']['pl-pl'] = "Setting"; +$text['header-settings']['pt-br'] = "Configurações"; +$text['header-settings']['pt-pt'] = "Configurações"; +$text['header-settings']['ro-ro'] = "Setări"; +$text['header-settings']['ru-ru'] = "Настройка"; +$text['header-settings']['sv-se'] = "Inställningar"; +$text['header-settings']['uk-ua'] = "Налаштування"; +$text['header-settings']['tr-tr'] = "Ayarlar"; +$text['header-settings']['zh-cn'] = "设置"; +$text['header-settings']['ja-jp'] = "設定"; +$text['header-settings']['ko-kr'] = "설정"; + +$text['label-connection_string']['en-us'] = "Connection String"; +$text['label-connection_string']['en-gb'] = "Connection String"; +$text['label-connection_string']['ar-eg'] = "سلسلة الاتصال"; +$text['label-connection_string']['de-at'] = "Verbindungszeichenfolge"; +$text['label-connection_string']['de-ch'] = "Verbindungszeichenfolge"; +$text['label-connection_string']['de-de'] = "Verbindungszeichenfolge"; +$text['label-connection_string']['el-gr'] = "Συμβολοσειρά σύνδεσης"; +$text['label-connection_string']['es-cl'] = "Cadena de conexión"; +$text['label-connection_string']['es-mx'] = "Cadena de conexión"; +$text['label-connection_string']['fr-ca'] = "Chaîne de connexion"; +$text['label-connection_string']['fr-fr'] = "Chaîne de connexion"; +$text['label-connection_string']['he-il'] = "מחרוזת חיבור"; +$text['label-connection_string']['it-it'] = "Stringa di connessione"; +$text['label-connection_string']['ka-ge'] = "კავშირის სტრიქონი"; +$text['label-connection_string']['nl-nl'] = "Verbindingsreeks"; +$text['label-connection_string']['pl-pl'] = "Ciąg połączenia"; +$text['label-connection_string']['pt-br'] = "Cadeia de conexão"; +$text['label-connection_string']['pt-pt'] = "Cadeia de ligação"; +$text['label-connection_string']['ro-ro'] = "Șir de conexiune"; +$text['label-connection_string']['ru-ru'] = "Строка подключения"; +$text['label-connection_string']['sv-se'] = "Anslutningssträng"; +$text['label-connection_string']['uk-ua'] = "Рядок підключення"; +$text['label-connection_string']['tr-tr'] = "Bağlantı Dizisi"; +$text['label-connection_string']['zh-cn'] = "连接字符串"; +$text['label-connection_string']['ja-jp'] = "接続文字列"; +$text['label-connection_string']['ko-kr'] = "연결 문자열"; + +$text['header-result']['en-us'] = "Result"; +$text['header-result']['en-gb'] = "Result"; +$text['header-result']['ar-eg'] = "النتيجة"; +$text['header-result']['de-at'] = "Ergebnis"; +$text['header-result']['de-ch'] = "Ergebnis"; +$text['header-result']['de-de'] = "Ergebnis"; +$text['header-result']['el-gr'] = "Αποτέλεσμα"; +$text['header-result']['es-cl'] = "Resultado"; +$text['header-result']['es-mx'] = "Resultado"; +$text['header-result']['fr-ca'] = "Résultat "; +$text['header-result']['fr-fr'] = "Résultat "; +$text['header-result']['he-il'] = "תוצאה"; +$text['header-result']['it-it'] = "Risultato"; +$text['header-result']['ka-ge'] = "შედეგი"; +$text['header-result']['nl-nl'] = "Resultaat"; +$text['header-result']['pl-pl'] = "rezultat"; +$text['header-result']['pt-br'] = "Resultado"; +$text['header-result']['pt-pt'] = "Resultado"; +$text['header-result']['ro-ro'] = "Rezultat"; +$text['header-result']['ru-ru'] = "Результат"; +$text['header-result']['sv-se'] = "Resultat"; +$text['header-result']['uk-ua'] = "Почати"; +$text['header-result']['tr-tr'] = "Sonuç"; +$text['header-result']['zh-cn'] = "结果"; +$text['header-result']['ja-jp'] = "結果"; +$text['header-result']['ko-kr'] = "결과"; + +$text['label-connection_success']['en-us'] = "Connected Successfully"; +$text['label-connection_success']['en-gb'] = "Connected Successfully"; +$text['label-connection_success']['ar-eg'] = "تم الاتصال بنجاح"; +$text['label-connection_success']['de-at'] = "Verbindung erfolgreich hergestellt."; +$text['label-connection_success']['de-ch'] = "Verbindung erfolgreich hergestellt."; +$text['label-connection_success']['de-de'] = "Verbindung erfolgreich hergestellt."; +$text['label-connection_success']['el-gr'] = "Συνδέθηκε με επιτυχία"; +$text['label-connection_success']['es-cl'] = "Conectado exitosamente"; +$text['label-connection_success']['es-mx'] = "Conectado exitosamente"; +$text['label-connection_success']['fr-ca'] = "Connexion réussie"; +$text['label-connection_success']['fr-fr'] = "Connexion réussie"; +$text['label-connection_success']['he-il'] = "התחבר בהצלחה"; +$text['label-connection_success']['it-it'] = "Connesso con successo"; +$text['label-connection_success']['ka-ge'] = "წარმატებით დაკავშირდა"; +$text['label-connection_success']['nl-nl'] = "Succesvol verbonden"; +$text['label-connection_success']['pl-pl'] = "Połączono pomyślnie"; +$text['label-connection_success']['pt-br'] = "Conexão estabelecida com sucesso."; +$text['label-connection_success']['pt-pt'] = "Ligação estabelecida com sucesso."; +$text['label-connection_success']['ro-ro'] = "Conectare reușită"; +$text['label-connection_success']['ru-ru'] = "Успешное соединение установлено"; +$text['label-connection_success']['sv-se'] = "Ansluten framgångsrikt"; +$text['label-connection_success']['uk-ua'] = "Підключено успішно"; +$text['label-connection_success']['tr-tr'] = "Bağlantı başarıyla kuruldu."; +$text['label-connection_success']['zh-cn'] = "连接成功"; +$text['label-connection_success']['ja-jp'] = "接続に成功しました"; +$text['label-connection_success']['ko-kr'] = "성공적으로 연결되었습니다"; + +$text['label-connection_failed']['en-us'] = "Connection Failed"; +$text['label-connection_failed']['en-gb'] = "Connection Failed"; +$text['label-connection_failed']['ar-eg'] = "فشل الاتصال"; +$text['label-connection_failed']['de-at'] = "Verbindung fehlgeschlagen"; +$text['label-connection_failed']['de-ch'] = "Verbindung fehlgeschlagen"; +$text['label-connection_failed']['de-de'] = "Verbindung fehlgeschlagen"; +$text['label-connection_failed']['el-gr'] = "Η σύνδεση απέτυχε"; +$text['label-connection_failed']['es-cl'] = "Conexión fallida"; +$text['label-connection_failed']['es-mx'] = "Conexión fallida"; +$text['label-connection_failed']['fr-ca'] = "Conexión fallida"; +$text['label-connection_failed']['fr-fr'] = "Échec de la connexion"; +$text['label-connection_failed']['he-il'] = "החיבור נכשל"; +$text['label-connection_failed']['it-it'] = "Connessione fallita"; +$text['label-connection_failed']['ka-ge'] = "კავშირი ვერ მოხერხდა"; +$text['label-connection_failed']['nl-nl'] = "Verbinding mislukt"; +$text['label-connection_failed']['pl-pl'] = "Połączenie nieudane"; +$text['label-connection_failed']['pt-br'] = "Conexão falhou"; +$text['label-connection_failed']['pt-pt'] = "Conexão falhou"; +$text['label-connection_failed']['ro-ro'] = "Conexiune eșuată"; +$text['label-connection_failed']['ru-ru'] = "Соединение не удалось."; +$text['label-connection_failed']['sv-se'] = "Anslutningen misslyckades"; +$text['label-connection_failed']['uk-ua'] = "Помилка підключення"; +$text['label-connection_failed']['tr-tr'] = "Bağlantı başarısız oldu"; +$text['label-connection_failed']['zh-cn'] = "连接失败"; +$text['label-connection_failed']['ja-jp'] = "接続に失敗しました"; +$text['label-connection_failed']['ko-kr'] = "연결 실패"; + +$text['label-advanced_fax_settings_not_found']['en-us'] = "Advanced Settings Not Found"; +$text['label-advanced_fax_settings_not_found']['en-gb'] = "Advanced Settings Not Found"; +$text['label-advanced_fax_settings_not_found']['ar-eg'] = "لم يتم العثور على الإعدادات المتقدمة"; +$text['label-advanced_fax_settings_not_found']['de-at'] = "Erweiterte Einstellungen nicht gefunden"; +$text['label-advanced_fax_settings_not_found']['de-ch'] = "Erweiterte Einstellungen nicht gefunden"; +$text['label-advanced_fax_settings_not_found']['de-de'] = "Erweiterte Einstellungen nicht gefunden"; +$text['label-advanced_fax_settings_not_found']['el-gr'] = "Δεν βρέθηκαν οι ρυθμίσεις για προχωρημένους"; +$text['label-advanced_fax_settings_not_found']['es-cl'] = "Configuración avanzada no encontrada"; +$text['label-advanced_fax_settings_not_found']['es-mx'] = "Configuración avanzada no encontrada"; +$text['label-advanced_fax_settings_not_found']['fr-ca'] = "Paramètres avancés introuvables"; +$text['label-advanced_fax_settings_not_found']['fr-fr'] = "Paramètres avancés introuvables"; +$text['label-advanced_fax_settings_not_found']['he-il'] = "הגדרות מתקדמות לא נמצאו"; +$text['label-advanced_fax_settings_not_found']['it-it'] = "Impostazioni avanzate non trovate"; +$text['label-advanced_fax_settings_not_found']['ka-ge'] = "გაფართოებული პარამეტრები ვერ მოიძებნა"; +$text['label-advanced_fax_settings_not_found']['nl-nl'] = "Geavanceerde instellingen niet gevonden"; +$text['label-advanced_fax_settings_not_found']['pl-pl'] = "Nie znaleziono ustawień zaawansowanych"; +$text['label-advanced_fax_settings_not_found']['pt-br'] = "Configurações avançadas não encontradas"; +$text['label-advanced_fax_settings_not_found']['pt-pt'] = "Configurações avançadas não encontradas"; +$text['label-advanced_fax_settings_not_found']['ro-ro'] = "Расширенные настройки не найдены"; +$text['label-advanced_fax_settings_not_found']['ru-ru'] = "Расширенные настройки не найдены"; +$text['label-advanced_fax_settings_not_found']['sv-se'] = "Avancerade inställningar hittades inte"; +$text['label-advanced_fax_settings_not_found']['uk-ua'] = "Розширені налаштування не знайдено"; +$text['label-advanced_fax_settings_not_found']['tr-tr'] = "Gelişmiş Ayarlar Bulunamadı"; +$text['label-advanced_fax_settings_not_found']['zh-cn'] = "未找到高级设置"; +$text['label-advanced_fax_settings_not_found']['ja-jp'] = "詳細設定が見つかりません"; +$text['label-advanced_fax_settings_not_found']['ko-kr'] = "고급 설정을 찾을 수 없습니다."; + +$text['label-testing']['en-us'] = "Testing"; +$text['label-testing']['en-gb'] = "Testing"; +$text['label-testing']['ar-eg'] = "الاختبار"; +$text['label-testing']['de-at'] = "Testen"; +$text['label-testing']['de-ch'] = "Testen"; +$text['label-testing']['de-de'] = "Testen"; +$text['label-testing']['el-gr'] = "Δοκιμές"; +$text['label-testing']['es-cl'] = "Pruebas"; +$text['label-testing']['es-mx'] = "Pruebas"; +$text['label-testing']['fr-ca'] = "Essai"; +$text['label-testing']['fr-fr'] = "Essai"; +$text['label-testing']['he-il'] = "בּוֹחֵן"; +$text['label-testing']['it-it'] = "Test"; +$text['label-testing']['ka-ge'] = "Test"; +$text['label-testing']['nl-nl'] = "Testen"; +$text['label-testing']['pl-pl'] = "Testowanie"; +$text['label-testing']['pt-br'] = "Testowanie"; +$text['label-testing']['pt-pt'] = "Testando"; +$text['label-testing']['ro-ro'] = "Testare"; +$text['label-testing']['ru-ru'] = "Тестирование"; +$text['label-testing']['sv-se'] = "Testning"; +$text['label-testing']['uk-ua'] = "Тестування"; +$text['label-testing']['tr-tr'] = "Test"; +$text['label-testing']['zh-cn'] = "测试"; +$text['label-testing']['ja-jp'] = "テスト"; +$text['label-testing']['ko-kr'] = "테스트"; + ?> \ No newline at end of file diff --git a/app/fax/fax_advanced.php b/app/fax/fax_advanced.php index 4175b0de61..ed50ef7fcf 100644 --- a/app/fax/fax_advanced.php +++ b/app/fax/fax_advanced.php @@ -151,7 +151,7 @@ if ($action == "add" && permission_exists('fax_extension_add')) { message::add($text['confirm-add']); } - header("Location: fax.php"); + header("Location: fax_advanced.php?id=".$fax_uuid); return; } @@ -189,6 +189,46 @@ $document['title'] = $text['title-fax_server_settings']; require_once "resources/header.php"; +//test result layer + echo "\n"; + + echo "\n"; + //advanced button js echo "\n"; + //show the footer require_once "resources/footer.php"; diff --git a/app/fax/fax_advanced_test.php b/app/fax/fax_advanced_test.php new file mode 100644 index 0000000000..b1738b7b85 --- /dev/null +++ b/app/fax/fax_advanced_test.php @@ -0,0 +1,156 @@ + + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +//includes files + require_once dirname(__DIR__, 2) . "/resources/require.php"; + require_once "resources/check_auth.php"; + require_once "resources/functions/object_to_array.php"; + require_once "resources/functions/parse_message.php"; + +//check permissions + if (!permission_exists('fax_extension_advanced')) { + echo "access denied"; + exit; + } + +//add multi-lingual support + $language = new text; + $text = $language->get(); + +//get submitted id + $fax_uuid = !empty($_GET['id']) && is_uuid($_GET['id']) ? $_GET['id'] : null; + +//get advanced fax settings + if (permission_exists('fax_extension_view')) { + //retrieve any fax ext + $sql = "select "; + $sql .= "f.fax_name, f.fax_extension, f.fax_email_connection_type, f.fax_email_connection_host, f.fax_email_connection_port, f.fax_email_connection_security, "; + $sql .= "f.fax_email_connection_validate, f.fax_email_connection_username, f.fax_email_connection_password, f.fax_email_connection_mailbox, f.fax_email_inbound_subject_tag "; + $sql .= "from v_fax as f "; + $sql .= "where f.domain_uuid = :domain_uuid "; + $sql .= "and f.fax_uuid = :fax_uuid "; + $parameters['domain_uuid'] = $_SESSION['domain_uuid']; + $parameters['fax_uuid'] = $fax_uuid; + } + else { + //retrieve only fax ext assigned to user + $sql = "select "; + $sql .= "f.fax_name, f.fax_extension, f.fax_email_connection_type, f.fax_email_connection_host, f.fax_email_connection_port, f.fax_email_connection_security, "; + $sql .= "f.fax_email_connection_validate, f.fax_email_connection_username, f.fax_email_connection_password, f.fax_email_connection_mailbox, f.fax_email_inbound_subject_tag "; + $sql .= "from v_fax as f, v_fax_users as u "; + $sql .= "where f.fax_uuid = u.fax_uuid "; + $sql .= "and f.domain_uuid = :domain_uuid "; + $sql .= "and f.fax_uuid = :fax_uuid "; + $sql .= "and u.user_uuid = :user_uuid "; + $parameters['domain_uuid'] = $_SESSION['domain_uuid']; + $parameters['fax_uuid'] = $fax_uuid; + $parameters['user_uuid'] = $_SESSION['user_uuid']; + } + $fax = $database->select($sql, $parameters, 'row'); + unset($sql, $parameters); + +//attempt connection + if (!empty($fax) && is_array($fax)) { + $fax_email_connection = "{".$fax["fax_email_connection_host"].":".$fax["fax_email_connection_port"]."/".$fax["fax_email_connection_type"]; + $fax_email_connection .= !empty($fax["fax_email_connection_security"]) ? "/".$fax["fax_email_connection_security"] : "/notls"; + $fax_email_connection .= "/".($fax["fax_email_connection_validate"] == false ? "no" : null)."validate-cert"; + $fax_email_connection .= "}".$fax["fax_email_connection_mailbox"]; + if (!$connection = @imap_open($fax_email_connection, $fax["fax_email_connection_username"], $fax["fax_email_connection_password"])) { + $connected = false; + $response = imap_errors(); + } + else { + $connected = true; + //get message count + $message_count = imap_num_msg($connection); + $response = imap_errors(); + imap_close($connection); + } + } + else { + $connected = false; + $response = $text['label-advanced_fax_settings_not_found']; + } + +//show the content + echo "\n"; + echo "".$text['header-advanced_fax_settings_test']."\n"; + echo "

\n"; + + echo str_replace(['[NAME]','[EXT]'], [''.$fax['fax_name'].'',''.$fax['fax_extension'].''], $text['description-advanced_fax_settings_test'])."\n"; + echo "


\n"; + + if (!empty($fax) && is_array($fax)) { + echo "".$text['header-settings']."\n"; + echo "

\n"; + + echo "\n"; + foreach ($fax as $field => $value) { + if ($field == 'fax_email_connection_username' || $field == 'fax_email_connection_password') { continue; } + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + } + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
".ucwords(str_replace(['_','fax email '],[' ',''], $field)).""; + if (is_bool($value)) { + echo !empty($value) ? 'True' : 'False'; + } + else { + echo in_array($field, ['fax_name','fax_extension']) ? ''.($value ?? null).'' : ($value ?? null); + } + echo "
".$text['label-connection_string']."".escape($fax_email_connection)."
\n"; + echo "

\n"; + } + + echo "".$text['header-result']."\n"; + echo "

\n"; + + echo "
get('theme', 'table_row_background_color_light') ?? '#fff')."; font-family: monospace; font-size: 85%;'>\n"; + echo ($connected ? $text['label-connection_success'] : $text['label-connection_failed']); + echo "

\n"; + if (is_array($response)) { + foreach ($response as $message) { + echo $message."
\n"; + } + } + else { + echo $response; + } + if (isset($message_count) && is_numeric($message_count)) { + echo $message_count.' Message'.($message_count != 1).' Found'; + } + echo "
\n"; + echo "

\n"; + + + echo "
\n"; + echo " \n"; + echo "
\n"; \ No newline at end of file