Telephony software is used to place calls, monitor a call's progress and detect incoming calls on POTS (plain old telephone service) lines. In digital telephony, where call control is directed by other means, DTMF dialing and call progress monitoring are required for secondary dialing. The North American Telephony Platform is used for call control under North American administrations. The International Telephony Platform is used for call control under various international administrations. Call Progress Tones When originating a telephone call, progress tones are generated by the telephone system as the call sequences through the telephone network. The application software uses these conditions as the call progress tones are detected to control its actions. The call progress tones include primary and secondary dial tones, busy, congestion, ring back and bong. Both tone generation and tone detection are used extensively in analog telephony. Call Dialing Telephone numbers can be dialed with tones (DTMF), pulses or adaptively. Adaptive dialing can be used when the capability of the telephone line is unknown, but tone dialing is preferred. Pulse dialing must be implemented with external hardware, usually a relay in the telephone circuitry. Caller ID Caller ID Types I and II are available. Caller ID is a burst of Bell 202/V.23 modulated information generated between the first and second ring. The Caller ID information provides the telephone number and/or name of the calling party. DTMF Detection and Generation Both DTMF generation and detection are available. DTMF is a multi-frequency signaling code of paired frequencies emitted simultaneously to indicate a particular button has been pressed. Our DTMF detector exceeds Belcore Specifications. Ring Detection Ring detection is used to detect valid incoming ring signals. Distinctive ring detection can be used to identify different ring cadences. Distinctive ringing, an option available from the telephone company, provides several different telephone numbers for a single physical line where incoming calls produce a distinct ring cadence for each dialed number. Data/Facsimile/Voice Distinction is available as well as complete data modem, facsimile, speech coder and multimedia systems. Features \tComplete call progress monitoring (North American and International) \tPer call time-slot assignment and sample stream coding (A-law, μ-law or Linear) \tHook control and dialing procedures (North American and International) \tInternational DAA support \tPulse, tone and adaptive dialing \tCaller ID Type I and II \tCall Waiting/Call Forwarding/Call Block features \tAcoustic, Line, and Digital Network Echo Cancellers \tDTMF Detection/Generation \tMF tone detectors, general purpose programmable tone detectors/generators available \tRing detect and distinctive ring detect \tAutomatic Gain Control (AGC) \tVoice Activity Detection (VAD) \tPacket Loss Concealment (PLC) \tAdaptive Jitter Buffer \tVoice/Facsimile/Data Modem Detection \tMulti-tasking environment compatible Configurations \tDAA interface using linear/PCM codec at 7.2 kHz, 8.0 kHz or custom sample rates \tDirect interface to 8.0 kHz PCM data stream (A-law or μ-law) \tComplete data modem, facsimile and multimedia systems available \tCommon compressed speech frame stream interface to support systems with multiple speech coders \tDynamic speech coders selection if multiple speech codecs available \tCan be integrated with G.168 Echo Canceller and Tone Detection/Regeneration modules \tMultiple ports can be executed on a single DSP Software Licensing VOCAL's software may be licensed as standalone algorithms or library. Contact us for custom solutions to meet your specific application requirements. VOCAL's embedded software libraries include a complete range of ETSI / ITU / IEEE compliant algorithms, in addition to many other standard and proprietary algorithms. Our software is optimized for execution on ANSI C and leading DSP architectures (TI, ADI, AMD, ARM, MIPS, CEVA, LSI Logic ZSP, etc.). These libraries are modular and can be executed as a single task under a variety of operating systems or standalone with its own microkernel.