AlgoTron DSP Software for Telecoms & Audio
a TI DSP Third Party Network Member

Home Modems Telephony Audio Utilities Consultancy Glossary Index Contact us

Contact us


Caller ID Detector (Standard) DSP C Code

Description: implements Caller IDentity - CID - detection for communicating call data on-hook over telephone lines to subscribers, before the 1st ring or between the 1st and 2nd rings. CID is sent from the local exchange using ITU V.23 or Bell 202 modem signals. A pre-amble of CSS data then mark carrier is followed by the message byte data, terminated with a checksum byte. The data is normally in multiple parameter groups eg of date/time, caller name/number, but may be a single parameter group.
The CID Detector - Decoder+Receiver - is used at the subscriber end and is for "standard" locales - eg ETSI, UK SIN 227, US Bellcore SDMF/MDMF, Bell Canada - but not for Japan. The software function summary is:

CID Decoder - accepts the pre-amble of channel seizure and mark carrier signals for user-set minimum periods, then loads received bytes into the message data buffer, and finally checks the received checksum byte

The function above detects from line signal samples using the following routine, available on its own:

CID Receiver (as used with "Japan" CID) - with timing at 1200b/s, frequency-demodulates V.23 (1300Hz Mark, 2100Hz Space) or Bell 202 (1200Hz Mark, 2200Hz Space) receive samples to pre-amble data or message data bytes, stripping out start/stop bits

The Detector forms a buffer of the complete message data for the user interface in parameterised byte form, excluding the checksum byte. Message de-parameterisation in the user code gives flexibility in dealing with Caller ID categories. The message buffer format is 2 per 16-bit word for efficiency in multi-channel use.
         The C code is suitable for any processor with an ANSI-compliant C compiler. It is designed especially for efficient operation on low-cost fixed-point DSP- and general-purpose micro-processors. All data memory is specified as 16-bit integer words. Multiplies are integer 16x16-bit with 32-bit products. Sample rates of 8.0kHz and 9.6kHz can be selected. Each function has an initialisation call and a per-sample main routine call, and is re-entrant with memory offset-addressing for multi-channel operation. A comprehensive user's guide is provided with the code.


SNR for 10-6 BER on Flat Channel: 12.0dB - Bell 202 ; 12.5dB - V.23 (4kHz BW noise)
Local loop line length for no errors: >9km

Processor Load:

Function MIPS# Data memory (words) Prog memory (words)#
CID-S Detector (Decoder+Receiver) 2.9 (26 + M) x N 1.1k
CID R eceiver only 2.5 24 x N 0.7k

- #example figures from compiling for the TI TMS320C5000(C55x) DSP processor at 8.0kHz sampling
- in data memory figures M is the user-set buffer size at 2 bytes per word and N is no. of channels

Availability: NOW - sale is under licence - integration support offered

Home Modems Telephony Audio Utilities Consultancy Glossary Index Contact us