Copyright (c) 1999-2001 by Open Source Telecom Corporation.
Verbatim copying and distribution of this entire article is permitted
in any medium, provided this notice is preserved.

Changes from cvs milestone 1 (0.1) to cvs milestone 2 (0.2)
- new "dummy" telephony driver stub for when no drivers found.
- pika driver being added.
- --test mode selects default test driver based on ivrconfig.h.
- line seizure state added for phonedev outgoing calls.
- 'a'ctive status split between 'i'ncoming and 'o'utgoing.
- fifo line processing bugs and long options fixed thanks to Matt.
- improved reset handling for services.
- tgi signal handling added.
- service stopping defined.
- improved answer supervision.
- getContinuation added for sequenced playback.
- "python" tgi module embedding added.
- "tcl" tgi support added with tcl tgi extensions.
- TGI.py module from Michal Bukovjan.
- INSTALL document updated by Rich Bodo.

Changes from 0.2.0 to 0.2.1 (between cvs milestone 2 and 3)
- added bayonne.conf sample file.
- created rpm build procedure.

Changes from 0.2.1 to 0.3.0
- pack and unpack ccscript commands added.
- ability to chain DSO modules to fifo command handler.
- move user recorded prompts to /var/bayonne/prompts.
- tts translator support added.
- some bug fixes from Matthias Ivers.
- new scheduler code by Matthias.
- scheduler now disabled for --test or implicit script in command line.
- interface for scalable database services.
- fixes for broken tgi.
- Documentation for phrasebook and script interpreter added!
- added autoload of "bayonne.ext" dso for installed applications.
- fixed double listing of steps.
- Pika fixups to use DSP_Reset even tho should not be nessisary.
- Annotated audio file support in script system.
- Ability to "trim" tail end of recorded prompts.
- remove root privilege after fifo is opened.
- signal stoppage fixes.

Changes from 0.3.0 to 0.3.1
- passed fifo ring command may include a starting script
- pika call offer detection disabled if "answer" for trunk group = 0
- new DSO sync class and expanded functionality for scheduler.
- start of mailbox support.
- pika driver must sleep in startup.
- new DSO for network monitoring support.

Changes from 0.3.1 to 0.3.2
- test for and use reentrant functions.
- fixed uninitialized id which caused segfaults.
- some include file restructuring.

Changes from 0.3.2 to 0.3.3
- setenv simulated for Solaris.
- ability to merge voice prompt library/national specific rules on top of
  language specific phrasebook rulesets using new [localize] section
  which will also hold currency information, etc.
- currency phrasebook rules defined for english.tts module.
- [paths] precache entry added for pre-caching of voice libraries as
  may be required for Dialogic support.  This also could prove a useful
  optional feature for other API's.
- new TGI tokenizer based on Matt Benjamin's contributed parser.
- new TGI 2.0 spec with backward compatibility.
- new TGI.pm module which impliments 1.x and 2.x TGI token parsing.
- added append mode for recording into existing audio files.

Changes from 0.3.3 to 0.3.4
- time expired garbage collected sessions are now support by the scheduler
  thread.  This solves issues with service threads that are no longer
  needed but who's scope may still be nessisary for other 
  "dependent" purposes at least for a little while longer.  The most
  common case for this will be with "audio feeds" and disconnected calls
  while in active VoIP stacks.
- a slight change in link order to assure -lhoard is last.
- strange segfault problem related to isThread() resolved by skipping.
- start of resolver thread support and tcp protocols support.

Changes from 0.3.4 to 0.4
- french language support
- once synchronization capability
- pack and unpack now part of core language.
- detached tgi libexec (libexec 0).
- "libonce" added.
- now requires ccscript 1.1.0.
- const fixes for future Common C++ release.
- French Male prompt dictionary contributed by Wilane Ousmane.
- regression test for fifo parser added.
- new &duration rule added to phrasebook.
- delayed init to "98" for future Dialogic support.
- added bayonne.h to spec file.

Changes from 0.4 to 0.4.1
- a new seperate catch for DSO tgi phase loading.
- a fix for PORT_QUERY processing to eliminate "%" prefix.
- a start of the smtp delivery module "vpim".
- all getOption()'s changed to getValue() in language modules.

Changes from 0.4.1 to 0.4.2
- fix for header changes in latest kernels between IXJ_CID and PHONE_CID.
- unique driver specific class names for easier source browsing.
- cross-compiler support for telephony SDK tests.
- Matt's contributed support for pika outbound dialing.
- added "ring" to fifo commands.
- streams and dialogic sdk tests added.

Changes from 0.4.2 to 0.4.3
- added posix realtime scheduling capability.
- some further fixes to pika API detection.
- start of vpb.
- italian language module added.

Changes from 0.4.3 to 0.4.3a
- last minute fixes for Common C++ 1.2

Changes from 0.4.3a to 0.4.4
- resolved pika config to only appear in pika driver subdirectory.
- resolved /dev/phone config to only appear in /dev/phone subdirectory.
- restricting GPL related exceptions only to specified driver directories.
- aculab driver configuration added.
- dialogic driver configuration added.
- fifo "busy" and "idle" commands added.
- fifo "hangup" and integrated TRUNK_STOP_DISCONNECT request added.
- some clarification on signaling events for "digital" (T1) calls.
- events defined for "digital" (ISDN) calls.
- added libpath to [keypaths] for TGI execution path.
- added support for new Voicetronix vpb2 API.
- all DSO modules are now found in a "versioned" /usr/lib/bayonne path
  (hence /usr/lib/bayonne/0.4.4/).

Changes from 0.4.4 to 0.5.0
- added bayonne.faq
- added stack frame tuning for FreeBSD threads.
- use libvpb2 test for voicetronix rather than header test.
- interum FreeBSD Quicknet device support added.
- do not activate bayonne on rpm install.
- pika ring debounce setting added.
- "digits" now initialized in trunk.
- only disconnect on loop drop if already offhook.

Changes from 0.5.0 to 0.5.1
- fix in answer state for delayed answer.
- fix small memory leak in vpim and pika driver restart.
- trunk mempager auditing in debug modes.
- fix disconnect issue.
- start of audiofeed
- fix of double fifo execute

Changes from 0.5.1 to 0.5.2
- use "static" allocation of audio buffers in trunk class for Pika driver.
  This assures the pika audio buffer is present even if processing has
  stopped.
- rewrote database access integration for ccscript; now uses udp broadcast
  and assumes to talk to a new "database adapter" rather than DSO based.
- statmon functionality merged with database core to new network node
  service.

Changes from 0.5.2 to 0.5.3
- fixed fifo shutdown for daemon mode.
- pika state machine supports dsp request failures in scripting now.
- added --without-hoard configure option to disable hoard check to build
  images for test debugging.
- added gui debugger, --gui and --display options, with FOX toolkit.
- added macros for sym names to avoid typos.
- made drivers busy out correctly update call counters.
- some adjustment on pika play for short prompts.
- added -with-mpatrol for memory debugging support.
- bayonne extension compiler added.

Changes from 0.5.3 to 0.5.4
- change "or" in translators for RH7 gcc oddities.
- ani/dnis/did/etc reduced to new "%clid" (calling line id) and "%dnid"
  (dialed number id) for all future references.
- extensive changes for correct pika callerid behavior.
- fixed pika play issues where duplicate threads could be created.
- added trunk group pickup timer and updated vpb to use it.
- have made "FrenchF" part of standard Bayonne distribution.

Changes from 0.5.4 to 0.5.5
- support for "map" files...
- fix clearing of callerid info in Attach.
- new initial call selection mechanism to support mapping.
- zapata autoconf tests.
- addition of "request" queues by trunk group.
- addition of scripting entity and fifo command "request".
- addition of idle processing of pending requests.

Changes from 0.5.5 to 0.5.6
- use new getGroup() friend.
- add "ready" status to trunk state flags.
- add "isReady()" check for a trunk.
- add group based fifo operations.
- added trunk group selection methods.
- added "generic" modules which bind to the interpreter.
- updated for Common C++ 1.3.0.
- moved special keywords into generic modules.

Changes from 0.5.6 to 0.5.7
- addition of application specific prompt libraries using "::" paths.
- application specific prompt libraries can be on an alternate search path.
- condensed playrec script.
- cleaned up some leftovers from stripping server down.
- added %gid as unique global call identifier in scripting.
- start of buddies mechanism for electing a failover monitor.
- audit and cdr updated to parse variables and to provide gid reference.
- base rtp functionality added for vpb driver.
- changes to support Bayonne application "hosting".
- use of special "hosting.conf" for reviewable root setable overrides
  when a "hosted" Bayonne server is launched.
- cdrsend added for network broadcast of audit records.
- test case 1 updated for new cdr processing format.
- dialogic fixups in autoconf/configure stages.
- .aaprompts and .aascripts possible on ~/ path.
- .aaschedule possible on ~/ path.
- default root "user" level is now found under userid "bayonne" rather
  than userid "mail".  It is suggested a "bayonne" system user and group
  is created, along with a /home/bayonne working directory for locally
  created scripts and prompts that are not part of the initial 
  distribution. 

Changes from 0.5.7 to 0.5.8
- fixed multi-trunk group loader.
- always disable ring detect for trunk groups with answer = 0.
- regression "test" module can update trunk linked to group.
- regression "test" scripts merged into single script (uses :: scope).
- enhanced script scheduling to support lists of days on one line.
- smart "reset" handling for pika
- dialogic completes interpreter regression!

Changes from 0.5.8 to 0.5.9
- use HOLD and RELEASE macros in Dialogic driver to make it easier to
  document and strip later.
- uio tie-in between Dialogic and trunk AudioFile buffer i/o.
- call redirect handling for forwarding, hold/recall, etc.
- introduction of "alternate" scheduler functionality to specify something
  other than days of the week.  Initially under fifo control, but will
  support definition of holidays, etc.  Can also be used to schedule
  'states', like "away", "closed", or "holiday".
- new "schedule" script command to issue fifo scheduling from script.
- fix for segfault in peer network stack.

Changes from 0.5.9 to 0.5.10
- cleaner permissions for /var/bayonne workspace.
- auto purge of temp and cache at startup.
- introduction of "start" to allow one script to immediately initiate a
  call on another channel relative to the current one (as compared to
  request).
- test mode now cleans up temp directories.
- join state and trunk joining support now in the pika driver.
- signal notification in script, completes trunk join functionality.
- "wait" renamed to "sync".
- "join" and "wait" script commands used for join state operations.

Changes from 0.5.10 to 0.5.11
- fix join and wait timeout into seconds from milliseconds.
- conference dsp support in the pika driver.
- idle timer added for forced hangup on inactivity.
- idle command added to set idle time over trunk group default.

Changes from 0.5.11 to 0.5.12
- pika call progress detection.
- pika call progress during flash.
- sieze timer in trunk groups.
- pika sieze state on outbound scripts.
- use different back-to-back solution which doesnt interfere with dtmf.
- big fix for collect.

Changes from 0.5.12 to 0.5.13
- start of dynamic conference resource pool resource management.
- build of dynamic cache pool.
- user startup selects "group".
- added dtmf key events to fifo, TGI 2.1.

Changes from 0.5.13 to 0.5.14
- fix for dnis/dlid/dnid bug in tgi.
- added database adapter to bayonne.conf for bayonnedb adapter.
- "start" command now does trunk groups as well as port offset.
- fifo "start" now does trunk group search.
- start of reserved/preallocated conf. resources for pika.
- fifo commands for meet-me conference allocation.
- .mix file for exporting mixer configuration.
- added fixed dates to secheduler and other scheduler improvements.
- scheduler no longer order dependent!

Changes from 0.5.14 to 0.5.15
- fixed segfault in Request constructor.
- fix for vpb digit termination.
- Dialogic plugin is operationally usable.
- fix in pika dial state handler if offhook.
- "bayonne_wrapped" added to simply cgi execution environment.
- TGI 2.2 with "SERVER_CONTROL", and seperate "SERVER_PROTOCOL" vs 
  "SERVER_VERSION".
- internal support for tagging and cancelling requests.  This allows
  for msgwaiting support with the ability to cancel old changes, and
  for priority paging services.
- mystery for loss of TGI processes fixed.
- new "request" support logic which can process requests immediately
  if a resource is available and threashold limits for trunk policies.
- policies can override global language selections.
- start of new "tcpmon" interactive tcp session debugging tool.

Changes from 0.5.15 to 0.5.16
- added vovida check code.
- tcpmon support working.
- sendmail.pl updated.
- some good vpb fixes from David Rowe.
- support for advanced outdialing plugins and call initiation.
- make bayonne_wrapper more of a sudo facility
- place call on hold added.
- flash linked to dial state for transfer and hold operations.
- passwordless ssh remote entry for wrappers possible.
- convergence of several extension classes into common class Module.

Changes from 0.5.16 to 0.5.17
- further consolidation of DSO "Module" class.
- support for DSO modules that are peer networking aware.
- support model for DSO modules that can perform ASR and TTS services. 
- rewrite of peer networking to add buddies and node elections.
- support of gateway captive execution for host based TTS and ASR programs.
- start of full digital support for dialogic cards.
- start of replacing sctools with direct timeslot management code in the
  dialogic state machine.
- wrappers changed to be more web server friendly, to allow interpreter
  startup, and to avoid conflicts between SERVER_ definitions of a CGI
  and Bayonne environment.
- very basic "sunrpc" plugin added.  This will eventually do more...

Changes from 0.5.17 to 0.5.18
- duplex operation added to pika.
- "detect" added to trunk groups to enable dialtone detection during call.
- urldecode used for parsed pathnames to voice libraries.
- init script now has telephony driver "autodetect" capability.
- fifo based restart.

Changes from 0.5.18 to 0.5.19
- fix for dialogic analog card autodetect code.
- fix for pika duplex resource allocation.
- fix for baxs.
- added datafile and other installs to baxs.
- fix for sunrpc -lnsl as autoconf test and disabled for freebsd.
- added "bayonne_status" to show status of running nodes.
- some fixes from rich for scheduler parsing and trunk groups.
- fixed startup bug from not having "bayonne.nodes" initially created!
- added "bayonne_apache" for all things bayonne web related.  It can
  clone an apache config into a new one that runs under the bayonne
  user id, and can execute apache with this new config.
- "playany" added as alternate play that will play any of the listed
  prompts found in order, rather than reporting missing prompt files
  as ^error events.
- "speakany" added to do the same as "playany" for the say command.
- extensive renaming of internally defined variable name space.
- "playone" added to skip thru and play the first found audio sample.
- create php config drop file.

Changes from 0.5.19 to 0.5.20
- additions to dropfile.
- bayonne_setup added to manipulate other config file options.
- fixed %digit bug
- made playrec always use .au
- added playtmp to play and remove temporary voice files.

Changes from 0.5.20 to 0.5.21
- added "say" command and host tts gateway support.
- added playwait state for host tts operations.
- added festival tts wrapper script for gateway execution.
- added "libplay" for libexec programs that generate audio samples.
- syntax and command usage extensivily revised to take advantage of
  new member function support in ccScript 1.5.0.
- baxs has become "bayonne_install", an application installer script.
- bayctrl has become "bayonne_control"
- modular config/admin system with dialog.

Changes from 0.5.21 to 0.5.22
- added "sys" prompts for non-language localized applet prompts.
- fix segfault of member functions.

Changes from 0.5.22 to 0.5.23
- map support for different scan modes.
- digit manipulation with chop, trim, insert, delete, prefix, and replace.
- intelligent timeout values, like 1.5s, 10m, etc.
- "assign" added for mapping CallXML assign and clear operations.
- some xmlish parms and keywords added here and there...
- bindings for XML parser plugin.
- added "load" to initiate xml parsing and CallXML "goto" operation.
- URLAudio support for direct URL access to audio resources.
- proxy server configuration support.
- Anders Bayonne Manual in doc directory.

Changes from 0.5.23 to 0.6.0
- RTP trunk driver started.
- XML parser integration and BayonneXML parsing.
- support for multiple xml parsers and runtime script selection thru
  load.xml

Changes from 0.6.0 to 0.6.1
- fix in rpm spec for calling bayonne_apache
- changed order of prompt type precidence evaulation.
- added perl.tgi module to default distribution and made it functional.
- vmodem driver now can be worked on
- fix for pika audio parellelism
- new alternate specs for ftp site building.
- server "--aliases" option to provide default aliases for old style
  session variable naming.

Changes from 0.6.1 to 0.6.2
- switch integration support and msg waiting lamp control for voicemail.
- new aculab driver init code.
- add dummy script handler methods support.
- modules can now influence what script files are compiled.  Some cool
  stuff possible with this.
- thread auditing.
- pika stopServices() bug fixed.
- collect timeout handling on quicknet and dialogic fixed.
- secure server startup options thru init script and --secure flag.
- support for ccscript 1.6.0.
- send command added to post into foreign fifo's.

Changes from 0.6.2 to 0.6.3
- hangup state handlers ignore additional hangup requests while within.
- support for voicetronix pci/isa unified driver.

Changes from 0.6.3 to 0.6.4
- submitted patch for "request" bug from Andreas Damm.
- added idle request handler to Dialogic driver.
- fix flash.
- dammy fix for audio clipping on record.
- dammy fix for audio play on fast machines.
- a fix for cpu load on non-threaded dialogic.
- added timeout for web transactions.
- cpu loading fix for async vpb event thread.

Changes from 0.6.4 to 0.6.5
- gcc 3.0 stuff.
- bayonne vpb updates for CID support from David Rowe.
- xml support based on test of Common C++ 1.5.1 "COMMON_XML_PARSING" flag.
- support for dso modules in perl and temp. fix for DSO loader.
- tcl and python tgi modules.
- fix for perl.tgi to support perl DSO's.
- patches for linear2ulaw and minor bug fixes from Kai Germaschewski.

Changes from 0.6.5 to 0.7.0
- fix for tcl check macro.
- addition of javascript support check.
- fix for Dialogic audio file usage.
- Kai's patch for speaking numbers and drivers without status.
- Kai's CAPI support for generic Linux (CAPI) ISDN cards.
- new options in play, record, and timeout, using keyword syntax.
- changes for ccScript 1.7.0, including elimination of ".fun", and
  use of "preload" in configure.
- "%error" now "%script.error"
- preliminary support for German phrasebook (Kai)

Changes from 0.7.0 to 0.7.1
- extended tgi timeout and error check for fifo opens.
- header fixups for c++ headers.
- /var/run moved to /var/run/bayonne.
- support for running libexec manager serverlets.
- support for new Common C++ 1.9.0 and namespaces.

Changes from 0.7.1 to 0.7.2
- fix for old redhat/gcc compilers.
- new cid code for Voicetronix.
- perl default in test mode killed.
- fix for perl test of xs_init support

Changes from 0.7.2 to 0.7.3
- restructure of dialing.
- noanswer event handler.
- %pstn.cpa added for call progress support.
- Dialogic ISDN trunk support fixes from Mark.
- Dialogic tone command.
- "accept" handling specified in trunk group.
- virtuals Accept and Reject for trunk call processing.
- Dialogic span hint for auto-detect of digital cards.

Changes from 0.7.3 to 0.7.4
- apps directory buildout.
- isdn call progress detection.
- dynamic menu play thru trap identifiers.
- move /usr/libexec/tgi to /usr/libexec/bayonne!
- capi clean build configure fixes.

Changes from 0.7.4 to 0.7.5
- isdn fix for dialogic Answer.
- tgi detach fix.
- spanish language support from Henry Molina.
- fix solaris/phonedev compile support.

Changes from 0.7.5 to 0.7.6
- minor bug fixes
- jason's new TGI.pm parser.
- dial with "origin=" patch.
- fix in chop, trim, replace, and delete.
- more Dialogic digital support fixes.

Changes from 0.7.6 to 0.7.7
- a bunch of Dialogic fixes.
- use of play offset= and limit= in most drivers.
- aculab driver from David Kerry!
