Cisco's
79xx series VoIP phones are really flexible. I have been doing quite a bit of work with them this week, mostly with their services capability. Working with services involves a bit of detective work.
The documentation is good, but there are little quirks that are not covered.
voip-info.org has been a
big help by providing another documentation perspective.
UI design is a breeze simply because it is tightly focused on consistently moving data. Of course, that means data-based developers can have a field day while display-driven developers think it's useless (insert wink smiley face here.)
Writing services for the 79xx is a interesting exercise because you are forced into disciplined web programming.
The phones don't support cookies, so you can't use them as a session tracking crutch. Passing a session ID around as a form parameter is too cumbersome. In the end, not using sessions makes everything easier. The service page sends a XML service page down, and the phone reacts to user actions by calling down a different URL. The whole thing
feels RESTful.