I just recently came across this post. As the author of CallStation,
maybe I can shed some light on the "voice playback" problem. First,
let's do away with some misconceptions.
Some people want to defend Microsoft for some reason, and blame the
modem manufacturers for this problem. They think that the drivers are at
fault. I can tell you now that this is NOT a driver problem.
Rick Rogers states that Microsoft drivers only provide basic
functionality (data/fax), and it is the responsibility of the modem
manufacturer to supply drivers which have proper voice support. This is
true, and you should always use drivers from the modem manufacturer
whenever possible, however, this is NOT the reason for the voice
playback problem.
Also, this problem is NOT due to some intentional change in Vista that
the modem manufacturers have not yet reacted to. This is a major bug in
Vista, plain and simple.
So what is the problem, and why does it mainly affect Conexant based
voice modems? To answer that, we need to look at how voice playback
works in Windows.
There are two ways that a program can play sound through a voice modem.
A program can open the COM port and write data directly to the modem, or
it can use the modem wave driver. The problem occurs when trying to use
the modem wave driver. The modem wave driver is actually a Windows
component.
A voice application like CallStation first has to get a wave-out ID for
the modem. It then uses this ID to play sound through the modem using
the low-level waveout API. The WAV files must always be in 8000 Hz
16-Bit format or the waveout API will return an error. Voice modems,
however, can use various PCM data formats for audio playback and
recording. It is the job of the Unimodem Transform Module to transform
the original audio data to whatever format the modem requires. The
transform module is another Windows component.
You can tell what format a modem requires by looking in the driver's
INF file for the XformID. If the driver is TAPI compliant, you should
find a line similar to this:
HKR, WaveDriver, XformID ,1, 08, 00
This example is from a Conexant based modem, and the 08 indicates that
this modem uses 8-bit unsigned linear PCM at 8000 Hz. For some reason,
Vista has a problem with this particular format. Either it is
translating the data incorrectly, or it just isn't passing the data
through at all.
If you use a modem which requires almost any other sound format, the
voice playback will work just fine. For example, most Intel based modems
and many Agere based modems have an XformID of 04. These modems use the
4-bit IMA ADPCM 8000 Hz format. Unfortunately, Intel based modems are no
longer sold.
In addition to the playback problem, if you are using Vista x64, voice
applications can sometimes have a problem getting a modem wave-out ID.
This problem can usually be solved by installing the following Microsoft
hot-fix:
http://support.microsoft.com/kb/954912
I hope this clears some things up. Perhaps someone from Microsoft will
read this and do something about it. For now, your best bet is currently
an Agere based modem such as the Rosewill RNX-56AG. The Rosewill drivers
are not TAPI compliant, however, so you will need to download some
modified drivers from my website. This is common with Agere based
modems, and the modem manufacturers need to do better when it comes to
making the drivers TAPI compliant.
Craig Duncan
Impulse Technology
http://www.imptec.com
--
Craig Duncan
------------------------------------------------------------------------
Craig Duncan's Profile:
http://forums.techarena.in/members/craig-duncan.htm
View this thread:
http://forums.techarena.in/vista-hardware-devices/853218.htm
http://forums.techarena.in >> Stay informed about: Will Vista ever fully support voice modem based on conexan..