One feature that I get asked about a lot and is something that would be extremely useful is true extension mobility. That is, consider a scenario where a user has to "log into" their extension when they get to their desk in the morning, say extension 111. The next day they decide to work from their home office where they sit down and log into their IP phone at home. The process of logging into their home IP phone "logs out" their office phone so their home IP phone now becomes extension 111. The process of logging into and out of a phone also means that local configurations also convey to whatever phone is active.
I've tried this in the past using the concept of agents to log in and out, and it worked for the most part but it seemed to me to be a poor mans way of doing it. There must be a better way to accomplish this. This has been one of those projects that has bugged me for quite a long time.