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 (Japan) DSP C Code

Description: implements Caller IDentity - CID - detection for communicating call data on-hook over telephone lines to subscribers as implemented in Japan. Here before the 1st normal ring, the exchange sends a line reversal followed by a set of short rings that should be inaudible in a normal subscriber phone. The phone responds by going off-hook, triggering the exchange to send the CID message data. After reception, the phone reverts to on-hook, and the exchange continues with normal ringing.
         The CID message is a pre-amble of mark carrier followed by the message byte data and finally a cyclic redundancy check (CRC) byte-pair, all modulated as a V.23 modem signal. The byte data consists of multiple parameter groups. The CID Detector - Decoder+Receiver - implements the message data communication for the subscriber end. The software function summary is:

CID Decoder - accepts the pre-amble of mark carrier signal for a user-set minimum period, followed by the fixed start 5 bytes, then loads received bytes into the message data buffer stripping parity, then the fixed end 2 bytes, and finally checks the received CRC byte-pair

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

CID Receiver (as used with "standard" CID) - with timing at 1200b/s, frequency-demodulates V.23 (1300Hz Mark, 2100Hz 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 CRC bytes. 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-J Detector (Decoder+Receiver) 2.9 (26 + M) x N 1.2k
CID Receiver 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