Voice support methods in contemporary modems

Dan Williams dcbw at redhat.com
Fri Mar 11 22:10:24 UTC 2016


On Fri, 2016-03-11 at 19:17 +0100, Marcin Szewczyk wrote:
> Hi,
> 
> sorry for writing on a devel group but I really did not find any
> better
> place to ask. I am working on a phone-like device that could make a
> voice call and sometimes send some data over the internet. I am
> confused, probably because most of documentation on voice modems is
> from
> another century.
> 
> At first I thought that modems can use the serial interface to send
> audio data the same way they do with internet data (TCP/IP). Was it
> ever
> true?  Internet remembers things like FCLASS=8, AT+VTX, AT+VRX and
> switching between modes with pause, +++, pause.
> 
> I thought that maybe mPCIe modem could do things like that using
> ttyUSB.
> 
> Then I found a thread on the Tizen bugtracker and some documentation
> on
> Sierra and Telit modems. They seem to have an I2S interface on
> reserved
> mPCIe pins.  Is it correct to assume that there is no other way but
> to
> have a motherboard with I2S hardware support or an external ADC/DAC? 
> 

There are a couple different classes of devices here.

First you have typical dongles and mPCI/mPCIE/M.2 cards that use USB.
 Not all of these devices support voice calls though.  But the ones
that do typically expose a normal serial port (eg, ttyUSB3 or whatever)
that speaks PCM audio.  Like, literally when you're in a voice call you
can write 16-bit 8khz PCM-coded audio data to ttyUSB3 and read the same
format data from it.  The interface becomes active when the modem dials
a voicecall with ATDxxxxxxxx or some other command.  One example is the
Huawei K3520 USB dongle; many other Huawei dongles have voice support
too.

But the modems usually found in embedded devices or phones have much
different audio call routing, often because they don't use the main CPU
for audio processing due to power/battery concerns.  In these cases the
modem itself handles the audio and is directly connected to the
DAC/ADC.  The CPU is not involved in audio processing or routing at
all.  This allows the CPU to go to sleep while the phone is held up to
your ear and doing nothing.  This is unfortunately highly platform
specific.

> Can
> a regular Atom motherboard do things like that? Is there a de-facto
> standard on using some specific pins for I2S on mPCIe and some
> motherboards support that by forwarding sound to their Intel HDA for
> example?

There is no standard that I know of for mPCIe voice routing, but at
least some Telit and other devices dedicate 4 pins to I2S-based
"Digital Voice Interface" stuff.  Given that you need specifically
wired mPCIE slots for connecting SIM cards I don't think you'll find
too many  that wire up I2S.

> Then I have also read about QMI and MBIM protocols. Some of articles
> mention voice in that context. Are there any devices supporting audio
> transfer using just software without any soldering of I2S pins?

The QMI and MBIM commands are only used to set up the voice calls, but
don't have any relationship to audio routing.  That would be modem
dependent.  Some have specific pins/lines for the audio, others direct
it over USB, etc.

> Are there any modems that emulate an ALSA sound card?

Not that I know of.

> What are the options with voice support as far as contemporary
> (mainly
> mPCIe) modems are concerned? I know that is a lot of questions but
> maybe
> there is a good read you could provide me with?

It does look like some mPCI devices do support I2S on the same pins,
but I have no idea if any of this is standard.

http://www.telit.com/index.php?eID=tx_nawsecuredl&u=0&g=0&t=1457821946&
hash=9f7b2671f9068c04d6ca770e04187bedbdf4e7b5&file=downloadZone/1VV0301
006_xE910_Mini_PCIe_Adapter_HW_USER_GUIDE_r10.pdf

http://www.eltech.spb.ru/files/item/MC8704.pdf

In any case, ModemManager would only control the voicecall start, stop,
and perhaps configure the modem with vendor-specific commands to enable
 DVI over the I2S pins, but the actual audio handling would have to be
done through hardware and other mechanisms.

Dan


More information about the ModemManager-devel mailing list