Inside of Microsoft we use a system called Lync for our phone, IM and collaboration. Take a look at:
This is a good article that explains the Lync Office Communicator in brief.
Why is Lync or similar products important to you as a software developer or architect?
Lync represents a category of software products that consumes software developed by others, such as you. As you think about how to build your products, your thought process needs to be moving along a line of thought: How will my package fit into these unified communications packages?
For example, if you are create a simulation product, say a product that simulates an assembly line in your business place, you may need to integrated your work into the Lync system. Why? This could expand how your simulation would be evaluated. People who can provide a few minutes of testing or evaluation, might waste that time to find out how to use a separate UI to store data. If you use an AI tied into Lync, then the AI could come up ask a few questions and them move on.
There are examples of how to use IM as an artificial intelligence. Visual Studio 2010 does this quite simply, so it is worthwhile to take a look.
Simple to do, simple to collect data and helps improve your products.