[TriLUG] RE: Phone to use with PC

Aaron S. Joyner aaron at joyner.ws
Fri May 6 07:42:28 EDT 2005


sjackson at radarfind.com wrote:

>Scott
>
>OK.  As you mention: "I already have software that does what I want in the
>MS-Windows world" -- you already have this working.  My bad.
>
>It's clear I am not "getting" what you have running now in your non-Linux
>OS.  I was having a hard time imagining where you plugged your mic in and
>where you plugged your speakers in if not to you sound card, and how you get
>them to run full-duplex without feedback, while processing the audio across
>the PC to transfer to the modem card and then out to the phone trunk line in
>some way.  I don't have an M$ application that does this, myself.
>  
>
Perhaps I can try again to help clear up the confusion.  Apparently what 
Scott has is what's commonly referred to as a "Voice modem".  In the AT 
command set, there is an extra mode, in addition to the traditional data 
and fax modes.  It's usually accessed by sending a command something 
along the lines of AT+FCLASS=X where X is 0, 2, 2.0, or 8 corresponding 
to data, fax class 2, fax class 2.0, or voice.  Some modems will also 
support other modes, such as a proprietary fax mode, or class 3 fax, or 
some other standards.  And since these commands are *not* part of the 
original Hayes Acura defacto standard, they tend to vary from one modem 
to another in subtle ways, and sometimes they are all-together different.

What this mode causes the modem to do, is do the DSP work Steve was 
describing on the card, and hand you an audio stream in a variety of 
formats.  Modems doing this task are typically half duplex, although 
some manage to do full duplex.  Not only does the hardware have to 
support full duplex (and for the reasons Steve detailed they usually 
don't), but the software coding required to make full duplex work is 
apparently a good bit trickier.  It seems the modems responses to AT or 
voice-mode commands while delivering an audio stream in voice mode tend 
to be finicky and delayed.  Couple that with the fact that most hardware 
doesn't support it, and thusly most software in Linux doesn't bother.  
The typical way to interact with the other end is via setting a timeout 
for a response.  Essentially, you tell the modem, "deliver this audio 
stream and wait until you detect a DTMF tone, or X seconds have 
passed."  Some modems can successfully detect DTMF while they're 
delivering the audio, some can't - it varies from hardware to hardware 
(again, see full duplex discussion above).

I mentioned at the head of the last paragraph that the modem can be 
sending you audio in a variety of proprietary and pretty raw formats.  
Essentially, this is 8bit pcm data, clocked at a certain frequency.  In 
some hardware, you can set the frequency, or perhaps even choose from 
one of a few voice data formats, but these are unusual luxuries.  
Typically, software (such as the a-fore-mentioned vgetty) that 
interfaces with these cards has to code numerous different codecs to 
deal with the different types of modems.  Fortunately, there are only a 
finite number of actual chipsets out there, in practice only about maybe 
8 or so different types of data input are common, most are variations on 
one of those basic types (although there can easily be up to 50 to 100 
various combinations of base type, and extraneous options for that type).

Hopefully this has been a short and comprehensive tour into what your 
voice modem can and can't do, and why it's not going to be terribly well 
supported in Linux.  Yes, it is possible to do what you want.  Yes, the 
features to allow it to be a full duplex speakerphone are mostly in the 
hardware.  You (Scott) already knew these things, from having used the 
software that came with your modem in Windows.  Unfortunately, the scope 
of modems is wide, and there's (thus far) hasn't been a whole lot of 
interest for this type of feature in the Linux world, in my humble 
experience.

As I said in my previous email, I'd look into derivatives of the vgetty 
project, perhaps something will meet your needs, but I have never run 
across such a beast.

Aaron S. Joyner



More information about the TriLUG mailing list