I have noticed many of our sister free software projects have recently incorporated features commonly associated with Bayonne. Asterisk 1.4, for example, introduces a native scripting language. The excellent community fork of Asterisk, OpenPBX, had planned to use embedded io for this purpose. FreeSwitch, another very interesting project, is looking at adding something like an external execute facility something like Bayonne's original tgi or Asterisk's later agi. While we have had neither time, facilities, nor resources available to focus on fancy new drivers or protocols for recent Bayonne releases, we have focused in one area which I believe is about the future, integrated telephony.
Integrated Telephony is about making telephony services seamlessly available both to users and other applications. There have been other efforts to introduce generic and open standards based computer telephony integration before. One such effort was NextPath's SCTP (Simple Computer Telephony Protocol), and some ideas found in it still exist, as part of SIP. Another effort was TOSI which we were looking to use originally in Bayonne. What these and other similar efforts had in common is that they focused on introducing entirely new protocols (most often over TCP) for telephony integration rather than making use of existing services.
In the proprietary software world, there are integration protocols such as CSTA. These were based on the idea of exposing eventing and call states in a common way. Unfortunately no vendor actually introduced these ideas in said common way, and the actual standards document to describe it are neither free, nor even comprehensible, given the vast size of that spec. Other solutions, such as Microsoft's TAPI and Novell's TSAPI, have focused on providing a documented public application interface to hide proprietary and undisclosed backend implementations. The same approach is used in JTAPI.
Given that we are talking about integrated telephony for free software, we do not have reasons for nor desire to introduce or support undocumented or source secret back-end protocols. Nor do I think we should introduce new protocols where existing and well understood protocols and services may already exist. Our approach to achieving integrated telephony is founded upon three simple ideas: the use of fully standard xmlrpc as a foundation for exposing telephony services and functionality; the use of XML network eventing; and, the application of basic http to transport bulk a/v data between applications and the telephony server. Together these allow one to create new kinds of telephony integrated applications, whether programming applets for the desktop that show incoming callers or web services and hosted applications which make use of telephony in complex and interesting ways.
A side benefit is of course being able to use these same methods for telephony management and control applications. With the recent freeing of Java, I am in particular interested in developing a Java version of our original Bayonne1 network operations center monitor, sitemon. We may look at doing some fun and useful things, like introducing a gnome applet to alert you about incoming calls and voice mail. Integrated telephony using open standards and protocols is just one of several things planned for the 3.0 release of GNU Bayonne, and in fact is already initially available in the current 2.3 release series. However, I think it is our most important and represents one of the reasons why I think working in the free world is often so much better than working in the proprietary one.