Bayonne is the telephony server of the GNU project.  Bayonne, which is
based on the ACS project, offers a multi-line interactive voice response
telephony server which may be scripted and directly extended thru modular
plugins.

With Milestone #5, Bayonne now supports FreeBSD in addition to GNU/Linux
(and possibly Solaris).  This is the first release which demonstratebly
works under FreeBSD and also happens to support the Voicetronix 4 port
analog DSP card which will be used as the core of Bayonne VoIP
development in coming weeks.  In addition, support for Aculab and Dialogic
hardware has been initiated, though it is not yet complete.

The fourth Bayonne milestone featured many changes, starting with
international support and the new french language vocabulary.  There are
many less visible changes that effect and expand the scope of DSO
capabilities for the Bayonne server as well as greatly improve stability
of the server.  With 0.4.2, expanded support for initiating dialout
sessions has been added along with preliminary support for locating
streams and the dialogic sdk.

The 3rd milestone release of Bayonne is being made available from
ftp://www.voxilla.org/pub/bayonne immediately.  This release represents
both a more rigerously tested server, and a "usable" or "deployable"
server.  An audio library has been recorded for use with the new
phrasebook system, and some documentation has been drafted.  Many
features have also been clarified and greatly expanded upon for better
use in deployable servers.  A lot of bugs were also found and fixed 
between 0.2.1 and 0.3.

In particular a number of new issues were identified for both QuickNet
and Pika hardware.  In the case of QuickNet cards, it was found to be
nessisary to do a full close/reopen of the /dev/phone devices to reset
the card otherwise they stop responding between calls, and this was
done in 0.2.  When the server is started as root, the /dev/phone devices
are initially opened under root, but then the server reduces its
privilege to "mail" and can no longer re-open /dev/phone.  In 0.3,
the server now resets file ownership of /dev/phone devices.

The story with Pika is also strange.  Pika has released several MonteCarlo
RPM's, all of which are called 5.5-3, but each of which are actually
DIFFERENT.  In some cases, the server will not find libmonty.so
when started because it is in /usr/pika/Release and not /usr/lib.  You
can either move it to /usr/lib or add /usr/pika/Release to your
ld.so.conf and this should work.

Bayonne will be ported to FreeBSD, starting with milestone 4 or 5, and to
other platforms soon afterward.  Other telephony support plugins will be
created as time allows.  If you are interested in seeing your favorite
telephony card supported, feel free to join the Bayonne developers list
hosted on sourceforge, available from "bayonne-devel-request@lists.sourceforge.net".

Bayonne cvs is hosted on subversions as well as on sourceforge.  Anonymous
cvs access is available from subversions.gnu.org under the module name
"bayonne".

Before you build and install Bayonne itself, you will need to install
Common C++, ccscript, and ccaudio.  These, and cvs milestones, can be
found at ftp://www.voxilla.org/pub/bayonne.

After you have built bayonne (via "configure" and "make"), and assuming
you have either at least one Quicknet LineJack card or a supported
Pika card with the GNU/Linux MonteCarlo RPM already properly
installed and accessible under your current user id, you may immediately
test bayonne from the "build" directory.  Simply cd to "server" and
execute "./bayonne --test".  Bayonne will immediately load a bunch of DSO
modules and perform a complete 3 stage regression test on itself.  This
should take less than 30 seconds, and should complete with a message
indicating all tests have "passed".

Bayonne "--test" mode will select the default telephony plugin to use
based on the current API's found when Bayonne was "./configure"ed.  If
MonteCarlo is found, then it will always select the Pika MonteCarlo in
"--test" mode, otherwise, either Quicknet "phonedev" support or the
"dummy" driver will be selected.

When you configure Bayonne for actual use with "make install" and if you
have multiple telephony api's installed on your machine, you will need to
specify which plugin driver to select in /etc/bayonne.conf.  Under
[plugins] simply put a like such as "driver = phonedev" or "driver =
pika".  I hope to have Bayonne documentation completed on milestone 3, and
the format of the bayonne.conf file will be documented there.

You can do more things with "--test" though.  Enter "bayonne --test
playrec".  This will bring up a Bayonne server with the trace DSO
loaded that runs from the "build" directory.  Call your LineJack, and it
will answer and run the "playrec" script.

Unfortunately, a document to describe how to configure and control the
Bayonne server and create scripts in bayonne's native scripting language
have not yet been prepared, though one will be shortly.  If you are
already familiar with ACS, you will find much similiarity and yet
many subtle differences in both the configuration and scripting language.
Bayonne can also execute "perl" and shell images thru "TGI" (Telephony
Gateway Protocol).

If you are prepared to go forward and experiment with this second snapshot
milestone, you will find a very unusual package.  Bayonne is built from
the ground up as a C++ server, and makes extensive use of loadable
"plugin" modules.  Bayonne is also a fully threaded server, and uses a
state-event driven scripting engine (ccscript) at it's core.  One can
safely say Bayonne is a unique state-of-the-art platform for developing
telecommunication services.

David Sugar <dyfet@ostel.com>
Bayonne GNU Maintainer

