I don't know if this is a 3CX issue or a GrandStream issue. I think it's a combination of BOTH. A case of the left hand not knowing what the right is doing. So I'm posting this on both forums. I see in the provisioning folder on the server, that there are a bunch of files named "cfg<macaddress>," where <macaddress> is the mac address of the individual phones. Example: "cfg000B823313EE" From here on, I will refer to this as "the cfg file." These files contain a string of parameter/value pairs containing settings for the phones. Apparently these are generated only from the "Phone Provisioning" tab of the "Edit Extension" screen in System Administration. What are they for? Or rather, what good are they for user preferences? Set user preferences like display brightness and contrast, and the settings take effect immediately without a reboot. They are NOT saved to the cfg file. Reboot the phone, and these settings are lost. Set BLF button settings in "Edit Extension" in System Management, and save changes. The cfg file is updated. Reboot the phone and the changes take effect. Manually edit the cfg file to set the BLF buttons. Reboot the phone and the changes are not loaded. Use "Edit Extension" to set the BLF buttons, save changes. Manually edit the cfg file with different contrast/brightness settings. Reboot the phone. NONE of the settings take effect. Use "Edit Extension" to make a change, save changes. The contrast/brightness values in the cfg file are reset to the defaults from the main provisioning file. Apparently, there is a flag set, or a date/time comparison is made, to determine if the cfg file is applied when the phone is booted. This is totally controlled by the "Edit Extension" page of System Administration. Also, "Edit Extension" apparently reads the default provisioning file, gets the values from there, adds its own changes, then saves the whole thing, overwriting any manual entries. This works properly: Set BLF's in "Edit Extension." Save changes. Reboot the phone. The BLF's are applied. But then, this one is really great: Set a BLF in the phone's own Web UI. Save the change. The new BLF is applied. Reboot the phone. ALL BLF's are gone. Reprovision the phone. The original BLF's are applied, but the one set in the phone's web UI is gone. Pardon me for shouting, but-- NOT BEING ABLE TO SAVE AND RELOAD USER PREFERENCES AFTER A REBOOT IS NOT ACCEPTABLE! BEING FORCED TO SET PERSISTENT BLF ENTRIES ONLY IN SYSTEM MANAGEMENT IS NOT ACCEPTABLE! I mention brightness and contrast because these are not consistent between GrandStream phones, even of the same model. Two phones, same model, same contrast/brightness settings. One looks great. The other may be unreadable. If we do a firmware upgrade, or for any reason have to reboot phones, these settings must be re-entered. The same goes for BLF's. The worst part of it is, we have a few hundred phones, and we are only four in the IT department. We should not have to set every single phone's BLF's in System Administration! No, we have too many users in too many departments with too much variation in their jobs, to give everybody the same BLF's. Neither should the user be forced to re-enter preferences and BLF's because we had to do some maintenance. It would not be so bad if one could manually edit the cfg file. In that case, we could write a simple application for our users to enter these preferences, and save them to the cfg file. But if the cfg file is modified OUTSIDE of the "Edit Extension" screen, it is not used on reboot or in reprovisioning. Unless there is something very basic that I'm missing, there needs to be some upgrades put into both 3CX and GrandStream phones.