diff --git a/linphone-app/assets/languages/en.ts b/linphone-app/assets/languages/en.ts
index 393fbe281..2fc06a141 100644
--- a/linphone-app/assets/languages/en.ts
+++ b/linphone-app/assets/languages/en.ts
@@ -1502,7 +1502,7 @@ Server URL not configured.
lastProvisioningFailed
'Last remote provisioning failed' : Test to warn the user that the last fetch of remote provisioning has failed.
- Last remote provisioning failed
+ Remote provisioning failed. The link might be used or expired. If it was provided to you, please contact your administrator.
generateLabel
diff --git a/linphone-app/assets/languages/fr_FR.ts b/linphone-app/assets/languages/fr_FR.ts
index a71e268e7..c6d0d8489 100644
--- a/linphone-app/assets/languages/fr_FR.ts
+++ b/linphone-app/assets/languages/fr_FR.ts
@@ -1502,7 +1502,7 @@ URL du serveur non configurée.
lastProvisioningFailed
'Last remote provisioning failed' : Test to warn the user that the last fetch of remote provisioning has failed.
- La dernière configuration n'a pas pu être récupérée
+ Erreur de récupération de la configuration distante. Le lien de configuration a peut-être déjà été utilisé ou a expiré. Merci de contacter un administrateur si ce lien vous a été fourni.
generateLabel
diff --git a/linphone-app/src/components/core/CoreManager.cpp b/linphone-app/src/components/core/CoreManager.cpp
index b4aa2e138..c9c9f7f12 100644
--- a/linphone-app/src/components/core/CoreManager.cpp
+++ b/linphone-app/src/components/core/CoreManager.cpp
@@ -464,6 +464,8 @@ QString CoreManager::getDownloadUrl () {
void CoreManager::setLastRemoteProvisioningState(const linphone::Config::ConfiguringState& state){
mLastRemoteProvisioningState = state;
+ if (state == linphone::Config::ConfiguringState::Failed)
+ emit remoteProvisioningFailed();
}
bool CoreManager::isLastRemoteProvisioningGood(){
diff --git a/linphone-app/src/components/core/CoreManager.hpp b/linphone-app/src/components/core/CoreManager.hpp
index fc30f287a..f4af36360 100644
--- a/linphone-app/src/components/core/CoreManager.hpp
+++ b/linphone-app/src/components/core/CoreManager.hpp
@@ -192,6 +192,7 @@ signals:
void eventCountChanged ();
void callLogsCountChanged();
+ void remoteProvisioningFailed();
private:
CoreManager (QObject *parent, const QString &configPath);
diff --git a/linphone-app/ui/scripts/Utils/utils.js b/linphone-app/ui/scripts/Utils/utils.js
index 87b5e095d..f80116c71 100644
--- a/linphone-app/ui/scripts/Utils/utils.js
+++ b/linphone-app/ui/scripts/Utils/utils.js
@@ -728,3 +728,11 @@ function printObject(o) {
else
return out;
}
+
+function infoDialog(window, message) {
+ window.attachVirtualWindow(buildCommonDialogUri('ConfirmDialog'), {
+ buttonTexts : ['',qsTr('okButton')],
+ descriptionText: message,
+ showButtonOnly: 1
+ }, function (status) {})
+}
diff --git a/linphone-app/ui/views/App/Main/MainWindow.js b/linphone-app/ui/views/App/Main/MainWindow.js
index af0263cc8..6bf7cfc1c 100644
--- a/linphone-app/ui/views/App/Main/MainWindow.js
+++ b/linphone-app/ui/views/App/Main/MainWindow.js
@@ -116,3 +116,9 @@ function handleAuthenticationRequested (authInfo, realm, sipAddress, userId) {
virtualWindowHash:Qt.md5('Dialogs/AuthenticationRequest.qml'+realm+sipAddress+userId)
})
}
+
+// -----------------------------------------------------------------------------
+
+function warnProvisioningFailed(window) {
+ Utils.infoDialog(window, qsTr('lastProvisioningFailed'))
+}
diff --git a/linphone-app/ui/views/App/Main/MainWindow.qml b/linphone-app/ui/views/App/Main/MainWindow.qml
index 4d62f98d5..5b45977b8 100644
--- a/linphone-app/ui/views/App/Main/MainWindow.qml
+++ b/linphone-app/ui/views/App/Main/MainWindow.qml
@@ -56,6 +56,7 @@ ApplicationWindow {
Connections {
target: CoreManager
onCoreManagerInitialized: mainLoader.active = true
+ onRemoteProvisioningFailed: if(mainLoader.active) Logic.warnProvisioningFailed(window)
}
Shortcut {
@@ -70,13 +71,18 @@ ApplicationWindow {
active: false
anchors.fill: parent
- onLoaded: switch(SettingsModel.getShowDefaultPage()) {
- case 1 : window.setView('Calls'); break;
- case 2 : window.setView('Conversations'); break;
- case 3 : ContactsListModel.update(); window.setView('Contacts'); break;
- case 4 : window.setView('Conferences'); break;
- default:{}
- }
+ onLoaded: {
+ if(!CoreManager.isLastRemoteProvisioningGood()) {
+ Logic.warnProvisioningFailed(window)
+ }
+ switch(SettingsModel.getShowDefaultPage()) {
+ case 1 : window.setView('Calls'); break;
+ case 2 : window.setView('Conversations'); break;
+ case 3 : ContactsListModel.update(); window.setView('Contacts'); break;
+ case 4 : window.setView('Conferences'); break;
+ default:{}
+ }
+ }
sourceComponent: ColumnLayout {
// Workaround to get these properties in `MainWindow.js`.