Skip to content

V.70: voice and data on one call (DSVD)

V.70 (ITU-T V.70, "DSVD", digital simultaneous voice and data) lets two modems carry a telephone conversation and a data connection at the same time on one call. The voice is compressed (G.729 Annex A, 8 kbit/s) and sent as data, side by side with the computer's own data, over one V.34 (or faster) connection. In the mid-1990s it was sold as "talk while you play" for modem games and remote help.

The parts that make it up are:

  • V.8bis, where the two modems agree to use DSVD at the start of the call (V.8bis);
  • V.76, a multiplexer that shares the connection between several channels (one for data, one for voice);
  • V.75, which opens and closes those channels;
  • G.729 Annex A, the voice coder.

D-Modem has all four. Two D-Modems agree on DSVD, connect, and the computer's data goes over V.76's data channel. Where the modem has a voice path (below), a voice channel opens beside it: each side's speech is coded with G.729 Annex A, 10 octets every 10 ms, and sent ahead of the data.

D-Modem's G.729 Annex A coder is its own. It gives the same bits and the same samples as the ITU-T reference on all of the Recommendation's Annex A test vectors, and it has been tried both ways against bcg729, the coder most open source telephone software uses.

When nobody speaks, the coder goes quiet too (G.729 Annex B). It sends a short description of the background noise when the noise changes, and nothing in between, so the data gets that share of the line. The far end plays matching "comfort noise" so the line never sounds dead. This silence coder also gives the ITU-T reference's bits and samples on all of Annex B's test vectors.

For the full technical description, see the technical details.

Turning it on

Both ends need V.8bis and DSVD on:

AT+A8E=1,1,,1+DSVD=1

+DSVD is D-Modem's own command: 1 offers DSVD in V.8bis and chooses it when the other end offers it too, 0 (the default) does not. AT+DSVD? shows the setting.

With DSVD on at one end only, the call goes on as a plain data call with V.42 error correction, as it would without it.

What the user sees

ATD and ATA work as usual. CONNECT comes once the data channel is open, and the computer's data flows as on any error-corrected call. Where the modem names the call's error correction (ATI11, the Protocol: report), it says V.76. There is no compression on the data channel.

Where the voice goes

The voice channel needs somewhere to send and play speech:

  • A SmartUSB56 with a handset (--usb-voice-codec): the phone on the modem's handset jack. While the voice channel is open, its microphone is sent to the far end and the far end's speech is played in its earpiece.
  • --dsvd-audio <command> (dmodemd, not on Windows): a program started when the voice channel opens and stopped when it closes. It gets the far end's speech on its input and gives ours on its output, as raw 16 bit little-endian samples, 8000 a second, mono. With ALSA's tools, for example:

    dmodemd ... --dsvd-audio 'aplay -q -t raw -f S16_LE -r 8000 & exec arecord -q -t raw -f S16_LE -r 8000'

With neither, the call is data only, as before, and a voice channel the other end asks for is turned down.

V.61 (+ASVD), the analogue kind of voice and data, uses the same voice path.

Limits

  • The voice has not yet been tried on a SmartUSB56's handset itself, only in tests.
  • When the line is slow, voice takes 8 kbit/s of it first and the data gets the rest.
  • Only between two D-Modems so far; it has not been tried against another maker's DSVD modem.
  • DSVD runs over whatever modulation V.8 then picks. V.70 names V.34 and V.32bis; two D-Modems on a digital line pick V.91 (up to 62667 bps) instead.
  • DSVD is only agreed at the start of a call, not in the middle of a telephone conversation.
  • One data channel, in error-recovery mode, with V.76's default settings, and one voice channel. A channel the other end asks for with other settings, or a second one, is refused.
  • Silence suppression is only used when both ends ask for V.75's audio header, as two D-Modems do. Another maker's DSVD modem that takes the header but has no Annex B decoder would hear gaps instead of comfort noise; none has been tried.