Page 3 - Contents
Voice API Programming Guide – June 2005 3 Contents Revision History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 About This Publication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ...
Page 9 - Figures
Voice API Programming Guide – June 2005 9 Contents Figures 1 Cluster Configurations for Fixed and Flexible Routing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 2 Basic Call Progress Analysis Components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ...
Page 10 - Tables
10 Voice API Programming Guide – June 2005 Contents Tables 1 Voice Device Inputs for Event Management Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 2 Voice Device Returns from Event Management Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 3 API Fun...
Page 11 - Revision History
Voice API Programming Guide — June 2005 11 Revision History This revision history summarizes the changes made in each published version of this document. Document No. Publication Date Description of Revisions 05-2377-002 June 2005 Application Development Guidelines chapter : Added bullet about digit...
Page 13 - About This Publication; Purpose; Applicability; Intended Audience
Voice API Programming Guide — June 2005 13 About This Publication The following topics provide information about this publication: • Purpose • Applicability • Intended Audience • How to Use This Publication • Related Information Purpose This publication provides guidelines for building computer tele...
Page 14 - How to Use This Publication
14 Voice API Programming Guide — June 2005 About This Publication • Independent Software Vendors (ISVs) • Value Added Resellers (VARs) • Original Equipment Manufacturers (OEMs) How to Use This Publication This document assumes that you are familiar with and have prior experience with Windows or Linu...
Page 15 - Related Information
Voice API Programming Guide — June 2005 15 About This Publication • Chapter 15, “R2/MF Signaling” describes the R2/MF signaling protocol, the API functions for use with this feature, and programming guidelines. • Chapter 16, “Syntellect License Automated Attendant” describes Intel hardware and softw...
Page 17 - Product Description; Overview
Voice API Programming Guide — June 2005 17 1 1. Product Description This chapter provides information on key voice library features and capability. The following topics are covered: • Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ....
Page 18 - Tone Generation and Detection Features
18 Voice API Programming Guide — June 2005 Product Description In addition to original Springware products (also known as earlier-generation products), the R4 API supports a new generation of hardware products that are based on the DM3 mediastream architecture. Feature differences between these two ...
Page 19 - Dial Pulse Detection
Voice API Programming Guide — June 2005 19 Product Description See Chapter 13, “Global Tone Detection and Generation, and Cadenced Tone Generation” for detailed information about global tone detection. 1.4.2 Global Tone Generation (GTG) Global tone generation allows you to define a single- or dual-f...
Page 20 - Play and Record Functions
20 Voice API Programming Guide — June 2005 Product Description 1.6.1 Play and Record Functions The voice library includes several functions and data structures for recording and playing audio data. These allow you to digitize and store human voice; then retrieve, convert, and play this digital infor...
Page 21 - Echo Cancellation Resource; Send and Receive FSK Data; Caller ID
Voice API Programming Guide — June 2005 21 Product Description 1.6.6 Echo Cancellation Resource The echo cancellation resource (ECR) feature enables a voice channel to dynamically perform echo cancellation on any external TDM bus time slot signal. Note: The ECR feature has been replaced with continu...
Page 22 - TDM Bus Routing
22 Voice API Programming Guide — June 2005 Product Description 1.10 TDM Bus Routing A time division multiplexing (TDM) bus is a technique for transmitting a number of separate digitized signals simultaneously over a communication medium. TDM bus includes the CT Bus and SCbus. The CT Bus is an implem...
Page 23 - Programming Models; Standard Runtime Library; Asynchronous Programming Models; Synchronous Programming Model
Voice API Programming Guide — June 2005 23 2 2. Programming Models This chapter briefly discusses the Standard Runtime Library and supported programming models: • Standard Runtime Library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 • Asynchronous ...
Page 25 - Device Handling; Device Concepts; Voice Device Names
Voice API Programming Guide — June 2005 25 3 3. Device Handling This chapter describes the concept of a voice device and how voice devices are named and used. • Device Concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 • Voice Devi...
Page 27 - Event Handling; Overview of Event Handling; Event Management Functions
Voice API Programming Guide — June 2005 27 4 4. Event Handling This chapter provides information on functions used to retrieve and handle events. Topics include: • Overview of Event Handling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 • Event Manageme...
Page 29 - Error Handling
Voice API Programming Guide — June 2005 29 5 5. Error Handling This chapter discusses how to handle errors that can occur when running an application. All voice library functions return a value to indicate success or failure of the function. A return value of zero or a non-negative number indicates ...
Page 31 - General Considerations; Busy and Idle States
Voice API Programming Guide — June 2005 31 6 6. Application Development Guidelines This chapter provides programming guidelines and techniques for developing an application using the voice library. The following topics are discussed: • General Considerations . . . . . . . . . . . . . . . . . . . . ....
Page 32 - Setting Termination Conditions for I/O Functions
32 Voice API Programming Guide — June 2005 Application Development Guidelines 6.1.2 Setting Termination Conditions for I/O Functions When an I/O function is issued, you must pass a set of termination conditions as one of the function parameters. Termination conditions are events monitored during the...
Page 34 - Setting Termination Conditions for Digits
34 Voice API Programming Guide — June 2005 Application Development Guidelines specific digit received (DX_DIGMASK) Digits received during an I/O function are collected in a channel's digit buffer. If the buffer is not empty before an I/O function executes, the digits in the buffer are treated as bei...
Page 35 - Clearing Structures Before Use; Fixed and Flexible Routing Configurations
Voice API Programming Guide — June 2005 35 Application Development Guidelines To specify an additional timeout if subsequent digits are not received, use the DX_IDDTIME (interdigit delay) termination condition and the TF_FIRST flag in the DV_TPT structure. The TF_FIRST flag specifies that the timer ...
Page 36 - Fixed Routing
36 Voice API Programming Guide — June 2005 Application Development Guidelines devices is predefined and static. The resource device also does not have access to the TDM bus and so cannot be routed independently on the TDM bus. No off-board sharing or exporting of voice/fax resources is allowed. flex...
Page 37 - Fixed Routing Configuration Restrictions; Additional DM3 Considerations
Voice API Programming Guide — June 2005 37 Application Development Guidelines 6.3 Fixed Routing Configuration Restrictions Flexible routing configuration is the configuration of choice for applications using R4 on DM3. This documentation assumes that the flexible routing configuration is in use unle...
Page 38 - Multithreading and Multiprocessing
38 Voice API Programming Guide — June 2005 Application Development Guidelines • Device Initialization Hint • TDM Bus Time Slot Considerations • Tone Detection Considerations 6.4.1 Call Control Through Global Call API Library Call state functions such as dx_wink( ) and board-level parameters such as ...
Page 39 - DM3 Media Loads; Device Initialization Hint
Voice API Programming Guide — June 2005 39 Application Development Guidelines 6.4.3 DM3 Media Loads Different configurations for DM3 products are supported in the form of media loads. For instance, a specific media load is available for users who need to implement continuous speech processing (CSP) ...
Page 40 - TDM Bus Time Slot Considerations
40 Voice API Programming Guide — June 2005 Application Development Guidelines With some applications, this may cause slow device-initialization performance. You can avoid this problem in one of several ways, depending on the type of application: • In multithreaded applications, you can reorganize th...
Page 41 - Tone Detection Considerations; Using Wink Signaling; Setting Delay Prior to Wink
Voice API Programming Guide — June 2005 41 Application Development Guidelines http://resource.intel.com/telecom/support/tnotes/gentnote/dl_soft/tn253.htm . For CSP, see http://resource.intel.com/telecom/support/tnotes/gentnote/dl_soft/tn254.htm . 6.4.7 Tone Detection Considerations The following con...
Page 42 - Receiving an Inbound Wink
42 Voice API Programming Guide — June 2005 Application Development Guidelines duration = the value entered x 10 msec The syntax of the function is: int duration;duration = 15;dx_setparm(dev,DXCH_WINKLEN,(void*)&duration) If duration = 15, then DXCH_WINKLEN = 15 x 10 or 150 msec. 6.5.3 Receiving ...
Page 43 - Call Progress Analysis Overview
Voice API Programming Guide — June 2005 43 7 7. Call Progress Analysis This chapter provides detailed information about the call progress analysis feature. The following topics are discussed: • Call Progress Analysis Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ...
Page 44 - Call Progress and Call Analysis Terminology
44 Voice API Programming Guide — June 2005 Call Progress Analysis There are two forms of call progress analysis: PerfectCall call progress analysis Also called enhanced call progress analysis. Uses an improved method of signal identification and can detect fax machines and answering machines. You sh...
Page 46 - Using Call Progress Analysis on DM3 Boards; Call Progress Analysis Rules on DM3 Boards
46 Voice API Programming Guide — June 2005 Call Progress Analysis Figure 3. PerfectCall Call Progress Analysis Components 7.4 Using Call Progress Analysis on DM3 Boards The following topics provide information on how to use call progress analysis on DM3 boards: • Call Progress Analysis Rules on DM3 ...
Page 47 - Overview of Steps to Initiate Call Progress Analysis
Voice API Programming Guide — June 2005 47 Call Progress Analysis Table 4 provides information on call progress analysis scenarios supported with the dx_dial( ) function. This method is available regardless of the protocol being used; however, some restrictions apply when using DM3 CAS protocols. Th...
Page 48 - Setting Up Call Progress Analysis Parameters in DX_CAP
48 Voice API Programming Guide — June 2005 Call Progress Analysis 7.4.3 Setting Up Call Progress Analysis Parameters in DX_CAP The call progress analysis parameters structure, DX_CAP, is used by dx_dial( ) . It contains parameters to control the operation of call progress analysis features, such as ...
Page 49 - Determining the Outcome of a Call
Voice API Programming Guide — June 2005 49 Call Progress Analysis Notes: 1. On DM3 boards, dx_dial( ) cannot be used to start an outbound call; instead use the Global Call API. 2. To issue dx_dial( ) without dialing digits, specify “ ” in the dialstrp argument. 7.4.5 Determining the Outcome of a Cal...
Page 50 - Obtaining Additional Call Outcome Information
50 Voice API Programming Guide — June 2005 Call Progress Analysis Figure 4. Call Outcomes for Call Progress Analysis (DM3) 7.4.6 Obtaining Additional Call Outcome Information To obtain additional call progress analysis information, use the following extended attribute functions: ATDX_CPERROR( ) Retu...
Page 51 - Tone Detection Overview
Voice API Programming Guide — June 2005 51 Call Progress Analysis 7.5 Call Progress Analysis Tone Detection on DM3 Boards The following topics discuss tone detection used in call progress analysis on DM3 boards: • Tone Detection Overview • Types of Tones • Ringback Detection • Busy Tone Detection • ...
Page 52 - Ringback Detection
52 Voice API Programming Guide — June 2005 Call Progress Analysis TID_RNGBK2 Ringback (detected as dual tone) TID_SIT_ANY Catch all (returned for a Special Information Tone sequence or SIT sequence that falls outside the range of known default SIT sequences) TID_SIT_INEFFECTIVE_OTHER orTID_SIT_IO In...
Page 53 - Busy Tone Detection; Fax or Modem Tone Detection; SIT Frequency Detection
Voice API Programming Guide — June 2005 53 Call Progress Analysis To enable ringback detection, turn on SIT frequency detection in the DX_CAP ca_intflg field. For details, see Section 7.4.3, “Setting Up Call Progress Analysis Parameters in DX_CAP” , on page 48. The following DX_CAP fields govern rin...
Page 55 - Media Tone Detection on DM3 Boards; Positive Answering Machine Detection (PAMD)
Voice API Programming Guide — June 2005 55 Call Progress Analysis 7.6 Media Tone Detection on DM3 Boards Media tone detection in call progress analysis is discussed in the following topics: • Positive Voice Detection (PVD) • Positive Answering Machine Detection (PAMD) 7.6.1 Positive Voice Detection ...
Page 57 - API Functions for Manipulating Tone Definitions
Voice API Programming Guide — June 2005 57 Call Progress Analysis 7.8 Modifying Default Call Progress Analysis Tone Definitions on DM3 Boards On DM3 boards, call progress analysis tones are maintained in the firmware on a physical board level and are board-specific. More information on tone definiti...
Page 58 - TONE_DATA Data Structure
58 Voice API Programming Guide — June 2005 Call Progress Analysis dx_deletetone( ) deletes a specific call progress tone dx_createtone( ) creates a new tone definition for a specific call progress tone 7.8.2 TONE_DATA Data Structure The TONE_DATA structure contains tone information for a specific ca...
Page 59 - Rules for Modifying a Tone Definition on DM3 Boards; Rules for Using a Single Tone Proxy for a Dual Tone
Voice API Programming Guide — June 2005 59 Call Progress Analysis TONE_DATA.numofseg Specifies the number of segments for a multi-segment tone. 7.8.3 Rules for Modifying a Tone Definition on DM3 Boards Consider the following rules and guidelines for modifying default tone definitions on DM3 boards u...
Page 60 - Steps to Modify a Tone Definition on DM3 Boards; Call Progress Analysis Errors; Using Call Progress Analysis on Springware Boards
60 Voice API Programming Guide — June 2005 Call Progress Analysis Consider the following guidelines when creating a single tone proxy: • It is recommended that you add at least 60 Hz to the top of the dual tone range and subtract at least 60 Hz from the bottom of the dual tone range. For example: Fr...
Page 61 - Setting Up Call Progress Analysis Features in DX_CAP
Voice API Programming Guide — June 2005 61 Call Progress Analysis • Determining the Outcome of a Call • Obtaining Additional Call Outcome Information 7.10.1 Overview of Steps to Initiate Call Progress Analysis Perform the following procedure to initiate an outbound call with call progress analysis: ...
Page 62 - Enabling Call Progress Analysis; Executing a Dial Function
62 Voice API Programming Guide — June 2005 Call Progress Analysis • DX_PAMDENABLE. Enables PAMD, PVD, and fax tone detection. • DX_PAMDOPTEN. Enables PAMD, PVD, DX_OPTNOCON, and fax tone detection. Note: DX_OPTEN and DX_PVDOPTEN are obsolete. Use DX_OPTNOCON and DX_PVDOPTNOCON instead. For more info...
Page 67 - Dial Tone Detection
Voice API Programming Guide — June 2005 67 Call Progress Analysis 7.11.3 Dial Tone Detection Wherever call progress analysis is in effect, a dial string for an outgoing call may specify special ASCII characters that instruct the system to wait for a certain kind of dial tone. The following additiona...
Page 68 - Loop Current Detection
68 Voice API Programming Guide — June 2005 Call Progress Analysis The following DX_CAP fields govern ringback behavior: ca_stdely Start Delay: the delay after dialing has been completed before starting cadence detection, frequency detection, and positive voice detection (in 10 msec units). Default: ...
Page 69 - Loop Current Detection Parameters Affecting a Connect; Media Tone Detection on Springware Boards
Voice API Programming Guide — June 2005 69 Call Progress Analysis Some telephone systems return a momentary drop in loop current when a connection has been established ( answer supervision ). Loop current detection returns a connect when a transient loop current drop is detected. In some environment...
Page 72 - SIT Frequency Detection (Springware Only)
72 Voice API Programming Guide — June 2005 Call Progress Analysis The voice driver contains default definitions for each of these tones. The default definitions will allow applications to identify the tones correctly in most countries and for most switching equipment. However, if a situation arises ...
Page 73 - Tri-Tone SIT Sequences
Voice API Programming Guide — June 2005 73 Call Progress Analysis 7.15.1 Tri-Tone SIT Sequences SIT frequency detection operates simultaneously with all other call progress analysis detection methods. The purpose of frequency detection is to detect the tri-tone special information tone (SIT) sequenc...
Page 74 - General; Second Tone
74 Voice API Programming Guide — June 2005 Call Progress Analysis 3. After a SIT sequence is detected, ATDX_CPTERM( ) will return CR_CEPT to indicate an operator intercept, and you can determine which SIT sequence was detected by obtaining the actual detected frequency and duration for the tri-tone ...
Page 75 - Third Tone; Obtaining Tri-Tone SIT Frequency Information
Voice API Programming Guide — June 2005 75 Call Progress Analysis ca_lower2frq Lower bound for second tone in Hz. Default: 0. ca_upper2frq Upper bound for second tone in Hz. Default: 0. ca_time2frq Minimum time for second tone to remain in bounds. Default: 0 (10 msec units). ca_mxtime2frq Maximum al...
Page 76 - Global Tone Detection Tone Memory Usage; Frequency Detection Errors
76 Voice API Programming Guide — June 2005 Call Progress Analysis ATDX_FRQDUR2( ) Duration of the tone detected in the tone detection range specified by the DX_CAP ca_lower2frq and ca_upper2frq parameters; usually the second tone of an SIT sequence (10 msec units). ATDX_FRQHZ3( ) Frequency in Hz of ...
Page 77 - Setting Single Tone Frequency Detection Parameters
Voice API Programming Guide — June 2005 77 Call Progress Analysis 7.15.6 Setting Single Tone Frequency Detection Parameters The information in this section does not apply to DM3 boards, as the DX_CAP fields mentioned in this section are not supported on DM3 boards. The following paragraphs describe ...
Page 78 - Typical Cadence Patterns
78 Voice API Programming Guide — June 2005 Call Progress Analysis 7.16 Cadence Detection in Basic Call Progress Analysis (Springware Only) Cadence detection is a component of basic call progress analysis. The following topics discuss cadence detection and some of the most commonly adjusted cadence d...
Page 79 - Elements of a Cadence
Voice API Programming Guide — June 2005 79 Call Progress Analysis Figure 6. A Standard Busy Signal Figure 7. A Standard Single Ring Figure 8. A Type of Double Ring 7.16.3 Elements of a Cadence From the preceding cadence examples, you can see that a given cadence may contain two silence periods with ...
Page 81 - Outcomes of Cadence Detection
Voice API Programming Guide — June 2005 81 Call Progress Analysis 7.16.4 Outcomes of Cadence Detection Cadence detection can identify the following conditions during the period used to establish the cadence or after the cadence has been established: • No Ringback • Connect • Busy • No Answer Althoug...
Page 82 - Setting Selected Cadence Detection Parameters; General Cadence Detection Parameters; Cadence Detection Parameters Affecting a No Ringback
82 Voice API Programming Guide — June 2005 Call Progress Analysis 7.16.5 Setting Selected Cadence Detection Parameters Only the most commonly adjusted cadence detection parameters are discussed here. For a complete listing and description of the DX_CAP data structure, see the Voice API Library Refer...
Page 83 - Cadence Detection Parameters Affecting a No Answer or Busy
Voice API Programming Guide — June 2005 83 Call Progress Analysis Figure 11. No Ringback Due to Continuous No Signal If the length of any period of nonsilence exceeds the value of ca_cnosil (continuous nonsilence), a no ringback is returned, shown in Figure 12. ca_cnosil Continuous Nonsilence: the m...
Page 84 - Cadence Detection Parameters Affecting a Connect
84 Voice API Programming Guide — June 2005 Call Progress Analysis ca_nsbusy Nonsilence Busy: the number of nonsilence periods in addition to ca_nbrdna to wait before returning a busy. Default: 0. ca_nsbusy is added to ca_nbrdna to give the actual number of busy cadences at which to return busy. Note...
Page 86 - Obtaining Cadence Information
86 Voice API Programming Guide — June 2005 Call Progress Analysis After call progress analysis is complete, call ATDX_ANSRSIZ( ) . If the return value is less than 180 (1.8 seconds), you have probably contacted a residence. A return value of 180 to 300 is probably a business. If the return value is ...
Page 87 - Overview of Recording and Playback
Voice API Programming Guide — June 2005 87 8 8. Recording and Playback This chapter discusses playback and recording features supported by the voice library. The following topics are discussed: • Overview of Recording and Playback . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ....
Page 88 - Digital Recording and Playback; Play and Record Convenience Functions
88 Voice API Programming Guide — June 2005 Recording and Playback 8.2 Digital Recording and Playback In digital speech recording, the voice board converts the human voice from a continuous sound wave, or analog signal, into a digital representation. The voice board does this by frequently sampling t...
Page 89 - Voice Encoding Methods
Voice API Programming Guide — June 2005 89 Recording and Playback entry for that file. Using dx_playf( ) is more convenient for a single file playback because you do not have to set up a DX_IOTT structure for the one file and the application does not need to open the file. dx_recf( ) provides the sa...
Page 92 - Transaction Record
92 Voice API Programming Guide — June 2005 Recording and Playback • Subsequent pairs of the code words are packed in the same way into successive octets, with the first code word of each pair placed in the least significant four bits of the octet. It is preferable to extend the voice sample with sil...
Page 93 - Silence Compressed Record
Voice API Programming Guide — June 2005 93 Recording and Playback On Springware boards on Linux, use the following functions for transaction record: dx_recm( ) records voice data from two channels to a data file, memory, or custom device dx_recmf( ) records voice data from two channels to a single f...
Page 94 - Encoding Methods Supported
94 Voice API Programming Guide — June 2005 Recording and Playback with SCR. For more information on modifying SCR parameters, see the Configuration Guide for your product or product family. On Springware boards, you enable SCR in the voice.prm file which is downloaded to the board during initializat...
Page 95 - Recording with the Voice Activity Detector
Voice API Programming Guide — June 2005 95 Recording and Playback • G.711 PCM, 6 kHz with 8-bit samples (48 kbps) and 8 kHz with 8-bit samples (64 kbps) using A-law or mu-law coding, VOX and WAVE file formats • G.721 at 8 kHz with 4-bit samples (32 kbps), VOX and WAVE file formats • G.726 bit-exact ...
Page 96 - Enabling
96 Voice API Programming Guide — June 2005 Recording and Playback 8.9.2 Enabling The modes related to the voice activity detector are specified in the mode parameter of the dx_reciottdata( ) function. They are: RM_VADNOTIFY generates an event, TDX_VAD, on detection of voice energy during the recordi...
Page 97 - Streaming to Board; Streaming to Board Overview
Voice API Programming Guide — June 2005 97 Recording and Playback • G.726 bit-exact voice coder at 8 kHz with 2-, 3-, 4-, or 5-bit samples (16, 24, 32, 40 kbps), VOX and WAVE file formats 8.10 Streaming to Board The streaming to board feature is discussed in the following topics: • Streaming to Boar...
Page 98 - Implementing Streaming to Board; Streaming to Board Hints and Tips
98 Voice API Programming Guide — June 2005 Recording and Playback 8.10.3 Implementing Streaming to Board Perform the following steps to implement streaming to board in your application: Note: These steps do not represent every task that must be performed to create a working application but are inten...
Page 99 - Pause and Resume Play; Pause and Resume Play Overview
Voice API Programming Guide — June 2005 99 Recording and Playback • Recommendation for the high water mark: it should be based on the following: (size of the circular stream buffer) minus (two times the size of the bulk queue buffer) For example, if the circular stream buffer is 100 kbytes, and the ...
Page 100 - Pause and Resume Play Functions
100 Voice API Programming Guide — June 2005 Recording and Playback The pause and resume play feature is not supported on Springware boards. 8.11.2 Pause and Resume Play Functions The following functions and data structure are used in the pause and resume play feature: dx_pause( ) pauses a play curre...
Page 101 - Overview of Echo Cancellation Resource
Voice API Programming Guide — June 2005 101 Recording and Playback • It does not make sense to use the same DTMF digit as a termination condition on a play and as the pause/resume condition. • To end a paused play, use dx_stopch( ) . 8.12 Echo Cancellation Resource The echo cancellation resource (EC...
Page 102 - Echo Cancellation Resource Operation
102 Voice API Programming Guide — June 2005 Recording and Playback 8.12.2 Echo Cancellation Resource Operation The echo canceller accepts two TDM bus input data streams. One stream contains data that is identical to that which was transmitted to the echo-producing circuit (Transmit Signal in Figure ...
Page 104 - Modes of Operation; Overview of Modes
104 Voice API Programming Guide — June 2005 Recording and Playback 8.12.3 Modes of Operation The echo cancellation resource feature has two modes of operation as discussed in the following topics: • Overview of Modes • Standard Voice Processing (SVP) Mode • Echo Cancellation Resource (ECR) Mode 8.12...
Page 105 - Echo Cancellation Resource Application Models; How to Set Up the ECR Bridge
Voice API Programming Guide — June 2005 105 Recording and Playback ECR mode is activated using the dx_listenecrex( ) function. For technical information on ECR functions, see the Voice API Library Reference . Note: dx_listen( ) may precede or follow the dx_listenecr( ) or dx_listenecrex( ) function....
Page 106 - Example
106 Voice API Programming Guide — June 2005 Recording and Playback 2. Have both MSI/SC stations listen to the ECR transmit of the opposite voice channel. ms_listen (MS1, &CH2_ECR_TX);ms_listen (MS2, &CH1_ECR_TX); 3. Have both voice channel devices listen to their corresponding MSI/SC station...
Page 109 - How to Set Up an ECR Play Over the TDM bus
Voice API Programming Guide — June 2005 109 Recording and Playback exit(1); } if (dx_close(chdev2) == -1) { printf("Error message = %s, on %s", ATDV_ERRMSGP(chdev2), ATDV_NAMEP(chdev2)); exit(1); } if (ms_close(msdev1) == -1) { printf("Error message = %s, on %s", ATDV_ERRMSGP(chdev1)...
Page 113 - Speed and Volume Control Overview; Speed and Volume Convenience Functions
Voice API Programming Guide — June 2005 113 9 9. Speed and Volume Control This chapter describes how to control the speed and volume of play on a channel. The following topics are discussed: • Speed and Volume Control Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ....
Page 114 - Speed and Volume Adjustment Functions; Speed and Volume Modification Tables
114 Voice API Programming Guide — June 2005 Speed and Volume Control dx_addvoldig( ) adds a digit that will modify volume by a specified amount See the Voice API Library Reference for detailed information about these functions. 9.3 Speed and Volume Adjustment Functions Speed or volume can be adjuste...
Page 118 - Play Adjustment Digits; Explicitly Adjusting Speed and Volume
118 Voice API Programming Guide — June 2005 Speed and Volume Control 9.5 Play Adjustment Digits The voice software processes play adjustment digits differently from normal digits: • If a play adjustment digit is entered during playback, it causes a play adjustment only and has no other effect. This ...
Page 121 - Overview of ADSI and Two-Way FSK Support
Voice API Programming Guide — June 2005 121 10 10. Send and Receive FSK Data This chapter describes the Analog Display Services Interface (ADSI) protocol, two-way frequency shift keying (FSK), and guidelines for implementing ADSI and two-way FSK support using voice library functions. • Overview of A...
Page 122 - ADSI Protocol
122 Voice API Programming Guide — June 2005 Send and Receive FSK Data acknowledge and the data transmission (and/or reception) will then be initiated. Once the data transmission/reception is complete, the devices switch back to voice mode. This newer implementation of ADSI is supported through the d...
Page 123 - ADSI Operation
Voice API Programming Guide — June 2005 123 Send and Receive FSK Data 10.3 ADSI Operation ADSI data is encoded using a standard 1200 baud modem specification and transmitted to the telephone on the voice channel. The voice is muted for the data transfer to occur. Responses from the ADSI telephone ar...
Page 124 - Transmit to On-Hook CPE
124 Voice API Programming Guide — June 2005 Send and Receive FSK Data 10.5 Two-Way ADSI Two-way ADSI includes several enhancements to one-way ADSI, including two-way frequency shift keying (FSK). The following topics discuss two-way ADSI: • Transmit to On-Hook CPE • Two-Way FSK 10.5.1 Transmit to On...
Page 125 - ADSI and Two-Way FSK Voice Library Support
Voice API Programming Guide — June 2005 125 Send and Receive FSK Data information about two-way FSK transmission, see Telcordia Technologies Special Report SR-3462, A Two-Way Frequency Shift Keying Communication for the ADSI . In addition to features provided by basic ADSI, two-way FSK for ADSI can ...
Page 127 - Library Support on Springware Boards; Developing ADSI Applications
Voice API Programming Guide — June 2005 127 Send and Receive FSK Data 10.7.2 Library Support on Springware Boards Springware boards support ADSI one-way, two-way FSK, and fixed-line short message service (SMS). The following voice library functions and data structures support this functionality on S...
Page 130 - Technical Overview of Two-Way ADSI Data Transfer
130 Voice API Programming Guide — June 2005 Send and Receive FSK Data 10.8.3 Technical Overview of Two-Way ADSI Data Transfer In two-way ADSI data transfer, both the ADSI server and CPE device can transmit and receive ADSI data messages. The CAS is used to initiate the transfer of ADSI FSK data and ...
Page 133 - Modifying Older One-Way ADSI Applications
Voice API Programming Guide — June 2005 133 Send and Receive FSK Data 8. Issue dx_RxIottData( ) to receive messages from the CPE. This function should be issued as soon as possible because the CPE peripheral can send data to the server after a minimum of 100 msec following the completion of its tran...
Page 135 - Overview of Caller ID; Caller ID Formats
Voice API Programming Guide — June 2005 135 11 11. Caller ID This chapter provides information on caller ID: • Overview of Caller ID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 • Caller ID Formats . . . . . . . . . . . . . . . . . . . . . ....
Page 137 - Accessing Caller ID Information
Voice API Programming Guide — June 2005 137 Caller ID 11.3 Accessing Caller ID Information You can process caller ID information in your application in the following ways: • For CLASS or ACLIP, the caller ID information is received from the service provider between the first and second ring. Set the...
Page 138 - Enabling Channels to Use the Caller ID Feature; Caller ID Technical Specifications
138 Voice API Programming Guide — June 2005 Caller ID 11.4 Enabling Channels to Use the Caller ID Feature During Intel Dialogic System Service startup, before the initial use of caller ID functions, the application must enable the caller ID feature on the channels requiring caller ID. On Springware ...
Page 141 - Overview of Cached Prompt Management; Using Cached Prompt Management; Discovering Cached Prompt Capability
Voice API Programming Guide — June 2005 141 12 12. Cached Prompt Management This chapter discusses the cached prompt management feature of the voice library. The following topics are covered: • Overview of Cached Prompt Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1...
Page 142 - Downloading Cached Prompts to a Board; Playing Cached Prompts; Recovering from Errors
142 Voice API Programming Guide — June 2005 Cached Prompt Management 2. Call SRLGetPhysicalBoardName( ) to return the physical board name, which is in the form brdBn , such as brdB1. This function is passed the AUID of the board from step 1. For information on this function, see the Standard Runtime...
Page 143 - Cached Prompt Management Hints and Tips
Voice API Programming Guide — June 2005 143 Cached Prompt Management • If the combined length of data specified in the series of DX_IOTT data structures exceeds the available on-board memory, this results in the EDX_NOTENOUGHBRDMEM error. If this error occurs, none of the series of DX_IOTT is downlo...
Page 144 - Cached Prompt Management Example Code
144 Voice API Programming Guide — June 2005 Cached Prompt Management 12.3 Cached Prompt Management Example Code This example code illustrates one way to implement cached prompt management in your application. It uses the following key steps, as indicated in the comments: 1. Get the AUIDs of all phys...
Page 147 - Global Tone Detection and; Overview of Global Tone Detection
Voice API Programming Guide — June 2005 147 13 13. Global Tone Detection and Generation, and Cadenced Tone Generation This chapter discusses global tone detection (GTD), global tone generation (GTG), and cadenced tone generation: • Global Tone Detection (GTD) . . . . . . . . . . . . . . . . . . . . ...
Page 148 - Defining Global Tone Detection Tones; Building Tone Templates
148 Voice API Programming Guide — June 2005 Global Tone Detection and Generation, and Cadenced Tone Generation DTMF set (0-9, a-d, *, and #), and the standard MF set (0-9, a-c, and *). GTD works simultaneously with DTMF and MF tone detection. When GTD detects a tone, it responds by producing either ...
Page 149 - API Library Functions
Voice API Programming Guide — June 2005 149 Global Tone Detection and Generation, and Cadenced Tone Generation • cadence components Adding a tone template to a channel enables detection of a tone on that channel. Although only one tone template can be created at a time, multiple tone templates can b...
Page 150 - Tips and Hints for Building Tone Templates; Working with Tone Templates
150 Voice API Programming Guide — June 2005 Global Tone Detection and Generation, and Cadenced Tone Generation Tips and Hints for Building Tone Templates The following are tips and hints when building a tone template for global tone detection: • After using a build-tone function to define a new tone...
Page 151 - Retrieving Tone Events
Voice API Programming Guide — June 2005 151 Global Tone Detection and Generation, and Cadenced Tone Generation dx_deltones( ) Removes all tone templates previously added to a channel with dx_addtone( ) . If no tone templates were previously enabled for this channel, the function has no effect. dx_de...
Page 152 - Setting GTD Tones as Termination Conditions
152 Voice API Programming Guide — June 2005 Global Tone Detection and Generation, and Cadenced Tone Generation 13.1.7 Setting GTD Tones as Termination Conditions To detect a GTD (user-defined) tone, you can specify it as a termination condition for I/O functions. Set the tp_termno field in the DV_TP...
Page 153 - Guidelines for Creating User-Defined Tones
Voice API Programming Guide — June 2005 153 Global Tone Detection and Generation, and Cadenced Tone Generation deviation of each of the two tones minus any overlap (and minus any truncation by the GTD detection range). For example: • Single Tone: 400 Hz (125 Hz deviation) = bandwidth of 275 to 525 H...
Page 155 - Global Tone Detection Application; Using GTG
Voice API Programming Guide — June 2005 155 Global Tone Detection and Generation, and Cadenced Tone Generation 13.1.11 Global Tone Detection Application A sample application for global tone detection (GTD) is detecting leading edge debounce time. Rather than detecting a signal immediately, an applic...
Page 156 - GTG Functions; Building and Implementing a Tone Generation Template
156 Voice API Programming Guide — June 2005 Global Tone Detection and Generation, and Cadenced Tone Generation • Duration of tone The functions and data structures associated with global tone generation are described in the Voice API Library Reference . 13.2.2 GTG Functions The following functions a...
Page 157 - Using Cadenced Tone Generation; How To Generate a Custom Cadenced Tone
Voice API Programming Guide — June 2005 157 Global Tone Detection and Generation, and Cadenced Tone Generation 13.3 Cadenced Tone Generation The following topics provide information on enabling and using cadenced tone generation: • Using Cadenced Tone Generation • How To Generate a Custom Cadenced T...
Page 160 - How To Generate a Non-Cadenced Tone; How To Generate a Standard PBX Call Progress Signal
160 Voice API Programming Guide — June 2005 Global Tone Detection and Generation, and Cadenced Tone Generation 13.3.3 How To Generate a Non-Cadenced Tone Both dx_playtoneEx( ) and dx_playtone( ) can generate a non-cadenced tone. Non-cadenced call progress signals can be generated by the dx_playtone(...
Page 161 - Predefined Set of Standard PBX Call Progress Signals
Voice API Programming Guide — June 2005 161 Global Tone Detection and Generation, and Cadenced Tone Generation 13.3.6 Predefined Set of Standard PBX Call Progress Signals The following information describes the predefined set of standard PBX call progress signals that are provided by Intel: • Table ...
Page 169 - Global Dial Pulse Detection; Key Features
Voice API Programming Guide — June 2005 169 14 14. Global Dial Pulse Detection Global dial pulse detection (global DPD) is a signaling component of the voice library. The following topics provide more information on global DPD: • Key Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . ....
Page 170 - Global DPD Parameters; Enabling Global DPD
170 Voice API Programming Guide — June 2005 Global Dial Pulse Detection • The application can enable global DPD and volume control. (Previously, there was a restriction that DPD digits had to be sent to the event queue instead of the digit queue if volume control was enabled.) The following applicat...
Page 171 - Global DPD Programming Considerations
Voice API Programming Guide — June 2005 171 Global Dial Pulse Detection Global DPD must be implemented on a call-by-call basis. Global DPD uses the dx_setdigtyp( ) function to enable DPD. See the Voice API Library Reference for information on all functions and data structures described in this chapt...
Page 172 - Retrieving Digits as Events; Dial Pulse Detection Digit Type Reporting
172 Voice API Programming Guide — June 2005 Global Dial Pulse Detection 14.6 Retrieving Digits as Events To get the digits as events, use the following asynchronous programming model using the dx_setevtmsk( ) , sr_waitevt( ) , and sr_getevtdatap( ) functions and the DX_CST data structure. 1. Since t...
Page 173 - Global DPD Programming Procedure; Global DPD Example Code
Voice API Programming Guide — June 2005 173 Global Dial Pulse Detection 14.9 Global DPD Programming Procedure Use the following procedure to implement global DPD: 1. Define a data structure of type DV_DIGIT (this structure is specified in the DXDIGIT.H file). 2. Enable DPD on the desired channels us...
Page 176 - Direct Dialing-In Service
176 Voice API Programming Guide — June 2005 R2/MF Signaling R2/MF signals that are used for supervisory signaling on the network are called line signals . Line signals are beyond the scope of this document. 15.2 Direct Dialing-In Service Since R2/MF address signals can provide the telephone number o...
Page 177 - R2/MF Signal Meanings
Voice API Programming Guide — June 2005 177 R2/MF Signaling 15.4 R2/MF Signal Meanings There are two groups of meanings associated with each set of signals. Group I meanings and Group II meanings are associated with the 15 forward signals. Group A meanings and Group B meanings are associated with th...
Page 183 - R2/MF Compelled Signaling
Voice API Programming Guide — June 2005 183 R2/MF Signaling 15.5 R2/MF Compelled Signaling R2/MF interregister signaling uses forward and backward compelled signaling. Simply put, with compelled signaling each signal is sent until it is responded to by a return signal, which in turn is sent until re...
Page 185 - R2/MF Voice Library Functions
Voice API Programming Guide — June 2005 185 R2/MF Signaling Figure 25. Example of R2/MF Signals for 4-digit DDI Application 15.6 R2/MF Voice Library Functions The R2/MF voice library functions are not supported on DM3 boards. For R2/MF signaling on DM3 boards, see the Global Call documentation set. ...
Page 187 - Syntellect License Automated; Overview of Automated Attendant Function
Voice API Programming Guide 187 16 16. Syntellect License Automated Attendant This chapter discusses Intel ® hardware and software that include a license for the Syntellect Technology Corporation (STC) patent portfolio: • Overview of Automated Attendant Function. . . . . . . . . . . . . . . . . . . ...
Page 188 - Syntellect License Automated Attendant Functions; How to Use the Automated Attendant Function Call
188 Voice API Programming Guide Syntellect License Automated Attendant – receives digit input and transfers the call to the proper extension • the source code and demonstration code for the automated attendant application 16.2 Syntellect License Automated Attendant Functions Intel boards that are en...
Page 189 - Building Applications; Voice and SRL Libraries
Voice API Programming Guide — June 2005 189 17 17. Building Applications This chapter provides information on building applications using the voice library. The following topics are discussed: • Voice and SRL Libraries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ....
Page 190 - Compiling and Linking; Include Files; Linux
190 Voice API Programming Guide — June 2005 Building Applications 17.2 Compiling and Linking The following topics discuss compiling and linking requirements: • Include Files • Required Libraries • Run-time Linking • Variables for Compiling and Linking 17.2.1 Include Files Function prototypes and equ...
Page 191 - Windows; Variables for Compiling and Linking
Voice API Programming Guide — June 2005 191 Building Applications libsrl.so Standard Runtime Library file. Specify -lsrl in makefile. If you use curses , you must ensure that it is the last library to be linked. Windows You must link the following library files in the order shown when compiling your...
Page 193 - Glossary
Voice API Programming Guide — June 2005 571 Glossary A-law: Pulse Code Modulation (PCM) algorithm used in digitizing telephone audio signals in E1 areas. Contrast with mu-law . ADPCM (Adaptive Differential Pulse Code Modulation): A sophisticated compression algorithm for digitizing audio that stores...
Page 201 - Index
Voice API Programming Guide — June 2005 201 Index A Adaptive Differential Pulse Code Modulation (ADPCM) 91 address signals, R2/MF signaling 175 ADPCM, G.726 91 ADPCM, IMA 90 ADSI_XFERSTRUC data structure 126 , 127 A-law PCM 90 Analog Display Services Interface (ADSI) 21 , 121 answering machine detec...