Display the duration after the call has been made is a job for (J)TAPI. Just monitor the extensions that should use this service, and have them make a HTTP push to the phone displaying the call duration after the call is complete.
Your option B would be an XML service that looks up the CDR database.
I don't get what you mean with option C.
For B you can consult the IP Phone Services SDK to get you started. In the developer section (http://www.cisco.com/cgi-bin/dev_support/access_level/product_support) you'll also find documentation on the CDR database as well as (J)TAPI. I've you've never worked with (J)TAPI, option B is probably a lot simpler, but should you ever need to use (J)TAPI again, it might not hurt to get started (there's an imho rather steep learning curve, but if you are ever to get into CTI I'm sure it's a very helpful experience).