2001-07-23 Marc SCHAEFER <schaefer@defian.alphanet.ch>
2001-07-23  Marc SCHAEFER  <schaefer@defian.alphanet.ch>

* All of below is 0.9.30

* Fix in libvoice/shell.c regarding missing `break's causing
the DEVICE voice shell command to return three results (READY,
DEVICE_NOT_AVAILABLE, ERROR). Patch by Vladimir Volovich <vvv@vsu.ru>.

* Fix in libvoice/IS_101.c: the IS_101_wait() function has been
redesigned to cope with non atomic DLE sequences. Bug found by
Alan Ferrency <alan@pair.com>, however fix isn't confirmed yet.

Wed May 16 19:15:01 2001  Marc SCHAEFER  <schaefer@vulcan.alphanet.ch>

* All of below is 0.9.29.

* Patch from Olivier Kurzweg <okurzweg@siticom.com> for handling
LOOP_BREAK event (which is IS-101 remote hangup). I also documented
this in doc/Readme.voice_shell.

Mon May 14 11:08:03 2001  Marc SCHAEFER  <schaefer@vulcan.alphanet.ch>

* Patch from Juergen.Kosel@gmx.de to ignore some V.253
event strings and support for vgetty to ignore it.

* Patches to pvftormd, rmdtopvf, autopvf and pvftoau from
Olivier Kurzweg <okurzweg@siticom.com>, for G.711A support.
Enabled G.711A support for Digi RAS, Lucent, V.253 and ISDN4Linux.
Enabled G.711u support for V.253. Added a few integrity checks on
supported sample rates (e.g. ISN4Linux only supports 8kHz).
Better -L list. Cleanup.

Sun Mar 11 13:08:29 2001  Marc SCHAEFER  <schaefer@vulcan.alphanet.ch>

* Added fix for vm voice shell execution result in vm/main.c,
submitted by Diomidis Spinellis <dspin@aegean.gr>.

* All of below is 0.9.27.

* Fix to vgetty/answer.c (incomplete arguments), submitted
by Diomidis Spinellis <dds@aueb.gr>.

* man pages for pvftools, contributed by
Mikkel L. Ellertson <mikkel@infinity-ltd.com>.

* Voice shell interface changes by Juergen.Kosel@gmx.de, to
provide the new error DEVICE_NOT_AVAILABLE. Adapted the
documentation. Now using a single constant string for
error and for ready in libvoice/shell.c.

Sat Feb 24 16:15:03 2001  Marc SCHAEFER  <schaefer@vulcan.alphanet.ch>

* All of below is 0.9.26.

* Added support in the PVF tools of the 81 RMD type for the
  ZyXEL 2864, aka Mu-law PCM.

Sat Feb 24 10:25:25 2001  Marc SCHAEFER  <schaefer@vulcan.alphanet.ch>

* All of below is 0.9.25.

* Support for the Lucent-based Modem Blaster USB modem,
contributed by Glen Stewart <root@associate.com>.

* Steffen Klupsch <steffen@vlsi.informatik.tu-darmstadt.de>
 and Juergen.Kosel@gmx.de contributed changes to enhance
 voice_set_device(), and V253modem definitions.
Enhanced distinctive ringing. Enhancements for ELSA and
V253modem. New `forceV253' option in configuration to override
detection. Fixed dependancies. New `devicetest' command in vm, which
lists the supported output devices. Different set of message
files option in configuration. Out of area and private service
token.

* Fixes from Matti Airas <mairas@iki.fi> for a better hangup
detection with ISDN4Linux. Will probably require similar changes
to all of the drivers. Also fix for Vgetty.pm to support it,
including documentation, and fix to avoid Vgetty.pm to litter
STDERR with `uninitialized value' errors.

* Added reference to an Interactive Voice Response System
which uses the pvftools, but otherwise seems to have reimplemented,
in Perl, the US Robotics modem support, to the Readme.

* Added two documentations in doc/, contributed by
Juergen.Kosel@gmx.de.

* Added support for the internal modem MultiTech MT5634ZPX-PCI,
contributed by Michael Dratz <md@1box.de>, including changes
to pvf utils.

* Added synonymous "NO DIALTONE" in libvoice/analyze.c, contributed
by Michael Dratz <md@1box.de> and required in at least one
Multitech variant.

* Contribution from Hermann H□i for using the vgetty interface
from a Tcl/Tk script.

Mon Jan 29 23:38:15 MET 2001  Gert Doering <gert@greenie.muc.de>

* voice/libvoice/init.c: make "mgetty" speed the same as 
"voice.conf" speed (avoid bug with "RING at wrong port speed").

Wed Jan 17 12:34:35 2001  Marc SCHAEFER  <schaefer@vulcan.alphanet.ch>

* Reverted some changes in 1.16 to 1.17 of libvoice/US_Robotics.c
which were completely bizarre, and made beeping fail. Found
 by Chun-Chung Chen <cjj@u.washington.edu>.

Sun Jan 14 15:17:34 2001  Marc SCHAEFER  <schaefer@vulcan.alphanet.ch>

* All of below is 0.9.23

* Fixed buffer overflow in vm and vgetty, submitted by Georg
 Kirschbaum, <Georg.Kirschbaum@gimmel.franken.de>. Impact would
not have been very big since only DTMFs are under control
of the user.

Sat Dec 16 10:36:34 2000  Marc SCHAEFER  <schaefer@vulcan.alphanet.ch>

* All of below is 0.9.22

* Applied patch for Rockwell, submitted by Colin Panisset,
 <Colin.Panisset@Sun.COM>, to at least support transmit/receive
gains on the Spirit Cobra modem. If the values are set to 0
in the configuration, they won't be set (which was the previous
situation). This chipset uses the AT#TL=xxxx and AT#RG=xxxx commands
 to set the relevant levels, where xxxx is a hex string from
 0001 to FFFF.

* Some modems have no meaningful output except in ATI9, but
they do not respect the standard. For them we will use
another table of partial matches. We do not want to slow
even more by adding ATI9s to the global table. This should
fix the Rockwell issue, and make Neuhaus still work while
not adding any overhead. In libvoice/detect.c
  

Sat Oct 14 11:06:01 2000  Marc SCHAEFER  <schaefer@vulcan.alphanet.ch>

* All of below is 0.9.21

* Completely reworked the way the special case Supra56ePRO
works, since it was causing timeouts/delay at initialization
time for both the TP560 Data/Fax/Voice 56K Modem and
the good ol' 1496. (BTW mine just broke, so I hope that
others will test it. Symptoms: switch on with CD/OH/DSR/CTS
light. TXD blinks when typing on keyboard (e.g. with cu
with DTR/RTS/etc set), global fw reset doesn't work anymore).

Sat Sep 16 18:38:14 2000  Marc SCHAEFER  <schaefer@vulcan.alphanet.ch>

* All of below is 0.9.19

* Added detection of modem ``TP560 Data/Fax/Voice 56K Modem'',
with friendly testing from Zsolt KOZAK <kozakzs@webigen.com>.
Note that that modem has buggy ATI3 handling, and this will
cause a timeout, which will be recovered. The test was done
at speed 115200. [ well infact this was not a buggy firmware,
see above ]

Tue Sep 12 23:09:42 2000  Marc SCHAEFER  <schaefer@vulcan.alphanet.ch>

* All of below is 0.9.18

* Added new modem type Supra56ePRO, strongly based on
Supra.c; submitted by Rojhalat Ibrahim, roschi@ribrahim.de.
It seems we had to also implement ATI3 detection.

Mon Sep 11 13:30:25 2000  Marc SCHAEFER  <schaefer@vulcan.alphanet.ch>

* libvoice/ISDN4Linux.c: using correct return code (cosmetic)
in answer_phone().

* libvoice/US_Robotics.c: using correct return code (cosmetic)
in answer_phone().

* vgetty/answer.c: if modem-specific code returns fax, forward
 that to the mgetty caller. Note that mgetty doesn't yet support
 this fully.

Sun Sep 10 09:36:26 2000  Marc SCHAEFER  <schaefer@vulcan.alphanet.ch>

* libvoice/V253modem.c: fix Kompressionmethod default setting
(gcc warning; could lead to Kompressionmethod 0 in an uncontrolled
way). Fixed comment for compression method 9.

* vgetty/answer.c: voice message file with a more unique name
(with timestamp).

Sat Sep  9 09:57:31 2000  Marc SCHAEFER  <schaefer@vulcan.alphanet.ch>

* All of below is 0.9.17

* libvoice/Elsa.c: minor fix with no consequence so that
gcc doesn't spit out a `warning: `/*' within comment'
warning.

* pvftools/pvftormd.c: patch from Mark K. Kim <markkim@email.com>
fixing the wrong assumption that the compression method is
the bits-per-sampling rate, which is wrong for USR (GSM).
I find this change a bit bizarre (why hasn't anyone reported this),
and it could be a firmware problem. Well, let's see what it
breaks and hope people scream loudly.

* libvoice/V253modem.c: patch from Juergen Kosel <Juergen.Kosel@gmx.de>
implementing new voiceformats, and check_rmd_adequation() for
Elsa compatibility. Caller ID and distinctive ringing; setting
defaults (silence sensitivity; timeout). Added CVS ID. Note that
this version has a gcc warning; notified Juergen.
 
* libvoice/Elsa.c: patch from Juergen Kosel <Juergen.Kosel@gmx.de>
fixing AT+VRN and adding comments about VLS.

* pvftools/rmdtopvf.c: patch from Juergen Kosel <Juergen.Kosel@gmx.de>;
implements header management for some new voice formats.

* libvoice/ZyXEL_Omni56k.c: fixed by gert; fix from Richard L. Hamilton
 (rlhamil@smart.net); ATS40= commande shall not contain spaces.

* libvoice/IS_101.c: fixed by gert; fix from Andrew Morris
 (Andrew.Morris@cnpl.enbridge.com); fix to watchdog change;
bug introduced in 0.9.16. Would never reset the watchdog
after the first reset.

* voice.conf-dist: fixed by gert; comment that the speed
definition must match mgetty's.

Thu Aug 10 08:14:50 2000  Marc SCHAEFER  <schaefer@vulcan.alphanet.ch>

* All of below is 0.9.16

* The fix from Andrew Morris involving libm functions has
three problems: Gert doesn't like it, you need to link
-lm to vgetty, and Gert doesn't like it. Changed it so that
we don't require -lm nor floating point arithmetic, and
so it gives the sames values as the fp was doing.

Wed Aug  9 21:56:34 2000  Marc SCHAEFER  <schaefer@vulcan.alphanet.ch>

* Fix from Andrew Morris <Andrew.Morris@cnpl.enbridge.com> for
libvoice/US_Robotics.c silence detection threshold, rounding up
the silence detection so that the values are more uniformly
 distributed.

* Modified IS_101.c so that the watchdog uses a timer instead
of doing complicated arithmetic on expected bps rate.
Patch by Andrew Morris <Andrew.Morris@cnpl.enbridge.com>.
As a side effect, the I/O data summary will now come every
N seconds and not every N bytes. I don't think we should care.

Wed Aug  9 09:04:25 2000  Marc SCHAEFER  <schaefer@vulcan.alphanet.ch>

* All of below is 0.9.14

* Fixed bug in modem detection (introduced in 0.9.13) (NULL
pointer dereference).

* Made Rockwell test on ATI6 broader.

Fri Jul 28 12:12:12 2000  Marc SCHAEFER  <schaefer@vulcan.alphanet.ch>

* All of below is 0.9.13

* Fixed the V253 problems we introduced in 0.9.12 and which
were causing problems with most drivers. Fix by
Juergen Kosel <Juergen.Kosel@elsa.de>, with the impulsion
of Const Kaplinsky <const@ce.cctpu.edu.ru>. Now the
detection is done either with PNP IDs (with a set of
new entries for Elsa modems), or, if everything else fails,
by checking a standard V253 command.

* Renamed V250modem.c to V253modem.c

Sat Jul 22 11:17:13 2000  Marc SCHAEFER  <schaefer@vulcan.alphanet.ch>

* All of below is 0.9.12 (there was no 0.9.11).

* Added hints in contrib/K_C_Yuen-Zoom-2949L-Hints for
        the 2949L modem setup.
 
* Implemented ringback in Elsa.c, requested by Martin
 Haefele <mhaefe@correo.e-technik.uni-ulm.de>.

* Patch from Juergen Kosel <Juergen.Kosel@elsa.de> for supporting
the V250modem, for which a 115200 bps is recommended.

* Patch from Const Kaplinsky <const@ce.cctpu.edu.ru> fixing
the long-standing WAV conversion bugs. Added comment in
the example conversion script.
The patch fixes:
           - byte order problems in writing 16- and 32-bit samples to WAV
             (RIFF) files;
           - unsafe code for reading 16-bit samples from WAV files;
           - a problem with error message "unsupported number of bits per
             sample" which was printing on each sample of input WAV files.

* Patch from Const Kaplinsky <const@ce.cctpu.edu.ru> for
support of the Omni 56k in the PVF utilities.

* Fix for libvoice/ZyXEL_Omni56K.c (also use the RMD adequation
routine of IS101 we introduced in 0.9.10).

Sun Jun 11 12:56:41 2000  Marc SCHAEFER  <schaefer@vulcan.alphanet.ch>

* All of below is 0.9.10

* Added new voice.conf voice_shell_log for voice shell stderr
output. If not specified, we use the previous behaviour (send
stderr to modem).

* Added new voice shell command to send modem-specific
commands from the voice shell (QUOTE), submitted by
<gonz@ratloop.com>.

* Added support for ZyXEL Omni 56k, submitted by 
<const@ce.cctpu.edu.ru>. Also patch for libvoice/write.c
from same author with this explanation:
    We add small delays if we cannot write to the modem when
    its input buffer is full, also when the OS returns EAGAIN.
    This will fix some buffer underruns reported by the voice
    modem.
        I haven't applied the faxlib patch (this is for gert to
apply). This however includes Russian Caller-ID for ZyXEL Omni 56k.

* Applied patch for vm help submitted by <const@ce.cctpu.edu.ru>.

* Applied patch for creating files with the caller ID in automatic
        answerer vgetty mode vm help submitted by <const@ce.cctpu.edu.ru>.

* Added detection of a Rockwell variant <virus@altavista.net>

* Added scripts/dtmf_alpha.sh, with much more examples
of how to use the voice shell interface, contributed by
Robert J顤dens <rjo@gmx.de>.

* Added alpha patch to support the Supra56ePRO in contrib/,
submitted by <ibrahim@surf-callino.de>.

* Fix for some USRobotics variant sometimes returning OK and
sometimes VCON in hardwflow, submitted by <robert@cstr.ed.ac.uk>.

* Detection of the Lasat Safire 288V by <gunter.grau@01019freenet.de>.

* Added a Vgetty.pm implementation in sh and example to scripts/,
submitted by John Wehle <john@feith.com>.

Sat Dec  4 10:25:32 MET 1999   Marc SCHAEFER  <schaefer@vulcan.alphanet.ch>

* Fixed spelling error in scripts/message.sh

Thu Dec  2 10:25:32 MET 1999   Marc SCHAEFER  <schaefer@vulcan.alphanet.ch>

* Added ability for voice modem drivers to specify what they support
as RMD format (added new function check_rmd_adequation(),
defined like the old behaviour in libvoice/IS_101.c, and inherited
by every voice modem driver except ZyXEL_2864, which inherit
ZyXEL_1496 behaviour which is to accept either ZyXEL 2864
or ZyXEL 1496. Compression level/speed adequation is then
still checked as usual in libvoice/play.c. This was requested
by Gert and obsoletes the need for the not-so-nice dd header
conversion script.

Sat Nov 13 10:31:37 MET 1999   Marc SCHAEFER  <schaefer@vulcan.alphanet.ch>

* Released mgetty-1.1.21-to-current-13111999

Those two changes absolutely need wide testing:

* Removed the enter_fax_mode() function from libvoice/mode.c,
and moved the enter_data_fax_mode() from vgetty/answer.c to
libvoice/mode.c. This ensures that there is only one way to
answer and go data or fax from voice mode. Before, we had two,
each one with its own set of bugs. This changes the way answering
is done, also the going to fax/data when a voice shell fails,
but also GET_FAX and SEND_FAX voice shell commands.

* Patched the resulting libvoice/mode.c with the recently posted
patch (from Dmitri Pogosyan), which should fix the Rockwell
problem when going from voice to fax/data. The idea being that
you use auto-detection ONLY if answer_mode is ANSWER_DATA|ANSWER_FAX.
Else, if it's only one of the two, you switch off modem
autodetection (+FAA=0) so that +FCLASS state is used.

Those changes are presumably minor:

* Patched libvoice/detect.c to support the Italian version of the
Rockwell modem (Rockwell compatible modem 33600), submitted
by <Free Ekanayaka> ekafree@freemail.it.

* Added setup information for PowerBit modems to
contrib/PowerBit_Olsson, submitted by H嶡an Olsson,
 <suntron@algonet.se>

Sat Oct  9 15:01:32 MEST 1999  Marc SCHAEFER  <schaefer@vulcan.alphanet.ch>

* Added contrib/Raoul_Boenisch about some Dr. Neuhaus speed-related
 problems and fixes.

* Added doc/NOTE about where to find some documentation.

* Modified libvoice/detect.c and libvoice/README.lucent for supporting
some Lucent variant. jsrockford@my-Deja.com is presumably testing it.
Also cleanuped detect.c (using variables). Note that Lucent is
        not implemented yet: read libvoice/README.lucent for guidelines
        if you have this modem's documentation.

* libvoice/signal.c: added child pid in log file. Also, now
capturing the exit status instead of ignoring it, and logging
at WARN level if non zero. Suggested by Gert.

* Added scripts/new_voice.craig_southern from
      http://www.southeren.com/craig/vgetty/

* Added ability, in vm, to output to the EXTERNAL_SPEAKER (-e
option). Patch submitted by baitisj@cyberdude.com.

Thu Sep 16 11:06:43 MEST 1999  Marc SCHAEFER  <schaefer@vulcan.alphanet.ch>

* Added detection support for ZyXEL Omni 56k. Some issues
still remaining, such as DTMF preference setting command.

* Adding ability to use either the new AT+IFC or the old AT\Q3
in Elsa, with dynamic adjustment in case of error. We now
try AT+IFC first. Reported by Steffen Klupsch, and fix
suggested by Gert. Simplified Elsa's internals. Reported to
work (eschmann@stud.uni-frankfurt.de).

* Fixed bug with libvoice/signal.c regarding child termination.
The fix works on HPUX (says boban@zaslon.si), and maybe also
fixes the Solaris coredump problems. At this time, this fix
is untested on other plateforms, but presumably should do
something nice anyway.

Wed Sep  8 16:10:46 MEST 1999  Marc SCHAEFER  <schaefer@vulcan.alphanet.ch>

* Fixed bug with libvoice/US_Robotics.c: wrong command
introduced in 1.1.21 (ringback). Would cause the modem
 [Sportster Voice 33.6] to report an error and stop responding
 to any further commands. Fix by <alborchers@steinerpoint.com>

* Added comment of John Lowry <jlowry@netcom.com> about fixing
some problems with dial out and NO_DIAL_TONE with vm in
voice/contrib/John_Lowry.

Sat Aug 21 14:12:09 MEST 1999  Marc SCHAEFER  <schaefer@vulcan.alphanet.ch>

* Fixed perl module Perl/Vgetty.pm (undefined reference).

* Work-around for ATH0 in Rockwell_set_device() breakimg
  the RC32ACL (zukerman@math-hat.com).

* Added a few problems to fix to Todo, some being fixed, some not.

Wed Aug 11 22:57:55 MEST 1999  Marc SCHAEFER  <schaefer@vulcan.alphanet.ch>

* Had a nice eclipse :)

* Fixed libvoice/UMC.c's use of C++ style comment (one define
commented with ANSI C). This shows up e.g. with plain ANSI
C compilers, or old versions of gcc.

* Changed version to 0.9.6 / 11Aug99 so to make it a little
different.

Sat Jul 24 14:26:46 MEST 1999  Marc SCHAEFER  <schaefer@vulcan.alphanet.ch>

* gert released 1.1.21

* doc/Readme.voice_shell: updated with the new commands.

Tue Jul 20 08:49:10 MEST 1999  Marc SCHAEFER  <schaefer@vulcan.alphanet.ch>

* Timeouts for ringback: if no ringback is detected within the timeout
time, the modem assumes the other side answered the phone (was
needed for outgoing dial). Note that not all modems support these
commands (+VRA/+VRN). Notably the Multitechs don't. This adds new
configuration options: ``ringback_goes_away'' and
``CONF(ringback_never_came, 100, CT_INT)'', see include/default.h
and voice.conf-dist.
 
* The US Robotics modem forgets its voice setting when it leaves voice
 mode: a special function voice_mode_on() was created.
 
* Sending a beep to US Robotics turns the speaker on, we shut it
 down (best way would be to keep it how it was).
 
* Added ``GET MODEM'' voice shell interface command to get the
 underlying modem hardware type (e.g. for sending the right RMD file
 type).
 
* Added a new ``linger'' optional argument to the play command. When
 given, it will make the multi-DTMF detection more reliable when used
 with ``AUTOSTOP'': with some modems, or with some configurations, it
 seems that between the time ``PLAY'' and ``WAIT'' are issued you can
 loose key-presses, especially with US Robotics modems.

* All the above for Jul 20 was submitted by Al BORCHERS,
<alborchers@steinerpoint.com>

Sun Jul 18 19:31:49 MEST 1999  Marc SCHAEFER  <schaefer@vulcan.alphanet.ch>

* Incremental bug fix for US_Robotics.c submitted by
"Luca Olivetti" <luca@olivetti.dhis.org> for the external or
internal speaker beep conflicting with line work-around.

* Added EXTERNAL_SPEAKER support in shell.c, contributed
by "Luca Olivetti" <luca@olivetti.dhis.org>.

* Added some files in contrib/

Sun Jul  4 09:13:10 MEST 1999  Marc SCHAEFER  <schaefer@vulcan.alphanet.ch>

* Fixed libutil/access.c to set EGID before EUID so that it is
possible.

Sun Jun 27 12:16:20 MEST 1999  Marc SCHAEFER  <schaefer@vulcan.alphanet.ch>

* The owner, groups and mode were only set after the file
 recording was complete. Moreover, the file was created without any
 correct security checks. Now, we switch the EUID/EGID/umask of the
 process when opening the file. That should fix the specific user
 request (not having files root.root 644 when recording), and also
 fix more serious security problems. Additionnally, we now do the
 same when playing a file. This is done through a new set of
functions in libutil/access.c. Problem reported by
uzs7ph@uni-bonn.de.

* Calling the new function setup_environment() from
vgetty/answer.c's vgetty_answer function. This renders *some*
of the called-ID specific patch obsolete, and it was slightly
rewritten for that purpose. This was suggested by gert.

* Added new set_device mode definitions (suggestion by
Steffen Klupsch <steffen@vlsi.informatik.tu-darmstadt.de>, see
also voice/contrib/Steffen_Klupsch-new-set-device-modes).

Tue Jun 15 14:28:20 MEST 1999  Marc SCHAEFER  <schaefer@vulcan.alphanet.ch>

* Added a modem quirk field in the include/hardware.h modem structure.
Defined VMQ_NEEDS_SET_DEVICE_BEFORE_ANSWER to reverse, if set, the
 order of answering/setting line for the modems which are broken in
 that aspect. This field is set to zero for all modems, except
UMC. Reported by steffen@informatik.tu-darmstadt.de.

* Fixed bug with Compaq_VS.c which had the recently added
play_dtmf missing (should have seen that in compilation, hey ?).

* Added an unconditionnal ``go to voice mode'' in libvoice/UMC.c,
this fixes the ``modem doesn't know in which state he is'' bug
reported & fixed by steffen@informatik.tu-darmstadt.de.

* Modified vgetty/answer.c to support the above modem quirk bit.

* libvoice/UMC.c: fixed the 'beep' command, the UMC_VTS_WORKAROUND
 produced a horrible and loud scream, the modem command at#vts
 sounds better :-) (steffen@informatik.tu-darmstadt.de).

* libvoice/UMC.c: setting default compression to 4 bit ADPCM,
 because only this is supported by the pvftools.

* Changed the faxmode command from 'AT+FCLASS=' to 'AT#CLS='
-- this is said to be better regarding call discrimination.
 (At least for UMC modems.)

* voice/pvftools/pvftormd.c and voice/pvftools/rmdtopvf.c:
added support for UMC's 4 Bit ADPCM.

Sat May 15 21:53:52 MEST 1999  Marc SCHAEFER  <schaefer@vulcan.alphanet.ch>

* Added information/patch for old 5.x 1496 ZyXEL. As those
problems are no longer found with the current 6.x ROM version
(such as 6.19), I just include the information/patch as-is
in voice/contrib/Wolfram_Gloger

* Added script example to make MultiTech 2834ZDXv dial out and
play voice message to voice/contrib/Mark_Haun

* RING_DETECTED is now supported as an event in WAITING (event.c)

* Added temporary Smarty/Neuhaus detection. This could break
 Rockwell modems. In case it does, change the #if 0 at line
63 to #if 1 and report this to me (detect.c). Contributed by
Raoul.Boenisch@uni-essen.de.

* Enabled support for the INTERNAL_MICROPHONE for Dr_Neuhaus.c
(for the Smarty; contributed by Raoul.Boenisch@uni-essen.de)

* Fixed Multitech_2834.c: would not go correctly to
DIALUP_LINE (but to LOCAL_HANDSET instead). Submitted
by alborchers@steinerpoint.com. Same fix reported
to the other instances (5634, but NOT 5600ZDXv since
already fixed it seems).

* Fixed Multitech_2834.c: sometimes the fixup echo
workaround wouldn't work with some firmwares. Made it so
the fix is inactive if echo is disabled. Reported this
fix to  the other instances (5634, but NOT 5600ZDXv since
already fixed it seems).
Submitted by alborchers@steinerpoint.com

* US_Robotics.c:
     - added URL for technical documentation
     - patch by gmilner@my-dejanews.com for local handset support
     - patch by Niels@Basjes.nl to ignore DIAL TONE when
       recording or playing (bug work-around).

* Updated ToDo files

* Updated the FAQ. Warning, this might not be in sequence with
  the official FAQ. This has to be worked-around some time now.

Tue Mar 16 11:02:26 1999  Marc SCHAEFER  <schaefer@vulcan.alphanet.ch>

* Fixed so that when PNP detection fails (ATI9) we correctly
revert to ATI, eating output when needed. This was reported by
Al Borchers alborchers@steinerpoint.com. This should fix
many problems encountered by people upgrading to 1.1.20
plus the 10021999 global patch.

Wed Feb 10 07:17:57 1999  Marc SCHAEFER  <schaefer@vulcan.alphanet.ch>

* Many changes which are documented below:
     voice/Readme
Changes about maintenance. 
     doc/Readme.pvftools
Contributed by Daniel Doering
     doc/Readme.voice_shell
Augmented with new commands (DTMF)
     Almost all modem-specific include files and implementation files
Added support for play DTMF from voice script
     libpvf/rockwell.c  
Additions by Bill Nugent <whn@topelo.lopi.com> for the
PCM format.
     libvoice/README.lucent
Some information about that chipset
     libvoice/detect.c
Added PNP detection by Rob Ryan <rr2b@pacbell.net>
     libvoice/event.c
Fixed so that a NUL in the debug stream doesn't corrupt the
         logs.
     libvoice/shell.c
Added new command DTMF
     pvftools/extract_gsm
Perl script to extract GSM data for US Robotics Sportster Vi
     pvftools/pvftormd.c
See libpvf/rockwell.c
     pvftools/usrgsm.c
     pvftools/usrgsm.mk
Presumably the same as pvftools/extract_gsm
     pvftools/wavtopvf.c
Added information in usage that it doesn't support stereo.
     scripts/convert_wav_to_rmd.sh
Because of wavtopvf not supporting stereo, I contributed a
script using SOX to convert stereo WAV to a modem RMD format.
     vgetty/answer.c
Moved the switching to the voice line AFTER answering, else
would sometimes hang X.75 on a ZyXEL 2864I (anyway it's
better that way).
     vm/main.c
Support for DTMF
     voice/voice.conf-dist
Added comment that setting rec_max_len to zero skips recording.
     voice/xvoicetool/
Added

  New modem beta-supported
     Multitech_5634ZBAV
     Multitech_5600ZDXv
     Supra
(see details at
    http://home.earthlink.net/~eboreg/Supra.html
 or information in voice/libvoice/README.Supra)
This include ``PNP-detection'' changes.
By Rob Ryan <rr2b@pacbell.net>.

Wed Feb 10 07:17:57 CST 1999  Rick Richardson  (rick@dgii.com)

     * Fixed a bunch of places where feof() was being misused in
       the pvftools and library.

     * Added -c option to pvffile to print sample counts.

     * Added some more voice support for Digi RAS modems.

Wed Sep 09 08:39:13 1998  Marc Eberhard  (marc@athene)

     * New vgetty release.

Sat Apr 12 16:48:31 1997  Marc Eberhard  (marc@athene)

     * New vgetty release with many minor changes.

Sat Jan 25 10:16:06 1997  Marc Eberhard  (marc@nepomuk)

     * Many changes including complete rewrite of the pvftools.

Tue Dec 10 20:08:57 1996  Marc Eberhard  (marc@nepomuk)

     * Most hardware drivers are working again.

Thu Nov 07 19:23:08 1996  Marc Eberhard  (marc@nepomuk)

     * Changed lots of stuff and fixed many bugs. Most hardware
       drivers are disabled, because they are broken.

Tue Aug 06 21:53:01 1996  Marc Eberhard  (marc@nepomuk)

     * Hopefully fixed the timeout problem.

     * Added new hardwre driver event to switch to data or
       fax mode.

     * Added fully documented config file.

     * Other minor changes.

Fri Jul 19 07:54:56 1996  Marc Eberhard  (marc@nepomuk)

     * Wrote new driver for the Dr. Neuhaus Cybermod.

     * Many small changes and fixes.

Tue Jun 25 22:24:52 1996  Marc Eberhard  (marc@nepomuk)

     * Added Mitch DSouza driver for Cirrus modems.

     * Added various patches.

Sat Feb 03 11:16:53 1996  Marc Eberhard  (marc@nepomuk)

     * Added Ard van Breemens driver for Rockwell modems.

     * Added various compatibility patches.

     * Added Ulrich Homanns driver for UMC Phonemaster modems.

Mon Jan 29 06:55:54 1996  Marc Eberhard  (marc@nepomuk)

     * Added Steve Wormleys US Robotics hardware driver.

     * Added Torsten Duwes patch for the pvf tools and his new converter
       for Rockwell voice data.

     * Changed the directory layout, because some file names were too long
       and caused trouble.

Sat Dec 30 01:15:25 1995  Marc Eberhard  (marc@nepomuk)

     * First public release of the new vgetty code. Probably many bugs,
       because this release was produced under heavy time pressure.

Thu Oct 05 22:34:51 1995  Marc Eberhard  (marc@nepomuk)

     * Pre release of the new generation vgetty code.  Major changes to all
       files, but not finished yet.

Wed Apr 12 19:26:04 1995  Marc Eberhard  (marc@nepomuk)

     * New beta release.

     * Removed all static #ifdef's and replaced them by normal if's to
       support runtime configuration in the future.

Sun Apr 09 21:46:18 1995  Marc Eberhard  (marc@nepomuk)

     * New beta release.

     * Only minor cleanups.

Thu Apr 06 08:41:08 1995  Marc Eberhard  (marc@nepomuk)

     * Flowcontrol problem pointed out by Wolfgang Jung. Partial fix for
       now.

Wed Apr 05 18:10:36 1995  Marc Eberhard  (marc@nepomuk)

     * Fixed the bug reported by Wolfram Gloger. Now voice_rings returns the
       correct number for rings_wanted when invoked multiple times instead
       of decrementing rings_wanted on each invokation until it's one.

Mon Apr 03 18:17:43 1995  Marc Eberhard  (marc@nepomuk)

     * Makefile changes for portability

Mon Apr 03 10:45:47 1995  Marc Eberhard  (marc@nepomuk)

     * New beta release

     * Minor changes for portability

Thu Mar 30 20:03:20 1995  Marc Eberhard  (marc@nepomuk)

     * New beta release

     * Many changes to the Makefile

     * Added dialout support for zplay

Fri Oct 28 21:03:11 1994  Klaus Weidner  (klaus@snarc)

     * Makefile: new REL

     * zplay.1, zplay.c: fixed the -T documentation - range from 0..1

     * vmodem.c, voclib.h: always use 38400 bps for Rockwell modems.

Fri Oct 21 00:52:09 1994  Klaus Weidner  (klaus@snarc)

     * Makefile: new REL

     * zplay.1: updated zplay documentation to be less ZyXEL specific,
     expanded some sections.

     * zplay.c, zplay.1: documented -I and -K zplay options

Fri Oct 21 00:22:28 1994  Klaus Weidner  (klaus@snarc)

     * voclib.c: Use integers instead of symbolic values for VOICE_SEND_BAUD

     * vmodem.c: move the DTMF sensitivity parameters to voclib.h

     * voclib.h: move the DTMF sensitivity parameters to voclib.h
     Use integers instead of symbolic values for VOICE_SEND_BAUD

Thu Oct 20 00:28:15 1994  Klaus Weidner  (klaus@snarc)

     * vanswer.c: pass caller id to vg_message

Wed Oct 19 23:46:19 1994  Klaus Weidner  (klaus@snarc)

     * voclib.h, vmodem.c, vanswer.c:
     moved enter_data_mode() to vmodem.c, Rockwell changes

Sun Oct  9 12:29:30 1994  Klaus Weidner  (klaus@snarc)

     * vmodem.c, voclib.c, voclib.h:
     fixed compression type determination for non-ZyXEL playback

     * pvfadpcm.c: include <string.h> instead of <strings.h>

Sun Aug 21 14:17:26 1994  Klaus Weidner  (klaus@snarc)

     * Makefile, vanswer.c, voclib.c, voclib.h, zplay.c:
     Improved the asynchronous response handling, all
     dtmf codes sent by the modem should get caught now.

     * Makefile: new REL

Sat Aug 20 20:13:11 1994  Klaus Weidner  (klaus@snarc)

     * Makefile: new REL

Sat Aug 20 20:09:47 1994  Klaus Weidner  (klaus@snarc)

     * zplay.c: asynchronous DTMF handling
     -I <string>: ignored DTMF codes
     -K: kill buffered input

     * vanswer.c, voclib.c, voclib.h: new-style asynchronous DTMF handling

     * vgetty.c, voclib.h, vanswer.c:
     support 'rings <n>' line in /etc/answer.DEVICE

     * vanswer.c:
     fixed the answer_mode handling, be more picky about what kind of calls
     are accepted. Handle <DLE>e data calling tone.

Sun Aug 14 08:38:08 1994  Klaus Weidner  (klaus@snarc)

     * vanswer.c: differentiate data and fax calls better

     * pvfadpcm.c: print error message for non-ZyXEL voice files

     * voclib.h, voclib.c, vmodem.c:
     Put the modem type in the voice file header

     * voclib.c: fixed alarm handling in voice_wait_for

Sat Aug 13 12:10:39 1994  Klaus Weidner  (klaus@snarc)

     * vmodem.c: changed wrong k&r prototype

Mon Aug  8 23:13:22 1994  Klaus Weidner  (klaus@snarc)

     * listen.in: vplay support

     * vg_dtmf.in: compatibility fixes for bourne shells

     * vmodem.c: added break to make SunPro compiler happy

     * vmodem.c, vanswer.c, vgetty.c: repaired distinctive RING handling

     * pvfadpcm.c:
     added missing brackets to & operator, fixed dispatcher for adpcm4

     * voclib.h: VOICE_REC_COMPRESSION=4 by default

     * Makefile: added ../goodies.o, pvftoadpcm4, new $REL

Tue Jul 26 23:58:05 1994  Klaus Weidner  (klaus@snarc)

     * vmodem.c: use hardware flow control for ZYXEL_ROM >= 6.13
     use AT#CLS=0 to turn off voice mode for Rockwell

     * pvfadpcm.c, pvfmain.c: added 4-bit ADCPM mode

     * voclib.c: wait for DLE ETX properly when finishing recording
     moved flow control setup to vmodem.c

     * voclib.h: new 4-bit ZyXEL adpcm format

Tue Jul 26 13:53:01 1994  Klaus Weidner  (klaus@snarc)

     * pvf.1: updated pvflin section

     * listen.in, play_messages.in, vg_button.in, vg_call.in, vg_dtmf.in, vg_fft.in, vg_message.in, vg_nmp.in, vg_say.in:
     replaced /bin/sh with @SHELL@

     * voclib.c: don't throw away recording if modem erroneously reports 's'

     * voclib.c: fixed voice_wait_for return code

     * vanswer.c: cleaned up get_answer_mode

     * vanswer.c: replaced Device with DevID

     * pvflin.c: added -16i flag

     * vgetty.c: added gert's latest changes

     * vanswer.c: fixed strstr hack

     * voclib.c: added sys/{types,wait}.h includes

     * vg_dtmf.in: fixed one-liner syntax so that /bin/sh doesn't barf

     * zplay.c: -l didn't work for /dev/cua/a type devices

     * voclib.c: handle /dev/cua/a style device names

     * pvflin16i.c: Initial revision

     * vanswer.c: made get_answer_mode static

     * voclib.h: removed get_answer_mode prototype

Mon Jun  6 20:39:44 1994  Klaus Weidner  (klaus@snarc)

     * zplay.c: silence threshold was erroneously set to zero

     * pvf.1: added -kill option to pvffft

     * pvffft.c:
     added -kill option, send SIGPIPE when done reading to avoid blocking
     the calling process due to a full pipe.

     * voclib.c:
     made sure signals won't cause data corruption due to interrupted
     read()s

Sun Jun  5 21:47:04 1994  Klaus Weidner  (klaus@snarc)

     * Makefile: removed listen

Sun Jun  5 13:09:21 1994  Klaus Weidner  (klaus@snarc)

     * Makefile: new REL

     * vg_fft.in, pvffft.c, pvf.1: added command line args for pvffft.

     * vgetty.c: added TIOCSCTTY hack

     * vanswer.c: be more paranoid about wait()s

     * voclib.c: added missing wait() for the fft program

Sat Jun  4 13:30:56 1994  Klaus Weidner  (klaus@snarc)

     * vmodem.c:
     fixed bug that was erroneously setting the speaker volume to zero

Tue May 31 20:34:36 1994  Klaus Weidner  (klaus@snarc)

     * Makefile: removed listen.in (now in contrib/dialog)

Sun May 29 23:36:13 1994  Klaus Weidner  (klaus@snarc)

     * pvffft.c: replaced PI with M_PI

Sun May 29 14:55:25 1994  Klaus Weidner  (klaus@snarc)

     * vanswer.c:
     fixed voice_button, pick up the phone if rings were detected

Fri May 27 21:55:03 1994  Klaus Weidner  (klaus@snarc)

     * voclib.h, pvffft.c: rearranged and rewrote the comments

Fri May 27 20:34:45 1994  Klaus Weidner  (klaus@snarc)

     * zplay.c: added -F option (do FFT)

     * vmodem.c: increased dtmf threshold again

     * speakdate.pl: added space in ordinals

     * pvf.1, pvfmain.c: added pvffft

     * vg_fft.in, pvffft.c: Initial revision

     * Makefile, vpaths.c, vmodem.c, voclib.h, voclib.c:
     added support for data/fax switching using fft analysis

Thu May 26 16:47:31 1994  Klaus Weidner  (klaus@snarc)

     * Makefile, vmodem.c, voclib.h: print release number in the log file

Wed May 25 18:22:32 1994  Klaus Weidner  (klaus@snarc)

     * vmodem.h: Initial revision

     * voclib.c, vanswer.c, vmodem.c, voclib.h, zplay.c: support for
     rockwell modems

Wed May 11 22:07:36 1994  Klaus Weidner  (klaus@snarc)

     * vmodem.c: raised the dtmf threshold

Fri May  6 13:50:02 1994  Klaus Weidner  (klaus@snarc)

     * vmodem.c: added DTMF threshold setting for >=612

Thu May  5 18:44:26 1994  Klaus Weidner  (klaus@snarc)

     * Makefile: speakdate -> speakdate.{sh,pl}

Thu May  5 11:25:41 1994  Klaus Weidner  (klaus@snarc)

     * vmodem.c, voclib.c, voclib.h:
     new functions voice_send_init and voice_record_init

     * speakdate.pl: Initial revision

Tue May  3 22:03:50 1994  Klaus Weidner  (klaus@snarc)

     * vgetty.c: added missing break

     * listen.in, vg_message.in, vg_nmp.in, voclib.h:
     put .flag and .timestamp into incoming dir

Sun May  1 23:02:34 1994  Klaus Weidner  (klaus@snarc)

     * Makefile: removed CHANGES

     * pvf.1, pvfadpcm.c: added -r612 flag

Sun May  1 22:53:58 1994  Klaus Weidner  (klaus@snarc)

     * voclib.c: added check for ERROR in voice_wait_for(), should fix hangs

Sun May  1 22:49:12 1994  Klaus Weidner  (klaus@snarc)

     * voclib.c: removed ZyXEL rom release specific code

     * zplay.c: use mg_init_voice

     * vmodem.c:
     use voice_command instead of mi_command, ZYXEL_ROM specific init

     * Makefile:
     use ZYXEL_ROM, added vg_call.in, ChangeLog and vmodem.c to archive

     * pvfadpcm.c: added new leakage code for 6.12

Sun May  1 22:14:54 1994  Klaus Weidner  (klaus@snarc)

     * vgetty.c: integrated voice features into the state machine

     * voclib.c: cleaned up the return codes, 'E' instead of ERROR

     * zplay.c: added missing ':'s in the getopt line
     'E' returned instead of ERROR
     cleaned up the result printing on stdout

     * voclib.h: updated prototypes for voice_button and voice_answer

     * vg_call.in: add logging, removed debug functions, bugfixes

     * vanswer.c: updated get_answer_mode to avoid multiple file reads
     removed -c from /bin/sh calls
     fork the external call program, this way fax/data will work
     new functions enter_data_mode(), voice_button(), log_call_length()
     cleaned up voice_answer, the code should be much more readable now

     * Makefile: added vg_call.in, new REL

     * vg_call.in, vmodem.c: Initial revision

     * zplay.c: replaced setenv with putenv, added missing arg to -V

     * vgetty.c: gert's newest version

Thu Apr 28 12:51:19 1994  Klaus Weidner  (klaus@snarc)

     * zplay.c: security patches to make Chris Lewis happy

     * vanswer.c, voclib.c: don't put dtmf digits into the log file

     * Makefile: changed .code to 660

Wed Apr 27 17:29:36 1994  Klaus Weidner  (klaus@snarc)

     * listen.in: should work now...

     * Makefile: added PHONE_GROUP and PHONE_PERM

     * listen.in, play_messages.in: added eval "exec zplay ..." mechanism

     * zplay.c: setenv ZPLAY_X set when -X is used

     * voclib.c: don't treat interrupt as an error

     * listen.in: Initial revision

Mon Apr 25 07:40:14 1994  Klaus Weidner  (klaus@snarc)

     * Makefile: added ../sedscript dependency

Sun Apr 24 23:02:11 1994  Klaus Weidner  (klaus@snarc)

     * vg_button.in, vg_dtmf.in, vg_message.in, vg_nmp.in, vg_say.in:
     used the sedscript path handling

     * play_messages.in: Initial revision

     * zplay.1: updated shell script section

     * vgetty.c: integrated gert's changes

Fri Apr 22 21:57:32 1994  Klaus Weidner  (klaus@snarc)

     * pvfsine.c: Initial revision

     * zplay.c: updated logging code

     * voclib.c: use FAX_COMMAND_DELAY instead of hardcoded 10 ms

     * Makefile: added pvfsine and play_messages

     * zplay.c: added -X option to call a shell with the modem on stdin

Fri Apr 22 21:00:14 1994  Klaus Weidner  (klaus@snarc)

     * vg_message: added MIME support for forwarding voice messages

Fri Apr 22 20:07:38 1994  Klaus Weidner  (klaus@snarc)

     * pvfvoc.c: added rate argument

     * pvfmain.c: added pvfsine

     * voclib.h: made silence removal and the button program optional,
       added VOICE_ALWAYS_KEEP_MESSAGE

     * voclib.c: made silence removal optional

     * vanswer.c: removed redundant #includes,
       don't remove messages by default when DTMF digits are detected,
       made the button program optional

     * vgetty.c: integrated Gert's changes

Tue Mar 29 15:17:18 1994  Klaus Weidner  (klaus@snarc)

     * voice/pvfutil.c: do averaging when decreasing the sample rate

Sun Mar 20 12:26:35 1994  Klaus Weidner  (klaus@snarc)

     * voice/README: email address