There are two things I have always wished for, and maybe they are mutually exclusive and maybe not, but I will throw them out anyway.
One would be a page you would go to that would show you a single line corresponding to every single configuration page on FreePBX, with no exceptions or omissions (there should even be some mechanism for third-party modules to tie into this, though obviously you couldn’t force any third-party developer to use it). In the case where there can be multiple items under a heading (extensions, inbound routes, outbound routes, etc.) you could click on a small icon to expand the section and it would list each individual page. Next to each line would be a checkbox. You could check the box next to any page, or for any section if you wanted all the pages in that section. At the bottom there would be a “Select All” button and an “Export to File” button. If you exported to a file, it would create a .csv file of ALL your settings. Basically this would probably be mostly a glorified MySQL export but it would grab any other data it needs as well from wherever that is stored (for example, the Asterisk database).
For the above there should be a corresponding import page that lets you import a generated .csv file, with or without overwriting existing conflicting settings or pages (options should be Overwrite always, Ask, Don’t Overwrite).
My second thought, particularly for the FreePBX distribution, is that there should be some equivalent to the “Time Machine” function on the Mac, where all changed files (or all files on the initial run) are backed up once per hour, to a complete archive that can be used to restore any file inadvertently deleted or corrupted. In case of a problem it should be possible to roll back the system to a previous known good state. But, IDEALLY, you should also at any point be able to generate a full system ISO file that could be burned to a CD/DVD and later popped into a machine (not necessarily the same one) to restore the system. I know this would not be the easiest thing because when installing to a new machine certain configurations might be changed, but that’s my point - when you generate the ISO it should know which files can be copied verbatim and which need to be regenerated during installation of the operating system.
Or maybe you could generate a disk intended to be used only after a base installation of CentOS has been completed, so moving a system would consist of burning a “transfer” CD, installing a basic CentOS/utility package (available from the FreePBX site) on the new machine, and at the end of that installation it would ask for the transfer disk and after loading that you’d have an effective copy of the previous system. In an case, the idea is to make transfer of a functional FreePBX system to new hardware, or restoration of a completely crashed system, as painless as possible. Personally I’d prefer the full system backup that would also grab any “extras” the system admin may have installed and bring them along (those will be wanted too, and it would make things a lot easier if they didn’t have to be reinstalled separately). Again, think along the lines of “Time Machine” under OS X, for those familiar with that program (there’s a similar Linux program called “Back in Time” but the interface isn’t as intuitive as on Time Machine, and also, we would probably need something that can be run from either the web interface or from a SSH session command line prompt, since most users don’t have a GUI installed).
Those are two types of backups I have wished for at various times, so maybe one or both of those will give you some ideas. By the way, thanks for asking for input on this.