Smart call processing for dumb telephony hardware.

Dumb telephony cards are far cheaper than ones with on board DSP and other processing. However, to make them sing and dance they need good host DSP libraries, call processing libraries, and so on. If this is of no interest to you, you must be in the wrong place.


Until recently telephony cards for computers (mostly ISA, PCI and cPCI cards) were generally complex devices with on-board DSP hardware. Dialogic, Natural Microsystems, Pika and others have been making products of this kind since the 1980s. Slow host CPUs and approvals issues made alternatives unworkable. Now we have very fast host CPUs, and the approvals requirements in some places are less problematic than they used to be. The time for dumb telephony cards, and smart host software has come.

Since this work began, the power of host processors has continued to improve, and the idea of DSP on the host CPU has now become firmly established. Several commercial vendors now provide solutions of this type, typically using the term "host media processing".

The pieces of the puzzle

A number of elements must be in place to make a VoIP system work well. Some discussion about these may be found in a description of the key elements of a VoIP system.

The available packages

The main packages available right now are spandsp and unicall.

Spandsp is a library of many DSP functions for telephony. These range from simple modules, such as DTMF detection, to a complete software FAX machine.

Unicall is an abstraction layer for telephony signaling, and some telephony protocol modules to go with it. The key module right now is MFC/R2.


The source code for SpanDSP may be found in the downloads area. Instructions for installing it are available. There are some notes about the performance which the soft FAX in the current version of SpanDSP achieves. There is also a SpanDSP FAQ.

There is also a more technical discussion of spandsp.

Unicall (MFC/R2, T.31 and other protocols)

Those interested in the Unicall abstration layer can find technical information. Alternatively, you may simply be interested in how to install MFC/R2 support for open source telephony applications, such as Asterisk.

Vale - a library for streaming media

Vale is a library, currently at the early development stage, for streaming media. There are some notes about the Vale library.

The source code for Vale may be found in the downloads area.

Testing telephony DSP

Some information about the work which has started on broader testing of open source telephony DSP may be found in some notes about Spirent/TAS test equipment for telephone lines.

FAX over VoIP, and FAX over IP (FoIP)

A number of questions regularly raised about FoIP and T.38, the real-time FAX over IP protocol, prompted some notes on the subject. There are also some notes about issues related to implementing T.38.

Patents, equipment approvals and other regulatory issues affecting free telephony

Because the same questions about patents and telephony come up again and again I have started an FAQ on the subject.

Mailing lists related to telephony and DSP

There are some mailing lists related to telephony and DSP. These include mailing lists for SpanDSP, UniCall and T.38.

Various issues related to telephony and DSP

There are some notes and thoughts on issues related to telephony and DSP in my ramblings. Some of these are technical, and some are not.

Dumb (but not stupid) telephony cards

There is also a page about some actual dumb telephony cards, suitable for use with the software.

Updated 2010/03/10, Steve Underwood