The GUI does some initial setup and checks when starting up the local HTTP server.
If any of those checks fail the process does not start.
This proposal is for a fallback mode where some of the cases we can handle set sane defaults and allow the server to start still.
There are 2 primary cases I can think of to focus on:
- when license server can not be contacted on startup
- when kamailio settings can not be reloaded at startup
If the license server can not be contacted we should leave the shared memory for those lookups a blank dictionary.
The licensed features should then show "License server could not be contacted." and set dsip_reload_required to True in /dev/shmem/shmem_state
On the second case, we are are hot reloading the kamailio settings that can be on startup because the settings.py file may be maintained locally.
We could either change this feature to set a shared memory state variable kam_reload_required to True and leave that decision up to the administrator when they want to reload those settings.
Or we could allow the HTTP server to start but display to the administrator that the state of kamailio is not synced with the settings the DB / files.
I suggest we opt for giving that decision to the administrator when they want to reload, and if it fails, they can at least use the GUI to troubleshoot the issue.
The GUI does some initial setup and checks when starting up the local HTTP server.
If any of those checks fail the process does not start.
This proposal is for a fallback mode where some of the cases we can handle set sane defaults and allow the server to start still.
There are 2 primary cases I can think of to focus on:
If the license server can not be contacted we should leave the shared memory for those lookups a blank dictionary.
The licensed features should then show "License server could not be contacted." and set
dsip_reload_requiredtoTruein/dev/shmem/shmem_stateOn the second case, we are are hot reloading the kamailio settings that can be on startup because the
settings.pyfile may be maintained locally.We could either change this feature to set a shared memory state variable
kam_reload_requiredtoTrueand leave that decision up to the administrator when they want to reload those settings.Or we could allow the HTTP server to start but display to the administrator that the state of kamailio is not synced with the settings the DB / files.
I suggest we opt for giving that decision to the administrator when they want to reload, and if it fails, they can at least use the GUI to troubleshoot the issue.