|
What is this?
This branch is a development branch dedicated to making FreePBX 2.4 work with SQLite3, and no Asterisk. This will ease the development of FreePBX, as developers will be able to run multiple FreePBX "servers" on the same machine, and will help distributors of FreePBX by giving them the option to ship embedded devices which use FreePBX and making them work with SQLite3 backend instead of MySQL. There is also another cool factor, as this will give the FreePBX site an online demo, which will look exactly the the same look as the production version.
New stuff
As small bonus, I am adding new funky stuff:
- The new engine will need to load the configuration from a different place, not /etc/amportal.conf. This means we need to prioritize the loading of configuration files, and finally move to a configuration file called freepbx.conf instead of amportal.conf. I would like to get 2.4 with amportal.conf support, and by 2.5 on one of the upgrades rename it to freepbx.conf.
- First try to load freepbx.conf on the webroot
- If not found fallback to /etc/freepbx.conf
- If not fonud, use the legacy /etc/amportal.conf
- SQLite3 support, finally :)
- Many clean ups in the internal code (like removing that stupid version.txt file).
- Remove many warnings in the code (typically just adding @ in front of commands), the debugging errors should not be seen on the user screen. Loading extensions as needed (again sqlite3).
- Functions will not decide to kill of the main process, the main process will need to decide it should "die", one example is parse_amportal, which in this branch just returns null and the calling code should decide what to do.
The reaons for those changes are:
- Changing the configuration file name is something that should have been done a few months ago. AMPortal is dead, the project is now called FreePBX.
- My personal goal in the last year. This will make FreePBX a smaller product and developers will be able to put it into smaller machines. There is also no need for a bug SQL server in this project (except CDR).
- It's just ugly. Now we can determinate the version of asterisk without that old ugly hack.
- Enough said, this shold not happen in real life.
- This violates the Liskov substitution principle and is a bad design in software engenering, functions should basically return a value and not change the functionality of a program.
Future
I would also try to have a web based configuration wizard. It will configure the server via web and install the SQL tables when needed. This needs a lot more of brain-storming.
