Enterprises have long sought ways to add real-time communications to business applications to improve customer interactions, streamline workflows, more quickly respond to critical events and more efficiently execute time-sensitive transactions. Integrating interactive communications with software applications and business processes, however, has proven difficult, costly and time-consuming. Traditional computer telephony application programming interfaces, such as TAPI and JTAPI, feature low-level, vendor-specific interfaces that can make programming slow and expensive.