Page 2
LIABILITY OR WARRANTIES RELATING TO FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABILITY, OR INFRINGEMENT OF ANY INTELLECTUAL PROPERTY RIGHT OF A THIRD PARTY. Dialogic products are not intended for use in medical, life saving, life sustaining, critical control or safety systems, or in nuclear facility applications.
Page 3
(RMA) number (which must be obtained from Dialogic before any return) within thirty (30) days after discovery of the defect with a written description of the defect will be repaired or replaced at Dialogic's option. Freight charges will be paid by Dialogic only for shipment back to you.
Page 5
Bfv API Reference Manual Volumes 1 - 6 Bfv API Reference Manual Volume 1 Administration, Management, and Configuration Bfv API Overview Administration and Initialization Firmware Configuration, Status and Monitoring Debugging, Error Handling and Return Values Miscellaneous Functions Bfv API Reference Manual Volume 2 Bfv-Level Call Control and Call Switching Bfv API Overview...
Bfv API ......... 22 This chapter describes the Dialogic® Brooktrout® Bfv API and its capabilities.
Page 7
Developing a Fax Application Sending and Receiving a Fax Sending a Fax from One Channel to Another Sending a Fax to a Channel from an External Fax Machine Using Bfv API Fax Functions Using High- and Low-Level Functions Sending a Fax Using Function Calls for Noninfopkt-Formatted Raw G3 Files...
Page 8
Chapter 5 – Sample Applications and Utilities ....127 This chapter describes the sample applications and utilities that come as part of the Dialogic® Brooktrout® SDK. November 2009 .
Page 11
Transferring Calls Using Release Link Trunk Transfer Using Bfv Applications Using BSMI Applications Call Control Sequence Diagrams Non-RLT Call Transfer RLT Call Transfer Sample Application Placing Calls on Hold Using BSMI Chapter 7 – Managing Fax and Voice over IP Sessions ..214 This chapter describes how to develop applications that use the internet for fax and voice media.
Page 12
Introduction to the SIP Protocol Overview of SIP Functionality Overview of Operation Using Third Party IP Stacks Integrating Bfv IP Fax Components Configuration ............259 Disable ECC Component SR140 Software-Based Integration - Linux TR1034 Board-Based Integration - Linux...
Page 14
Channel Blocking Chapter 11 – Packaging Your Application for Windows® ..364 This chapter describes how to package Dialogic® Brooktrout® software so that you can deliver it to your customers as part of your product.
Page 15
Removing the Plug and Play Driver For Earlier Versions (Prior to 5.2) For Version 5.2 ............406 Appendix A –...
Bfv API used to create applications to control the features of the Dialogic® Brooktrout® TR1034® Fax Boards, Dialogic® Brooktrout® TruFax® Fax Boards, and the Dialogic® Brooktrout® SR140 Fax Software. The manual gives information about Call Transfer, Automatic Speech Recognition, IP functionality, and BSMI functionality. Finally, it explains how one can include and package software supporting Brooktrout Fax Boards or Dialogic®...
Documents directory on the Brooktrout TR1034/SR140/TruFax® SDK CD-ROM. Related Documents The Dialogic® Brooktrout® Bfv API Reference Manual is made up of six volumes that contain the Bfv API function libraries, including the Bfv API, BSMI API and messages, and the ACC API.
Page 18
The Caution icon is used to indicate an action that could cause harm to the software or hardware. The Warning icon is used to indicate an action that could cause harm to the user. November 2009 Italics denote the names of variables in the prototype of a function and file names, directory names, and program names within the general text.
TR1000 Series SDK TR1000 Series Product TR1000 Series Module TR1000 Series Board Brooktrout System Software November 2009 Replaced with... Dialogic® Brooktrout® SR140 Fax Software Brooktrout SR140 Fax Software SR140 Software SR140 Dialogic® Brooktrout® SDK Dialogic® Brooktrout® Fax Board Brooktrout fax board board Dialogic®...
Page 20
Dialogic® Brooktrout® TR1034 Fax Board Terminology The Dialogic® Brooktrout® TR1034 Fax Board is also referred to herein by one or more of the following terms, or like terms including “TR1034”: November 2009 Brooktrout TR1034 Fax Board Brooktrout TR1034 Board TR1034 Fax Board...
Getting Technical Support Dialogic provides technical services and support for customers who have purchased hardware or software products from Dialogic. If you purchased products from a reseller, please contact that reseller for technical support. To obtain technical support, please use the web site below: www.dialogic.com/support/...
November 2009 1 - Introduction to the Dialogic® Brooktrout® This chapter describes the Dialogic® Brooktrout® Bfv API and its capabilities. The chapter has the following sections: Bfv API and Associated Libraries The Bfv API Functions Bfv API...
The Bfv API comprises several libraries that work together to give flexibility in a variety of applications such as: Voice processing (Dialogic® Brooktrout® TR1034 Fax Boards only) and signal generation and detection Connection to a variety of telephony interfaces:...
Page 24
The Dialogic® Brooktrout® SR140 uses a module number of 0x41 for up to a maximum of 120 channels in a system.
Page 25
November 2009 Tool. You can also configure H.323 support using the configuration file. See the installation and configuration guide that came with your software for more information about configuring for H.323. The TR1034 Boston modules are driven by the Bfv API. Call control on Boston modules is driven by BSMI.
High Level Call Control Low Level Call Control Media Processing Signal Generation and Detection Voice Play and Record File Format Manipulation In addition to the functions, Dialogic supplies macros to provide information or perform a specific task. The Bfv API Functions...
Administration, Management, and Configuration November 2009 Administration and Initialization Functions and Macros The administration and initialization functions allow you to: Attach and detach from a line or a session. Configure the module instead of using a user-defined configuration file such as btcall.cfg. Interrupt a thread or process on an active line.
Page 28
November 2009 The BTLINE Structure When an application calls the BfvLineAttach (or BfvSessionAttach) function to open and attach a specified channel, the function creates a separate BTLINE structure for a channel and returns a pointer to the line structure. All information about the channel is stored in its BTLINE structure, but only the line state, the line type, and channel number are actually relevant.
Page 29
November 2009 Hereafter each of the line states is referred to by the descriptive part of its name only (for example, LINE_STATE_IDLE is referred to as IDLE). The current state of the line is stored in the BTLINE structure. A pointer to this structure is passed as an argument to nearly all Bfv API entry points and is provided to the application by the BfvLineAttach function.
November 2009 Channel Numbering The Bfv API uses two numbering schemes when referencing channels within a system. One is the unit number or ordinal channel number; the other is the logical channel number. The unit number is a number range 0…n-1, where n is the number of channels in the system.
November 2009 Firmware Functions and Macros With the specialized firmware functions, you can: Download firmware to the module from a file or a buffer Get information about a module’s firmware configuration options With the firmware macros, you can determine: Version number, build number, and date of the control processor firmware Version number, build number, and date of the boot ROM firmware...
Page 32
November 2009 Configuration Files The Bfv API uses several configuration files that let you configure the Bfv API and driver, call control, and country-specific parameters. These files are described below. Sample versions of the files are stored in the directory brooktrout/boston/config. The user-defined configuration file A file that contains configuration parameters for the Bfv API and driver.
November 2009 Module Status and Monitoring Functions With the module status and monitoring functions, you can: Set and get the state of the module by reading the status LED. Set the module temperature threshold. Get the temperature of the module. Have the module perform a series of self tests and, optionally report the results.
Page 34
CALL_RES November 2009 Structures and Return Values The Bfv API uses argument structures to pass values to and from functions. The application declares the argument structure and passes a pointer to it to the function. The argument structure type is named args_...;...
November 2009 Miscellaneous Functions and Macros Some administration functions and macros cannot be classified with other functions, but are useful in various ways. For example: _dll... functions for use on Windows® operating systems. These functions call standard C library functions such as fopen, fclose, fread, and fwrite;...
Call Control November 2009 Call control functions enable the application to set up, initiate, connect, disconnect, and perform other tasks related to the telephone network. Three forms of call control are available: Bfv high-level and low-level and BSMI-level. Bfv Call Control High-level Bfv call control functions simplify the process of accessing the telephone system.
Page 37
November 2009 Typically, the BSMI is used as one component of a system. Firmware download, for example, is achieved using the call control functions of the Bfv API. Through the Bfv API, you can perform all appropriate configuration and management functions for the Boston series of products.
Media Processing November 2009 Media processing refers to the application that is performed on the Brooktrout modules. Depending on the product configuration, it can include: Signal generation and detection Voice play and record Faxing File format manipulation Signal Generation and Tone Detection With the signal generation and tone detection functions, you can: Play call progress signals and generate other tone groups and tone patterns.
November 2009 Voice Record and Play With the Bfv voice record and play functions, the application can: Open, play, and close a previously recorded prompt file. Record speech into an infopkt stream, a raw speech data buffer, a raw speech file, or a wave file. Play back speech from an infopkt stream, a raw speech data buffer, a raw speech file, or a wave file.
The Bfv API Functions Fax Functions The Bfv API provides a wealth of fax functions that allow you to control every aspect of sending and receiving V.17 or V.34 faxes. The fax functions are divided into high-, mid-, and low-level functions.
Page 41
November 2009 Combining the high-, mid-, and low-level functions within the same application program is valid and useful. Need for the low-level calls depends on the degree of flexibility and functionality an application requires. Table 1 contains a partial list of the high-, mid-, and low-level functions that perform fax tasks.
November 2009 In addition, the fax functions are divided into two subgroups: those that process infopkt-formatted data files and those that process ASCII or G3 data files in other formats. For fax functions that process raw ASCII or G3 data files rather than infopkt-formatted data files, see Volume 4, Fax Processing, Bfv API Reference Manual.
Page 43
To a fax machine, a document is a simple object with three parameters: vertical resolution, length, and width. To a computer, a document is often more complex.
Page 44
Tag Infopkts November 2009 Contain speech parameter structures (which describe the sample rate, coding format, and data format of the speech or indicate the end of speech playback), and fax parameter structures (which describe a strip or page of data, the line parameters, or control parameters).
Page 45
Data Infopkts Indirect Infopkts November 2009 Contain just the header and data, permitting applications to organize large files as a sequence of small data infopkts. They are: INFOPKT_ASCII ASCII data. INFOPKT_G3 G3 data. INFOPKT_PROMPT_MAP Used only in prompt files. Contains information on how to find each of the phrases in the prompt file.
Page 46
User-Defined Infopkts November 2009 Contain a header (the document’s title, the subject of the document, or the total number of pages that the document contains) and user-defined information (document summary and statistics, etc.) useful to an application. When the Bfv API encounters these infopkt types, it ignores them.
November 2009 The Infopkt Stream An infopkt stream is a file or memory buffer containing concatenated individual infopkts. The length of an infopkt stream is limited only by the file size conventions specific to an operating system. The BfvInfopktOpen function opens file-based infopkt streams, and the BfvInfopktOpenMem function opens memory-based infopkt streams.
Page 48
November 2009 Indexed Prompt File (mkprompt) _PROMPT_MAP Index to prompt file _SPCH_PARAMS smp rate, coding fmt, bits- smp, afe rate, data fmt _SPEECH Speech Data CVSD, ADPCM, PCM, OKI _SPEECH Speech Data CVSD, ADPCM, PCM, OKI _END_OF_SPEECH _SPCH_PARAMS smp rate, coding fmt, bits- smp, afe rate, data fmt _SPEECH Speech Data...
Page 49
November 2009 To create an infopkt stream file to test the fax functionality of your hardware and software: mkinfopk -o fax.ips doc 1 ascii fax.c Where: Is the name of the output infopkt stream file that contains fax.ips the ASCII file fax.c (the sample fax application program included on your distribution CD).
Page 50
The Bfv API Functions START optional/conditional _DOC_PARAMS res, len., width _T.30_PARAMS bit rate, scan time _PAGE_PARAMS _STRIP_PARAMS G3, ASCII DATA INDIR_DATA G3, ASCII G3, ASCII, DCX, TIFF _B_O_P Figure 3. Creating Infopkt Streams that Transmit Facsimiles November 2009...
Page 51
The maximum length of an individual infopkt is 30,000 bytes, but Dialogic recommends limiting the size to approximately 1K. This limit affects the size of infopkts only and has no effect on the size of a fax document, since large fax documents are simply converted to multiple infopkts within an infopkt stream.
These transmission parameters include the bit rate, scan time, coding scheme, and the basic document format parameters – vertical resolution, page width, and page length. The least capable fax machine determines the values of these parameters; both fax machines adjust to the final values. Two infopkts:...
Page 53
(see Volume 6, Appendix E in the Bfv API Reference Manual for default values). Dialogic, however, recommends that you include a strip parameter infopkt whenever you define a strip, even if the default values are appropriate for the strip.
Page 54
G3 infopkts. illustrates how an electronic mail document (ASCII), Figure 4 accompanied by a cover sheet, a letterhead, and a signature, could be delivered to a fax machine. Dialogic Corp Doc_Parameters G3_Strip_Parameters G3 (data; cover sheet) The TRxxx series BOP (Beginning of page) of fax/voice boards are now available...
Page 55
The Bfv API Functions This two-page document contains a G3 fax document as a cover page. INFOPKT_G3 (Cover sheet; G3 data) It is followed by a page boundary tag, INFOPKT_BEGINNING_OF_PAGE. The data for the cover sheet is stored in the infopkt stream. INFOPKT_BEGINNING_OF_PAGE (Cover sheet is on its own page) INFOPKT_G3_STRIP_PARAMETERS...
November 2009 Applications Using the Bfv This chapter describes how to develop applications with Brooktrout Fax Software. The chapter has the following sections: Developing a Voice Application Using Prompt Files Developing a Fax Application 2 - Developing...
Developing a Voice Application Recording and Playing Voice November 2009 The following steps for recording and playing back speech are demonstrated: How to record voice How to play back previously recorded voice These steps are the same for all supported operating systems. To record and then play speech back, first select the voice channel on which you want to record your message.
November 2009 Recording Voice 1. Prepare channel 2 to record your message: voice -u 2 -r voice.ips The command voice invokes the voice.c program, whose arguments include: Arguments Call the given number, else wait for ring. -c num Specify record coding format; use the number of the format or one of the following names: adpcm adpcm32...
Using Prompt Files November 2009 2. Dial the phone number of the channel you selected. Make sure the phone line is attached to the selected channel. The voice.c program does not indicate when to begin recording. Begin recording when the line goes off-hook (when you no longer hear ringing).
Using the mkprompt Utility Creating a New Prompt File November 2009 The mkprompt utility converts multiple infopkt files into a Brooktrout prompt file and updates an existing Brooktrout prompt file by adding new phrases or modifying existing phrases. When you create a Brooktrout prompt file, the mkprompt utility automatically assigns each infopkt file a phrase number, sequentially, in the order that you enter each file name at the command line.
How to send a fax (an infopkt stream file) from one channel to another channel in your system. How to send a fax from an external fax machine to one channel in your system. This same fax is then transmitted back to the same fax machine from the same channel in your system.
November 2009 Sending a Fax from One Channel to Another Use the fax sample program to send a fax from one channel to another in your system. 1. Prepare channel 1 to receive a fax: fax -u 1 -r recfile.ips fax invokes the sample fax program with the following arguments: Specifies that the following number is the...
Channel 1 is now set to receive a fax and is waiting for a ring signal. 2. At the fax machine, insert the sample fax in the fax machine and call the channel's (channel 1) phone number in the normal way.
Using Bfv API Fax Functions November 2009 The following sections show how to send and receive facsimiles using the high- and low-level function calls, noninfopkt function calls, and TIFF-F function calls. It also shows how to send and receive facsimiles in MR and MMR format, access infopkt streams and TIFF-F fax files from an application, combine data on a single page using TIFF-F fax files, interpret fax status information from an application, and how to use prompt files.
Page 65
Developing a Fax Application args_admin.config_file_name = "usrcnfig.cfg"; BfvLineReset(lp,&args_admin); Resets the channel and sets the user-configured options selected in the user-defined configuration file named, usrcnfig.cfg. BT_ZERO(args_infopkt); args_infopkt.fname = name; args_infopkt.fmode = "r"; ips = BfvInfopktOpen(&args_infopkt); Opens the infopkt-formatted file called name for reading and transmission.
Page 66
Developing a Fax Application args_admin.config_file_name = "usrcnfig.cfg"; BfvLineReset(lp,&args_admin); Resets the channel and sets the user-configured options selected in the user-defined configuration file named usrcnfig.cfg. BT_ZERO(args_infopkt); args_infopkt.fname = name; args_infopkt.fmode = "w"; ips = BfvInfopktOpen(&args_infopkt); Opens the infopkt-formatted file called name for writing. BT_ZERO(args_tel);...
Page 67
Developing a Fax Application args_admin.config_file_name = "usrcnfig.cfg"; BfvLineReset(lp,&args_admin); Resets the channel and sets the user-configured options selected in the user-defined configuration file named usrcnfig.cfg. BT_ZERO(args_infopkt); args_infopkt.fname = name; args_infopkt.fmode = "r"; ips = BfvInfopktOpen(&args_infopkt); Opens the infopkt-formatted file called name for reading and transmission.
Page 68
November 2009 for (;;) BT_ZERO(args_fax); args_fax.s_ips = ips; if ((ret = BfvFaxNextPage(lp, &args_fax)) <= 0 ) break; BfvFaxSendPage(lp, &args_fax); Loops through the infopkt stream, getting the next page and transmitting it to the driver. BfvFaxEndOfDocument(lp, &args_fax); Finishes up when the infopkt stream is exhausted. BT_ZERO(args_infopkt);...
Page 69
Developing a Fax Application args_admin.config_file_name = "usrcnfig.cfg"; BfvLineReset(lp, &args_admin); Resets the channel and sets the user-configured options in the user-defined configuration file usrcnfig.cfg. BT_ZERO(args_infopkt); args_infopkt.fname = name; args_infopkt.fmode = "w"; ips = BfvInfopktOpen(&args_infopkt); Opens the infopkt-formatted file, name, to store the received fax. BT_ZERO(args_tel);...
November 2009 BT_ZERO(args_admin); BfvLineDetach (lp, &args_admin); Frees all the memory for the attached line and closes the device. You can replace some low-level functions with a high-level function, for example: BfvFaxBeginReceive BfvFaxGetRemoteInfo BfvFaxSetLocalId BfvFaxWaitForTraining BfvFaxReceivePages See the applications in the sample application directory for more detailed information.
Page 71
Developing a Fax Application BT_ZERO(args_t30); args_t30.bit_rate = BITRATE_14400; args_t30.scan_time = SCANTIME_0; BfvFaxT30Params(lp,&args_t30); Configures the channel's maximum transmission rate. This function is optional. BT_ZERO(args_page); args_page.top_margin = 0; args_page.bottom_margin = 0; args_page.length = 1143; args_page.ascii_pad = 1; args_page.image_pad = 0; args_page.image_break = 0; args_page.image_margin = 0;...
Page 72
Developing a Fax Application BT_ZERO(args_strip); args_strip.fmt = DATA_ASCII; args_strip.resolution = RES_200H_100V; args_strip.width = WIDTH_A4; args_strip.left_margin = 5; args_strip.right_margin = 0; args_strip.line_spacing = 2; args_strip.eof_char = 0x1a; BfvFaxStripParams(lp,&args_strip); Sets the ASCII parameters for the ASCII strip main.txt, since it differs from the default. BT_ZERO(args_fax);...
Developing a Fax Application BT_ZERO(args_fax); args_fax.fname = "memo.txt"; args_fax.fmt = DATA_ASCII; BfvFaxSendFile(lp, &args_fax); Sends the ASCII text file, memo.txt the only file on the second page, to the driver. BfvFaxEndOfDocument(lp, &args_fax); Indicates to the driver that the second page is the last page of the transmission.
Page 74
Waits for the remote to send its ID and capabilities. Note: The previous phone call is terminated by the application if the remote fax machine's ID does not match the expected value. BfvFaxWaitForTraining (lp, &args_fax); Waits for the completion of the Phase B handshaking process.
Developing a Fax Application Sending a Fax Using Calls for TIFF-F Files One way to send a fax using function calls for TIFF-F files is demonstrated below. Each function is presented in sequential order, and the action it performs is described beneath it. BT_ZERO(args_admin);...
November 2009 for (;;) BT_ZERO(args_fax); args_fax.s_tp = tp; args_fax.combine = 0; if (BfvFaxNextPageTiff(lp,&args_fax) <= 0) break; BT_ZERO(args_fax); args_fax.s_tp = tp; if (BfvFaxSendPageTiff(lp,&args_fax) < 0) break; Loops through the TIFF-F file, getting the next page and sending it to the driver. BfvFaxEndOfDocument(lp, &args_fax);...
Page 77
November 2009 BT_ZERO(args_tel); args_tel.timeout = 0L; BfvLineWaitForCall (lp, &args_tel); Waits for the detection of an incoming call. BfvLineAnswer (lp, &args_tel); Answers the phone line by going off-hook. BT_ZERO(args_fax); args_fax.local_id = "Id_string"; BfvFaxSetLocalID(lp,&args_fax); Sets the local ID to transmit to the sending machine. BT_ZERO(args_fax);...
Developing a Fax Application Receiving and Storing a Fax in MMR or MR Format Receiving an Infopkt-Formatted Fax and Storing it in MMR Format A typical way to receive a fax that is made up of infopkts and store it in MMR format is demonstrated below.
Page 79
Developing a Fax Application BT_ZERO(args_fax); args_fax.fmt = FMT_MMR_ALIGN_MSB; BfvFaxSetReceiveFmt(lp,&args_fax); Sets the format used to pass the received fax data from the channel to the computer. In this example, MMR data format – byte aligned, most significant bit first – is specified. See the fmt parameter description for detailed information on all of the data format types that are available through BfvFaxSetReceiveFmt.
Page 80
Waits for the remote end to send its ID and capabilities. Note: The previous phone call is terminated by the application if the remote fax machine's ID does not match the expected value. BfvFaxWaitForTraining(lp, &args_fax); Waits for the completion of the Phase B handshaking process.
Page 81
Developing a Fax Application BfvFaxEndReception(lp, &args_fax); Call this function when there are no more pages to receive. BT_ZERO(args_admin); BfvLineDetach (lp, &args_admin); Frees all the memory for the attached line and closes the device. Sending a Noninfopkt-Formatted Fax Stored in MMR Format One way to send a fax using function calls for noninfopkt-formatted raw G3 files is demonstrated below.
Page 82
Developing a Fax Application args_page.length = 1143; args_page.ascii_pad = 1; BfvFaxPageParams(lp,&args_page); Sets the page parameters: no top or bottom margins, a page length of 1143 (normal) G3 lines, and no padding of short ASCII pages, no padding of short images, no breaking of images, and no margins for images.
Accessing an Infopkt Stream from an Application November 2009 The function calls BfvFaxSendPage and BfvFaxNextPage are typically used in a loop. Both read infopkts from the infopkt stream for processing. BfvFaxSendPage reads infopkts and processes them in a loop. When data (embedded or indirect) or strip parameter type infopkts are encountered, the indicated parameters and data format (ASCII or G3) commands are sent to the channel, the data is downloaded to the driver buffer, and the next infopkt is read.
Sending a TIFF-F Fax File Within an Infopkt Stream November 2009 Processing, Bfv API Reference Manual for detailed information on how to access user-defined infopkts when using the INDIR_MODE_FOLLOW_NOUSER flag. Transmitting a fax stored as a TIFF-F file is accomplished using the TIFF-F fax routines, as described earlier in this chapter, or using an infopkt of type INFOPKT_INDIR_TIFF within an infopkt stream.
Page 85
Developing a Fax Application The second method uses the normal TIFF sending functions to transmit a TIFF file that is preceded or succeeded by other G3 or ASCII files that are transmitted with either the noninfopkt-formatted raw data fax functions or the TIFF file fax functions.
Page 86
Developing a Fax Application /* A call to BfvFaxStripParams must be done */ /* here for combination with previous G3 */ /* data (from TIFF file)*/ BT_ZERO(args_strip); args_strip.fmt = DATA_G3; args_strip.resolution = RES_200H_100V; args_strip.width = WIDTH_A4; BfvFaxStripParams(lp,&args_strip); BT_ZERO(args_fax); args_fax.fname = "g3_file"; args_fax.fmt = DATA_G3;...
November 2009 BT_ZERO(args_strip); args_strip.fmt = DATA_G3; args_strip.resolution = RES_200H_100V; args_strip.width = WIDTH_A4; BfvFaxStripParams(lp,&args_strip); BT_ZERO(args_fax); args_fax.fname = "g3_file"; args_fax.fmt = DATA_G3; BfvFaxSendFile(lp, &args_fax); BfvFaxEndOfDocument(lp, &args_fax); Accessing a TIFF-F File from an Application Although applications can directly read and write TIFF-F files with a set of Bfv library functions, some knowledge of TIFF-F file format is useful.
Page 88
November 2009 if ((n = BfvTiffReadImage(&args_tiff)) <= 0) break; process_image(buf,n); args_tiff.tp = tp; BfvTiffClose(&args_tiff);} my_ifd_func(tp, ifd_ptr, arg) /* Does nothing,just returns */ return (0); The BfvTiffWriteImage and BfvTiffWriteIFD functions are used to write a new TIFF file. BfvTiffWriteImage receives data from a user-supplied buffer until the end of the page is reached.
Determining Fax Status Information from an Application November 2009 BfvTiffWriteImage(&args_tiff); args_tiff.ifd_field = &ifd_field; while (determine_next_ifd(&ifd_field) > 0 && BfvTiffWriteIFD(&args_tiff) == 0); args_tiff.ifd_field = NULL BfvTiffWriteIFD(&args_tiff); args_tiff.tp = tp; BfvTiffClose(&args_tiff); An in-progress fax transmission or reception has a number of attributes that an application might find useful to access. The application can use this information, for example, to update a fax status information screen.
Page 90
Developing a Fax Application Transfer Mode The application normally keeps track of its own operation mode (transmitting or receiving), but it can also use the LINE_DCS (see Volume 4, Fax Processing, Bfv API Reference Manual) macro to get this information. Current Page Transmission Parameters The application can use the LINE_DCS macro to access information about the currently transmitting page;...
November 2009 This chapter describes how to use the debugging tools. The chapter has the following sections: Bfv API Debug Mode BfvDataFSK BfvLineDumpStructure Dump History Parsed Command Information Utility Programs for Debugging BSMI Debugging 3 - Debugging...
Bfv API Debug Mode BfvDataFSK November 2009 Some components of the Bfv API have their own unique debug functions to produce debug information relevant only to that component. The output from these functions is combined to provide a unified debug output if desired. The following table lists the component, function name and reference: Bfv debugging and...
BfvLineDumpStructure Dump History November 2009 The BfvLineDumpStructure function (Volume 1, Bfv API Reference Manual) dumps the contents of the BTLINE structure into a file. It writes each element of the line structure individually. Use this call to create error report logs (along with the contents of Dump History) and to track changing states of the line.
Invoking Dump History dh [-C] [-f] [-r [-b]] [-R file offset] [-P pktver] [-H hdr_dir] module channel November 2009 You can invoke Dump History from within an application or directly from the command line. From within an application, one of: The C system function BfvHistoryDumpModChan (args) See Volume 1 of the Bfv API Reference Manual for detailed...
Page 95
1. Dump History (dh) is supplied with the device driver and resides in boston/driver/<platform>/user on all systems. The information provided by Dump History is very useful to Dialogic Technical Services and Support in identifying and solving problems. Dump History...
Parsed Command Information November 2009 Timing Information Timing information is reported first and usually takes the form: hr:min:sec.fracts.sequence For example: 11:12:25.512934.0000827C The sequence field counts each event added to the history entries and is unique over all history buffers. Gaps in the sequence numbers occur when events occur in other history buffers.
Page 99
Parsed Command Information First is the facility value in parentheses followed by the name of the facility (01 and ADMIN). Next is the command verb value followed by the name of the command verb (08 and EVENT). Last is the command specifier value followed by the name of the command specifier (03 and FW_DOWNLOAD_FINISHED).
Utility Programs for Debugging November 2009 The following sample applications/utilities are available to help you in debugging your applications by giving you information about modules in the system such as the firmware, driver, connections, etc. btver btver gives you version information for the driver, Bfv API, boot ROM firmware, control processor firmware, and DSP firmware.
BSMI Debugging BSMI Message Tracing vtty November 2009 The debug output is controlled using the regular mechanisms provided with the Bfv API. Included in the debug output are diagnostic strings including BSMI message tracing and network layer tracing. The vtty program displays layer 2, 3, and 4 messages (depending on user settings).
Page 103
Value Time Direct SAPI Type N(s) N(r) Size November 2009 Table 2. Trace Report Values Meaning Lapdid number. This is an even number where 0=Port A 2=Port B Hexadecimal timestamp incremented at 1 ms intervals. Direction of frame; possible values are Xmit (transmitted by module) and Rcvd (received by module).
November 2009 Understanding Trace Hexadecimal Strings The hexadecimal string displayed in the trace consists of the following components: Information (I) Frame header Note: A trace displays hexadecimal strings for I Frame messages only. Supervisory (S Frame) messages, such as Receiver Ready (RR), and Unnumbered (U Frame) messages, such as SABME and UA, are not displayed in hexadecimal format.
Page 105
Bits SAPI N(s) N(r) Message - - - - - - - - - - - - FCS - - - - - - - - - - - - - General I Frame November 2009 Byte n - 2 n - 1 Figure 6.
Page 106
Bits Protocol Discriminator Flag Call reference value Message type Other Information Elements (IEs) as required General Message November 2009 The Message type value 0x05 identifies the D-channel message as a SETUP; refer to Table 3 message type values. Byte Call ref length Figure 7.
Page 107
November 2009 Table 3. Q.931 Message Types (Continued) Message Type Bits Interpreting Information Elements For Q.931 call control messages, the first Information Element (IE) starts at byte offset 9 in the hexadecimal string. Each message can contain several IEs of either fixed (single byte) or variable length. 03 278D Xmit 00C10000080101050 4028890 180181 2C0735353532303030...
Page 108
IE Identifier Length of IE (in bytes) Contents of IE IE Identifier Bits November 2009 Byte Figure 8. IE Formats Table 4. Q.931 Information Element Identifiers Information Element Bearer capability Cause Call state Channel identification Progress indicator Keypad Signal Information rate End-to-end transit delay Transit delay selection and indication Packet-layer binary parameters...
Page 109
IE Identifier Bits November 2009 Table 4. Q.931 Information Element Identifiers (Continued) Information Element Called party number Called party subaddress Transit network selection Restart indicator Low-layer compatibility High-layer compatibility For additional information on Layer 2 and ISDN message headers and processing, refer to the following documents: CCITT Recommendation I.441 Bellcore Technical References TR-TSY-000268 and TR-TSY-000793...
VTTY Tracing Feature November 2009 The VTTY tracing provides access to control processor internals and diagnostic tracing information. Two VTTY applications are provided: VTTY Console Commands VTTY Tracer GUI page 112 only) These applications allow users to enter commands that enable tracing capabilities or retrieve any saved information blocks.
Command > help > ? The following commands are show commands that return information specific to the arguments. > s ? > s tmr > s lap <lapdid#> > s <lapdid#> > s q931 <lapdid#> > s pump <lapdid#> The following commands are trace commands that enable/disable tracing information specific to the arguments.
November 2009 VTTY Tracer GUI The VTTY Tracer graphical user interface provides access to control processor internals and diagnostic tracing information from a Windows® environment. To start the VTTY Tracer, enter: vtty_tracer.exe The VTTY Tracer screen is displayed. Setting Output Options From the main screen, you can change the tracer output options.
November 2009 1. Click Settings|Options. The Tracing Options dialog is displayed. Set where the trace output is saved, either screen or file. The maximum file size is set in MBytes. Once a file reaches its maximum size, the tracing output loops back to the beginning of the file.
Page 114
BSMI Debugging 3. Click OK. The connection confirmation is displayed in the VTTY Tracer screen: Using the Trace Menu When you choose options from the Trace menu, multiple items are selected. When complete the selected items are checked, for example: When Trace|Custom Command is selected, the Custom Command dialog is displayed: November 2009...
Page 115
Using the Memory menu requires extreme care. Reading or writing memory to the module can cause irreparable harm. This menu should never be used unless explicitly directed to do so by Dialogic Technical Getting Technical Support Services and Support. See...
Page 116
November 2009 Using the Show Menu The Show menu causes a set of predefined variables to be displayed: Show Menu Information About Options Timer structure in the call control protocols lapdid The specified D-channel The LAP-D (Q.921) protocol q931 The Q.931 ISDN call control protocol dass The DASS-2 call control protocol dpnss...
Page 117
BSMI Debugging VTTY Trace Results Figure 9 shows the results of a VTTY trace. Figure 9. VTTY Trace Example Each trace message (for both screen and trace file output) is prefixed with a time stamp in the same format used for the call control trace files and the Bfv API application debug log files.
Call Tracer November 2009 Dialogic provides a Call Tracer command line utility that collects call trace information in an active system. The output is intended for Dialogic Technical Services and Support, but it is important that all users know how to use Call Tracer to create the output file, if Dialogic Technical Services and Support personnel request it.
Configuration File Format November 2009 This section describes the filter configuration file format. Because the configuration file is optional, there is no default. Lines that start with a ‘#’ character are comments only. The filter settings are not case sensitive. All the settings are printed in upper case for uniformity.
Page 121
November 2009 ######################################################## Filter Settings Configuration File ######################################################## #------------------------------------------------------- # CONFIG Legal Values # ON - Default value will be set when a filter setting is not listed in the filtersettings.cfg file. # OFF - Filter settings which are not listed in the filtersettings.cfg file will be disabled.
Page 123
November 2009 #------------------------------------------------------- # VTTY Legal Values # ON # OFF # The listed filters below use Module ID 0x02 as an example. # Update the module ID before using the VTTY filters. # Add separate entries for multiple modules. # There are 3 keywords that can be used in a VTTY filter name: # MODULE, SPAN, and CHAN.
Page 124
November 2009 # So to trace SMI for module 2 add: # VTTY_MODULE.MODULE02.VTTY_MAIN.SMI = ON # To trace CAS L3L4 for module 2 on span1, channel 1 add: # VTTY_CHAN.MODULE02.SPAN01.CHAN01.VTTY_CAS.L3L4 = ON # Refer to the developer guide for additional usage # information.
Page 125
November 2009 VTTY_MODULE.MODULE02.VTTY_LE58.CONFIG VTTY_MODULE.MODULE02.VTTY_LE58.CURRENT_TIME VTTY_MODULE.MODULE02.VTTY_LE58.DEVICE_MGMT VTTY_MODULE.MODULE02.VTTY_LE58.EXCEPTION VTTY_MODULE.MODULE02.VTTY_LE58.HW_ACCESS VTTY_MODULE.MODULE02.VTTY_LE58.LINE_STATUS VTTY_MODULE.MODULE02.VTTY_LE58.RING_COUNT VTTY_MODULE.MODULE02.VTTY_LE58.SIGNALING ######################################################## Call Tracer = OFF = OFF = OFF = OFF = OFF = OFF = OFF = OFF...
This chapter describes the sample applications and utilities that come as part of the Dialogic® Brooktrout® SDK. Dialogic includes a large collection of sample application programs and utilities with the Bfv API modules. Sources for the sample applications are located in either boston/bfv.api/app.src or boston/bfv.api/bapp.src, except for a few...
Page 128
November 2009 the state of the signaling bits and alarms. It also counts the errors (e.g., framing errors, CRC errors, clock slips, BPVs) on each span. It only works with spans that are configured for robbed-bit signaling and where telephony connections have been made. The spans are numbered starting from 1 which is the first interface on a module.
connlist November 2009 Command Syntax btver [-m <mod>] [-v] Arguments Display version info for specified module only. -m <mod> Otherwise display for all. Turn on Bfv API debug mode. The firmware must be downloaded on a module to obtain its control processor and DSP information.
csend November 2009 This application uses low-level, noninfopkt, raw-data, fax-sending routines to send facsimiles. It allows sending a single fax page either in standard fax format from an MH/MSB G3 data file or in an enhanced fax format (e.g. JPEG, JBIG) from an EFF data file. T.30 holdup is used to check on the receiver's capabilities before deciding which type of file to send.
deact November 2009 Arguments -c <EFF_file> Color or other enhanced fax file, default: c1.jpg Enhanced Fax Format (EFF) options, default: 3 -e <EFF_opt> OR together the following hex values: 1 = JPEG Enable 2 = Full Color 4 = Default tables 8 = 12-bit (vs.
Page 133
November 2009 Command Syntax deact [-a] [-s] <mod> Arguments Deactivate all modules on the board containing <mod>. The value of <mod> is interpreted as a cPCI slot number. Module to deactivate. <mod> deact...
debug_control November 2009 The debug_control utility allows a user to selectively turn on logging remotely in an application. The application gives the user the ability to control all the debug options available in the BfvDebugModeSetAdv function. Command Syntax debug_control [-v] [-u chan] [-d debug_mode [-f file1 [-f file2 [-m max_size]]]] [-F 0|1 [-a]] [-c debug_type[,...] [-l level] [-L file]]...
decode November 2009 The decode program reads a specified infopkt stream file and lists the individual infopkts that comprise the stream. The decode program is found in the app.src directory. Command Syntax decode [-f] <filename> Arguments Directs decode to follow indirect infopkts and decode the contents, instead of listing file names.
dfax divert November 2009 The dfax program uses the low-level Intel DCX fax transmitting and receiving routines to send and receive facsimiles. Turn on the Bfv API debug program from the command line. The btcall.cfg file is the user configuration file. The dfax program is found in the app.src directory.
dlfax November 2009 3. If the incoming call is accepted, the divert program uses the speed_infopkt_file recording and playing routines to record and play speech. Command Syntax divert [-d <num>] [-e <reason>] -j [-u <unitnum>] [-s <unitnum>] <infopkt_file> -p -r Arguments Divert to a given number, or else wait for a -d <num>...
dstrip November 2009 Bfv API debug mode is turned on. The btcall.cfg file is the user configuration file. The dlfax program is found in the app.src directory. Command Syntax dlfax -l dlfax [options] <infopkt file> Arguments Use the dialing restrictions for the -c <ccode>...
eccllvoice November 2009 The eccllvoice program is used to record and play speech for ISDN calls. It uses the speech-infopkt-file recording and playing routines to record and play speech. Recording continues for a maximum of ten seconds or the time specified in the -n option. eccllvoice uses low-level call control function calls as shown in the following table.
November 2009 Command Syntax eccllvoice [options] infopktfile Arguments Call given number, else wait for ring. -c <num> Specify record coding format the format or one of the following names. If there is no number specified, you must use the name. adpcm adpcm32 adpcm24...
faxhl November 2009 Command Syntax fax [options] <infopktfile> Arguments Name of the file to send or receive. <infopktfile> Set local ID. -l <string> Loop for testing. Receive a fax. Send to given phone number. -s <num> Use specific channel number. -u <unitnum>...
faxll November 2009 The faxll program uses the low-level non-infopkt raw data fax sending and receiving routines to send or receive facsimiles. This application uses the BfvFaxSendFile function, so 128-byte Brooktrout headers are not permitted. It also uses the user function feature of BfvLineOriginateCall to print call progress values.
Page 143
November 2009 Command Syntax faxll [-u <unitno>] [-v] [-h] [-H] -s <phoneno> [-F] [-E #] [-g] [-a] [-p] <file> [-b] ... faxll [-u <unitno>] [-v] [-p] -r <g3file> ... Arguments The following files are raw ASCII text. -a <files> Beginning of page. The next page is an enhanced fax format page.
faxml November 2009 When sending, the application can mix G3 and ASCII files. Example -g f1 f2 -a f3 -b -g f4 When receiving, each filename in the list receives a page of G3 data, so make sure that enough filenames appear in the list to accommodate all pages of incoming data.
faxp faxpml November 2009 The faxp program uses the highest level infopkt file fax polling routines to send and/or receive facsimiles. You must specify if the program is going to call (-c) or answer (-a) and one send file (-s), one receive file (-r), or one of both.
feature November 2009 Command Syntax faxpml [options] Arguments -c <num> -r <infopktfile> -s <infopktfile> -u <unitnum> Requires one -s or one -r argument or one of each, and one -c or one -a argument. The feature program manipulates feature set data on the product. It can query or download feature set data.
Page 147
feature feature downloads ASCII license (feature) files by default, and can also accept binary data if you use the -b option. November 2009...
firm November 2009 The firm program is used to download firmware. The firmware consists of several types, by number, which must be downloaded in the proper sequence. firmload automatically takes care of identifying the proper files and downloading them in the correct sequence. The sequence is as follows: Type 2 (PROC_APP) = Control processor firmware Type 1 (DSP_APP) = DSP firmware...
firmload firmload [-c <conf_spec>] [-d] [-b 0|1][-q] [-e] <firmware_dir> [<module_num> ...] November 2009 The firmload program is used to download a complete set of standard firmware files to all hardware modules on all boards in a system. The standard firmware files are listed in Chapter 9 in the installation and configuration guide that came with your software and in the Release Notes.
font November 2009 The firmload program ensures that the required firmware files exist in the specified directory before beginning a download. There are multiple possibilities for some of the firmware filenames. These are listed in the following list in search order. firmload looks for the following: Firmware Type Filename...
ipstrip November 2009 The ipstrip program removes the infopkt header from the G3 or speech data in a specified infopkt stream file and writes each page of the converted data to a file, g3data.30x. The first page of converted data is written to the file g3data.301, the second to the file g3data.302, the third to the file g3data.303, and so on until the entire infopkt stream file is converted.
mkdcx November 2009 The ivr program is a small, interactive, voice-response system that permits users to receive a fax, send a fax, record a message and play a message. It uses the speech infopkt-file recording and playing routines and the highest level infopkt-file fax receiving and sending routines.
mkinfopk November 2009 The mkinfopk program builds an infopkt stream file. The mkinfopk program is found in the app.src directory. Command Syntax mkinfopk -o <output_fname> [-i <input_fname>] {infopkt_type arg}... Arguments -o <output_fname> The name of the output file. Infopkt type specifications are included in the -i <input_fname>...
Page 154
November 2009 Tag type doc, g3_strip, ascii_strip, page, t30, bop, spi, eos, fax_hdr, eff. For tag (parameter setting) infopkts, the argument value is not normally used, and mkinfopk inserts a dummy value. When you do not specify an argument value, mkinfopk uses hard-coded default parameter values.
mkprompt mktiff November 2009 The mkprompt program creates or updates a prompt file from infopkt files that contain individual phrases. When updating, you can specify an existing phrase number or a new phrase number. The mkprompt program is found in the app.src directory. Command Syntax mkprompt <prompt_file>...
modinfo November 2009 If a raw G3 file has a 128-byte Brooktrout header (it is a btG3 file), mktiff uses the resolution, width, and number of scan lines from the header when storing the information for that page in the new TIFF file.
playp November 2009 For example, a module with 48 work channels is listed as having 49 channels, and a module with no work channels (no firmware downloaded) is listed as having one channel. The playp program waits for a call, then plays the specified sequence of phrases from the specified prompt file until the sequence completes or until the user presses the # key.
shoparam telreset November 2009 Arguments All Channels -u <unitno> Channel number. Turn on Bfv API debug mode. The shoparam program displays the contents of the line structure and the parameter values set in a user configuration file and the read-only parameters taken from the country configuration file. shoparam does not work unless a module is present in the system, the driver is installed and running, and the firmware is loaded and running on the module.
telsave November 2009 Command Syntax telreset [-m <mod>] Arguments Use the specified module (default 2). -m <mod> The telsave program writes telephony parameters to a module’s Non-Volatile RAM (NVRAM). Bfv API debug mode is turned on. The btcall.cfg file is the user configuration file.
tfax tiffdump November 2009 The tfax program uses the low-level TIFF-F file fax sending and receiving routines to send and receive facsimiles. Turn on the Bfv API debug program from the command line. The btcall.cfg file is the configuration file. The tfax program is found in the app.src directory.
tones transfer November 2009 The tones program uses DTMF detection routines to detect and display incoming touchtones and DTMF generation and single frequency tone generation routines to produce touchtones and other tones. Turn on the Bfv API debug program from the command line. The btcall.cfg file is the configuration file.
Page 162
November 2009 Command Syntax transfer [options] phonenum Arguments Caller C’s telephone number. phonenum options The unit number to use. -u unit_num Value: 0 to (max channels-1) The channel mode used if the protocol can do 1 -m b_channel_mode or 2 B-channel transfer. If the protocol supports both, transfer capability is LINE_XFER_ALL.
transferll November 2009 Examples Assume that 110 is phone number of caller C. 1. Transfer using 1 B-channel and complete transfer at the state BST_DIAL_COMPLETE: transfer.exe -u 0 -m 1 -t bst_dial_complete w110 2. Transfer using 1 B-channel and complete transfer at the state BST_ALERTING: transfer.exe -u 0 -m 1 -t bst_alerting w110 3.
Page 164
November 2009 The following list shows the call control functions used by transfer and transferll. transfer transferll BfvLineTransfer BfvCallHold and BfvCallWaitForHold BfvCallSetup and BfvCallWaitForComplete BfvCallTransferComplete and BfvCallWaitTransferComplete BfvLineHold BfvCallHold and BfvCallWaitForHold BfvLineRetrieve BfvCallRetrieve and BfvCallWaitForRetrieve Command Syntax transfer [options] phonenum Arguments Caller C’s telephone number.
trombone November 2009 The channel mode used if the protocol can do 1 -m b_channel_mode or 2 B-channel transfer. If the protocol supports both, transfer capability is LINE_XFER_ALL. Different protocols support different modes: Hookflash supports 1 B-channel transfers. RLT supports 2 B-channel transfers. ETSI BRI, ETSI PRI, T1-ISDN, NTT BRI, and NTT PRI support both 1 and 2 B-channel transfers.
(WIndows OS) (Unix) tstrip November 2009 welcome prompt, the program dials an outbound call on the secondary channel. When the outbound call on the secondary channel is answered, the program connects the two parties together with a full duplex connection and records speech from the primary caller.
Instructs tstrip to leave the data format as is. Normally tstrip forces the output into MSB format, the standard assumed by all other programs provided by Dialogic. <tiff_filename> Specifies the name of the TIFF-F file to convert to G3 format.
Page 168
November 2009 Pressing the following keys on the telephone keypad affect the speed and volume at which the application plays back speech: 1 = increases the gain 2 = decreases the gain 3 = increases the speed 4 = decreases the speed Bfv API debug mode is turned on.
voiceraw November 2009 The voiceraw program uses the raw speech data file recording and playing routines to record and play speech. Recording begins when you start speaking. Recording continues for a maximum of ten seconds or the time specified in the -n option. Pressing # on the telephone keypad immediately terminates playback or recording.
wave November 2009 Command Syntax voiceraw [options] <speechfile> Arguments Call given number, else wait for ring. -c <num> Specify coding format; use the number of the format or one of the following names. If there is no number specified, you must use the name. adpcm adpcm32 adpcm24...
Page 171
November 2009 Pressing the following keys on the telephone keypad affect the speed and volume at which the application plays back speech: 1 = increases the gain 2 = decreases the gain 3 = increases the speed 4 = decreases the speed Bfv API debug mode is turned on.
Applications Using Makefiles” on page Note: In 2005, Microsoft ended support for Microsoft® Visual C++® 6.0 compilers. Therefore, in future releases, Dialogic may not be able to support applications using the Bfv API that are compiled with these compilers.
Using Brooktrout Files November 2009 Compiling Sample Applications Using Microsoft® Developer Studio Project Files Dialogic has created a Microsoft Visual Studio® Workspace/Solution dsp file and vcproj file for each Brooktrout SDK sample in the boston\bfv.api\winnt\app.src directory in the Brooktrout SDK InstallShield package.
Compiling Sample Applications Using Makefiles November 2009 The sample applications are distributed in source form and are compiled using the supplied makefile(s). The makefile(s) come set up to link the application programs with the Brooktrout Bfv API library. To compile the sample applications: 1.
Combining the Sample Applications Compatibility for Compiling November 2009 The sample applications provided with the Brooktrout SDK are combined or modified in a variety of ways to demonstrate key capabilities. Typically, combining these applications can require modifications to configuration files, such as callctrl.cfg. The current Brooktrout SDK is compatible with all prior Brooktrout SDK versions - 3.2 and later.
5 - Transferring Calls This chapter describes transferring calls using the Bfv API-level and BSMI-level call control functionality. Note: The Dialogic® Brooktrout® SR140 Fax Software does not support this functionality. Call transfer is a method of redirecting an incoming call to an internal line or “transferring”...
Making Call Transfers Using Bfv November 2009 The diagram in Figure 10 illustrates a transfer using the BfvLineTransfer high level call transfer function. The application issues a BfvLineTransfer function call to transfer a call. BfvLineTransferCapabilityQuery checks the transfer capability through LINE_XFER_ queries. If the line is capable of the transfer type requested (such as transferring using two B-channels, LINE_XFER_TWO_CHAN), then the call is placed on hold with BfvCallHold while the other line is checked for availability with...
Page 178
BfvLineTransfer BfvLineTransfer- CapabilityQuery BfvCallSetup (Enquiry) supervised BfvLineTransfer Complete True November 2009 False False LINE_XFER_ LINE_XFER_ SINGLE True True BfvCallWaitFor BfvCallHold Hold transfer_line_ BST_DIAL_COMPLETE state BST_CONNECTED BfvCallWaitFor BfvCallWaitFor Alerting Complete Successful False Figure 10. High-level Call Transfer using Bfv Making Call Transfers Using Bfv LINE_XFER_NONE LINE_XFER_ TWO_CHAN...
Page 179
Making Call Transfers Using Bfv BfvLineTransfer BfvLineTransfer Complete Cancel BfvCallTransfer BfvCallRetrieve Complete BfvCallWaitFor BfvCallWait Retrieve TransferComplete BfvCallWaitFor Release Figure 11. Low-level Call Transfer using Bfv November 2009...
T1 Robbed Bit hookflash transfers use E&M signaling to generate a hookflash (wink) and initiate dial tone recall to transfer a call using a single channel. To configure using the Dialogic® Brooktrout® Configuration Tool (Windows® only): Set each port’s Protocol Options to T1 Robbed Bit or Analog .
protocol_file=C:\Brooktrout\Boston\config\winkstart.lec protocol_file=C:\Brooktrout\Boston\config\analog_loopstart_us.lec Using BSMI Applications November 2009 To configure using configuration files: Set the port configuration for T1 RBS using the callctrl.cfg configuration file: port_config=t1_robbed_bit or for Analog , set: port_config=analog Set the protocol file for T1 Robbed Bit using the callctrl.cfg configuration file: and for Analog , the protocol file is: Set the transfer_variant using the callctrl.cfg configuration...
Making Two B-Channel Transfers November 2009 When making a two B-channel transfer, the central office connects two outside calls through the central office, freeing the B-channels to take more calls. You can only transfer calls using two B-channels on T1 ISDN PRI configurations. Bfv maintains a maximum of two calls per B-channel.
Page 183
Making Two B-Channel Transfers For more information on the BfvCallHold function, refer to Volume 2, Bfv API Reference Manual. For more information on the , refer to the chapter on using the Brooktrout Configuration Tool configuration tool in the installation and configuration guide that came with your software.
Making Call Transfers Using QSIG ISDN QSIG Supplementary Services Support Calling Line Identification Restriction Advice of Charge (AOC) November 2009 QSIG is an ISO standard that defines the ISDN signaling and control methods used to link PBXs in private ISDN networks. The standard extends the “Q”...
Page 185
Call Diversion Call Transfer November 2009 Call Diversion (Unconditional, Busy and Not Responding) contains three scenarios: Originating - the board places a call and the far end attempts to divert the call to a different destination. You can set Originating to enable or disable through the call configuration file using enable_call_diversion Served - the board receives an incoming call and attempts to...
Page 186
Name Identification November 2009 This feature allows the Bfv API to see the text name of the user similar to Caller ID on an analog phone line. Therefore, if the network provides the calling party, the calling party’s name is reported through BfvLineWaitForCall/BfvCallWaitForSetup functions located in the res.calling_party_subaddress field of the args structures.
Making Call Transfers Using Active Redirection (Japan) November 2009 Making Call Transfers Using Active Redirection (Japan) To transfer calls in Japan, use Active Redirection, a call transfer method that uses the central office or a PBX to transfer calls. Active redirecting is only available for T1 ISDN PRI and ISDN BRI.
Making Explicit Call Transfers (ECT) With E1 ISDN and BRI November 2009 Making Explicit Call Transfers (ECT) With E1 ISDN and BRI Explicit call transfer (ECT) with E1 ISDN transfers calls using either a single B-channel or two B-channels using switch resources in the central office or PBX.
Page 189
November 2009 Making Explicit Call Transfers (ECT) With E1 ISDN and BRI Set the transfer_variant using the callctrl.cfg configuration file: transfer_Variant=etsi_exp_link for explicit link transfer. You can also choose an implicit link by setting: transfer_Variant=etsi_imp_link Set the country code using the btcall.cfg configuration file, leave as default: country_code = 0010.
Making Two-Channel Call Transfers (Tromboning) November 2009 Making Two-Channel Call Transfers (Tromboning) This section provides information about creating a two-channel call transfer (trombone call transfer). A two-channel call transfer occurs when an application connects a calling party to a called party with a full duplex connection, while maintaining control of both calls.
Setting up the Two-Channel Call Transfer November 2009 Making Two-Channel Call Transfers (Tromboning) In the typical two way call transfer application, the application detects an incoming call and answers the call. The application then performs voice playback and voice recognition functions as needed, responding to the caller's spoken utterances.
Page 192
November 2009 Making Two-Channel Call Transfers (Tromboning) Channel 0 Ref In TSlot 0 Figure 12. Connections for Standard (non-transfer) Operation Figure 12 the output slot of Channel_0 transmits to the input slot of network timeslot 0, while the output slot of network timeslot 0 transmits to the input slot of Channel_0.
Page 193
Making Two-Channel Call Transfers (Tromboning) variable where it is easily accessed and restored when disconnecting the two-channel call transfer (see Terminating the Two-Channel Call Transfer page 199). When connecting and disconnecting resources, the application should primarily use the BfvCallSWConnect() function. The application must provide all connections with a source and destination resource.
Actions During a Two-Channel Call Transfer November 2009 Making Two-Channel Call Transfers (Tromboning) The application created a new connection from the output of network timeslot 0 to the input of network timeslot 1 and another new connection from the output of network timeslot 1 to the input of network timeslot 0 (see Figure 13 Using this model, Channel 0 can record the data that is being...
Page 195
BT_ZERO(speech_args); /* Configure channel to get its input reference signal from slot #1. */ Speech_args.echoc_op = ECHOC_OP_ALT_INPUT_ENABLE; BfvSpeechEchoCancelControl (lp, &speech_args); BT_ZERO(args); args.conn_mode = CALL_SW_TRANSMIT_ONLY_DEF; args.src_port_class = CALL_SW_PORT_NETWORK_DEF; args.src_port_unit = 0; args.src_stream = 0; args.src_slot = 1; /* Network Timeslot */ args.dest_port_class = CALL_SW_PORT_CHANNEL_DEF;...
Page 196
November 2009 Making Two-Channel Call Transfers (Tromboning) Figure 14 page 196 shows the connections required to configure the echo canceller on a channel during a two-channel call transfer while recording from person A. The application sends the final echo cancelled data up to the host for recording. Channel 1 Ref_In Ref_Out...
November 2009 Making Two-Channel Call Transfers (Tromboning) Playing Back Voice Recordings Voice playback during a two-channel call transfer can take one of two forms. The voice application plays voice data to both callers. In this example, the channel playing the voice data is the source resource and the network timeslots are the destination resources.
Page 198
November 2009 Making Two-Channel Call Transfers (Tromboning) channel provides silence generation on its output). After playback is completed, the application can re-establish the full duplex connection. The following series of illustrations demonstrate the changes. Figure 16, there is a full duplex connection between channel 0 and TSlot 0, and another full duplex connection between channel 1 and TSlot 1.
Terminating the Two-Channel Call Transfer November 2009 Making Two-Channel Call Transfers (Tromboning) Figure 18, the application places the caller on TSlot 1 on hold and generates silence from channel 1 to the caller. There is a full duplex connection between channel 0 and TSlot 0. Channel 0 is playing a voice prompt to the caller on TSlot 0 while recording.
Disconnecting Resources November 2009 Making Two-Channel Call Transfers (Tromboning) When disconnecting resources, invert the source and destination resources so that the firmware responds appropriately. Due to firmware requirements, when disconnecting resources, invert the source and destination resources. For example, if you made a transmit connection from the output slot of Channel 0 to the input slot of network timeslot 0, where Channel 0 is the source, then you must disconnect from the input slot of network timeslot 0 to the output slot of Channel 0.
Page 201
Making Two-Channel Call Transfers (Tromboning) If the application configured the echo canceller in the channel to get an input reference signal from slot #1, then the application must remove this configuration to return the echo canceller to its default behavior. To do this the application must call the BfvSpeechEchoCancelControl() function (See Volume 3 of the Bfv API Reference Manual).
Transferring Calls Using Release Link Trunk Transfer Using Bfv Applications November 2009 Transferring Calls Using Release Link Trunk Transfer Release Link Trunk is an explicit call transfer method for Nortel DMS-250 switches and is only available for Nortel switches. The host application initiates the Release Link Trunk (RLT) action, but the call transfer is completed within the public switch network.
Using BSMI Applications November 2009 Transferring Calls Using Release Link Trunk Transfer Set the switch type using the callctrl.cfg configuration file: switch_type=nti_dms250 Set the transfer_variant using the callctrl.cfg configuration file, set: transfer_Variant=rlt Set the country code using the btcall.cfg configuration file: country_code = 0010(US).
Network Host ===> L3L4mSETUP_IND (B1) SETUP ===> L3L4mSET_TSI src=IISDNtsiLINE_A+1 dst=IISDNtsiLINE_A+2 src=IISDNtsiLINE_A+2 dst=IISDNtsiLINE_A+1 <=== L4L3mCALL_REQUEST (B2) SETUP ALERTING ===> L3L4mALERTING (B2) ===> L3L4mCONNECT (B2) CONNECT November 2009 Transferring Calls Using Release Link Trunk Transfer For more information on L4L3mENABLE_PROTOCOL and L3L4mALERTING, please refer to Volume 5, Bfv API Reference Manual.
Network Host ALERTING <=== L4L3mALERTING (B1) <=== L4L3mCONNECT (B1) CONNECT ===> L3L4mSETUP_IND (B1) SETUP <=== L4L3mCALL_REQUEST (B2) SETUP rtl_service = 1 ALERTING ===> L3L4mALERTING (B2) includes 0x1c (FACILITY) IE with call_id. ===> L3L4mCONNECT (B2) CONNECT <=== L4L3mFACILITY_REQUEST FACILITY November 2009 Transferring Calls Using Release Link Trunk Transfer Now that B-channel #2 is set up, continue with normal call setup on B1, sending...
Page 206
Transferring Calls Using Release Link Trunk Transfer Once the network establishes a direct connection between the originator of the first call and the final destination of the second call, it sends DISCONNECT messages for both B1 and B2. The calls are released on the board (and the board does not need to keep two B-channels established), but the switch maintains the actual connections between the originator and the reroute destination.
Placing Calls on Hold Using BSMI Table 8. Call Hold Values for L4L3mUNIVERSAL messages #define MT_DL_HOLD #define MT_DL_HOLD_ACK #define MT_DL_HOLD_REJ #define MT_DL_RETRIEVE #define MT_DL_RETRIEVE_ACK 0x33 //ITU-T Q.932 subclass 8.1, must contain a #define MT_DL_RETRIEVE_REJ #define MT_DL_STATUS November 2009 When you invoke hold functions in BSMI, the host sends an L4L3mUNIVERSAL message to the board with the data.universal.msg_id field set to a value in detailed in Example 1.
Page 211
memset(&l43msg,0,sizeof(L4_to_L3_struct)); l43msg->msgtype = L4L3mUNIVERSAL; l43msg->data.universal.msg_id #define IEID_CAUSE #define EXTENSION_BIT memset(&l43msg,0,sizeof(L4_to_L3_struct)); l43msg->msgtype = L4L3mUNIVERSAL; l43msg->data.universal.msg_id l43msg->data.universal.ie_count l43msg->data.universal.ie.ie_id l43msg->data.universal.ie.ie_length l43msg->data.universal.ie.ie_data[0] Location; //where Coding_standard and Location are from ITU-T Q.850 // subclause 2.2.2 and 2.2.3 respectively l43msg->data.universal.ie.ie_data[1] is from ITU-T Q.850 subclause 2.2.5 November 2009 Example 1 = MT_DL_RETRIEVE;...
Page 212
Placing Calls on Hold Using BSMI November 2009...
Page 214
To establish Internet Protocol (IP) sessions, Dialogic uses the Session Initiation Protocol (SIP) and the H.323 Protocol. To manage fax and voice media, Dialogic uses T.38 and RTP protocols. This chapter has the following sections: Managing Calls Using IP Telephony Failover Based on Telephony Cause Codes Configuring T.38, RTP and IP Call Control Activities...
SR140 and TR1034 platforms. All channels on a given module must be configured for IP call control or for PSTN call control. Dialogic does not support combined modes of call control on a given module. Multiple modules within a system can be configured to support several modes of call control, each module being configured to support only one mode.
IP or PSTN mode either at runtime or installation. Because the Dialogic® Brooktrout® Bfv API uniformly supports a wide set of transports including IP, you can use the same applications to manage calls over IP as when using the PSTN.You can configure IP call control using the Dialogic®...
November 2009 Outgoing IP Calls Your application manages outgoing calls if it performs the following: Uses the function calls from the table below Does not do syntax validation of the dial string Relies on the return status from the BfvLineOriginateCall function to determine call completion success.
November 2009 Incoming IP Calls Your application can receive incoming IP calls if it uses function calls from the table below In this case the application is unaware of the mode of transport (PSTN or IP): Starts answering an incoming telephone BfvCallAccept call.
Understanding SIP Functionality November 2009 The following section provides information about SIP functionality and processes. For a detailed introduction to the SIP protocol, see Introduction to the SIP Protocol on page Using a SIP Proxy Server To make an outgoing connection using the IP, your application must know the IP address of a local proxy server which is responsible for forwarding the SIP call towards its final destination.
Page 220
Managing Calls Using IP Telephony SIP/T38://+01-781-555-1212 ISDN://+01-781-449-9009 When the current FAX.C sample program is compiled, it takes command line parameters to define the number dialed. With no changes to the source code, you can replace the number with a URI to allow it to take advantage of T.38.
Page 221
sip:Joe Smith<Joe@somewhere.com> sip:800-555-1212@somewhere.com sip:800-555-1212@myproxy.com Joe Smith<Joe@Somewhere.com> 800-555-1212@Somewhere.com 800-555-1212@myproxy.com 800-555-1212 +1 (800) 555-1212 192.168.1.45 Joe@192.168.1.1 sip:somewhere.com sip:joe@somewhere.com:9876 sip:011442871234@somewhere.com;user=phone November 2009 The following are valid dial string examples for a SIP channel. Comments are shown in italics. SIP endpoint address. Endpoint gateway specified. Proxy explicitly specified.
Page 224
Defined by the current domain of the UAC. Generated internally. Defined by the IP of the primary NIC (network interface controller). Defined by the sip_Contact setting in the call control configuration file (default is the IP address of the primary NIC). Defined by the sip_Max-Forwards setting in the call control configuration file.
Bfv final call response code Busy here Busy everywhere Service Unavailable Ringing OK (when in response to an INVITE when SDP media type and subtypes are image and T.38 respectively.) November 2009 Call Progress Values Brooktrout Bfv API has mapped all possible IP call INVITE responses to Bfv call progress values.
Understanding H.323 Functionality Multiple Protocols Supporting Media November 2009 This Brooktrout SDK supports the H.323 protocol (version 4 and Annex D), providing end point functionality only. Our current H.323 implementation does not operate as a gateway or H.323 Gatekeeper, but you can configure your application to communicate with a gateway or H.323 Gatekeeper.
SIP and H.323. Examples of supported dialstrings for H.323: 1234@208.242.99.10 1234@208.242.99.10:1720 Dialogic products accept the following H.323 Called Party Address forms: A transport address An E.164 alias A H.323 ID alias Unless noted, the rules below also apply to an H.323 Calling Party...
Page 228
E.164 Alias (Phone Number) H.323 ID Alias (Name) November 2009 This Called Party Address can start with the optional identifier “TEL:”, followed by one or more E.164 address destinations. Turn on H.323 Gatekeeper support when using E.164 aliases. An E.164 alias is a phone number that is up to 128 characters long and includes the characters 0 –...
Page 229
Managing Calls Using IP Telephony TA:198.133.219.25,7814494100 November 2009...
Failover Based on Telephony Cause Codes Overview Common Failures November 2009 Identifying call failures within an IP telephony network allows an application to re-route calls depending on the failure. In many cases, the failover to other network devices occurs seamlessly when the network has the following: H.323 Gatekeepers SIP Registrar Servers or SIP Redirect Servers...
Page 231
November 2009 Gateway failure during an active call by disconnecting the PSTN cable. Applications needing specific information about a call failure can use the cause codes reported by BfvLineTerminateCall(). However, using cause codes to determine failover scenarios is complicated. In most cases, the cause codes supplied by the gateway are manufacturer-specific and depend on the protocol being used.
Failover Scenarios November 2009 Refer to Table 10 to determine failover scenarios. The table shows cause codes that have been found uniformly consistent with conditions requiring re-routing. Note that cause codes 18 and 1000 are for cases where the gateway is unreachable or inoperative.
Known Failures From Various Gateways Scenario SR140 Protocol Unreachable IP H.323 1000 Address Reachable IP address H.323 1000 with no SIP/H.323 responds Gateway failure during H.323 0, 16 an active call by disconnecting the network cable on the SR140 Gateway failure during H.323 0 an active call by disconnecting the...
Page 234
Scenario SR140 Protocol Gateway with H.323 1000 responding SIP/H323 and PSTN down (no PSTN cable connected) Gateway with H.323 17 responding SIP/H.323 and PSTN down due to an alarm Gateway SIP/H.323 H.323 1000 channels exceeded Gateway PSTN H.323 17 channels exceeded Gateway failure during H.323 0 an active call by...
Page 235
Scenario SR140 Protocol Gateway with responding SIP/H.323 and PSTN down (no PSTN cable connected) Gateway with responding SIP/H.323 and PSTN down due to an alarm Gateway SIP/H.323 channels exceeded Gateway PSTN channels exceeded Gateway failure during an active call by disconnecting the PSTN cable Gateway with...
SIP to Q.931 Conversion November 2009 Table 12 shows the translation performed to create Q.931 codes from SIP error codes. Table 12. SIP to Q.931 Conversion SIP Cause Description Code Bad Request Unauthorized Payment required Forbidden Not found Method not allowed Not acceptable Proxy authentication required 21 Request timeout...
Page 237
November 2009 SIP Cause Description Code Loop detected Address incomplete Ambiguous Busy here Request Cancelled Not acceptable here Internal server error Not implemented Bad gateway Service unavailable Server time-out Version not supported Message Too Large Busy everywhere Decline Does not exist anywhere Not acceptable Failover Based on Telephony Cause Codes Q.931 Cause Code...
Processing Media Using the T.38 Protocol T.30 Protocol Engine Image Conversion Engine Modem November 2009 The Brooktrout SDK supports real-time sending and receiving faxes over IP following the T.38 protocol for exchanging messages and data through IP fax gateways or IAF devices over an IP network. Because Brooktrout’s Bfv Call Control API uniformly supports a wide set of transports including IP, you can use the same fax functions for fax over IP as when sending faxes over the PSTN.
Page 239
The endpoint uses the T.30 protocol to negotiate the connection and performs the image conversion. The gateway simply passes the fax between a PSTN and IP connection. Processing Media Using the T.38 Protocol T.30 / V.34 PSTN Receiving Fax Machine PSTN Fax Machine Gateway Receiving...
Page 240
T.30 protocol engine in the fax server through the gateway. 4. With T.38 in a gateway, the sending fax machine sends a fax using modem modulation to transport T.30 protocol and image data to a gateway via the PSTN.
Bfv API fax functions. The application is unaware of the mode of transport (PSTN or SIP). Dialogic supports all fax functions for Fax over IP. See Volume 4, Fax Processing, Bfv API Reference Manual for more information about Fax functions.
Configuring T.38, RTP and IP Call Control Activities November 2009 Configuring T.38, RTP and IP Call Control Activities If your application runs on Windows® systems, you can use the Brooktrout Configuration Tool to configure call control. Use the IP Call Control Module Configuration Window to modify values for: General information IP parameters for both SIP and H.323 T.38 parameters...
See Chapter , Debugging on page 91 tools. Dialogic has provided a debug_control mode for T.38 problem solving (use under guidance of Dialogic Technical Services and Support). See Volume 1 of the Bfv API Reference Manual for more information.
Understanding the SIP Protocol Introduction to the SIP Protocol November 2009 You can use the Session Initiation Protocol (SIP), an application-layer control (signaling) protocol, to create, modify, and terminate sessions with one or more participants. These sessions include internet telephone calls, multimedia distribution, and multimedia conferences.
Overview of SIP Functionality November 2009 Numerous protocols carry various forms of real-time multimedia session data such as voice, video, or text messages. The Session Initiation Protocol (SIP) works in concert with these protocols by enabling internet endpoints (called user agents) to discover one another and to agree on a characterization of a session they would like to share.
Page 246
Understanding the SIP Protocol SIP is not a vertically integrated communications system. SIP is rather a component that is used with other IETF protocols to build a complete multimedia architecture. Typically, these architectures include protocols such as the Real-time Transport Protocol (RTP) (RFC 1889 [28]) for transporting real-time data and providing QoS feedback, the Real-Time streaming protocol (RTSP) (RFC 2326 [29]) for controlling delivery of streaming media, the Media Gateway...
Overview of Operation November 2009 This section introduces the basic operations of SIP using simple examples. This section is tutorial in nature and does not contain any normative statements. The first example shows the basic functions of SIP: Locating an end point Signaling a desire to communicate Negotiating session parameters to establish the session Tearing down the established session...
Page 248
softphone November 2009 contains a number of header fields. Header fields are named attributes that provide additional information about a message. The ones present in an INVITE include the following: Unique identifier for the call Destination address Caller A's address Information about the type of session that Caller A wishes to establish with Caller B.
Page 249
From Call-ID CSeq November 2009 INVITE sip:b@biloxi.com SIP/2.0 Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bK776asdhds Max-Forwards: 70 To: b <sip:b@biloxi.com> From: A <sip:a@atlanta.com>;tag=1928301774 Call-ID: a84b4c76e66710@pc33.atlanta.com CSeq: 314159 INVITE Contact: <sip:a@pc33.atlanta.com> Content-Type: application/sdp Content-Length: 142 (A's SDP not shown) INVITE Message Note: Caller A's SDP not shown The first line of the text-encoded message contains the method name (INVITE).
Page 250
Contact Max-Forwards Content-Type Content-Length November 2009 Contains a SIP or SIPS URI that represents a direct route to contact Caller A, usually composed of a username at a fully qualified domain name (FQDN). While an FQDN is preferred, many end systems do not have registered domain names, so IP addresses are permitted.
Page 251
Understanding the SIP Protocol of the biloxi.com proxy server and forwards, or proxies, the INVITE request there. Before forwarding the request, the atlanta.com proxy server adds an additional Via header field value that contains its own address (the INVITE already contains Caller A's address in the first Via).
Page 252
SIP/2.0 200 OK Via: SIP/2.0/UDP server10.biloxi.com; branch=z9hG4bKnashds8; received=192.0.2.3 Via: SIP/2.0/UDP bigbox3.site3.atlanta.com; branch=z9hG4bK77ef4c2312983.1; received=192.0.2.2 Via: SIP/2.0/UDP pc33.atlanta.com; branch=z9hG4bK776asdhds; received=192.0.2.1 To: b <sip:b@biloxi.com>;tag=a6c85cf From: A <sip:a@atlanta.com>;tag=1928301774 Call-ID: a84b4c76e66710@pc33.atlanta.com CSeq: 314159 INVITE Contact: <sip:b@192.0.2.4> Content-Type: application/sdp Content-Length: 131 November 2009 In this example, Caller B decides to answer the call. When he picks up the handset, the SIP phone sends a 200 (OK) response to indicate that the call has been answered.
Page 253
Understanding the SIP Protocol could proxy the INVITE to Caller B's voicemail server. A proxy server can also send an INVITE to a number of locations at the same time. This type of parallel search is known as forking (see below). In this case, the 200 (OK) is routed back through the two proxies and is received by Caller A's softphone, which then stops the ringback tone and indicates that the call has been answered.
Page 254
Understanding the SIP Protocol forking. For this reason, request handling in SIP is often classified as either INVITE or non- INVITE, referring to all other methods besides INVITE. In some cases, it may be useful for proxies in the SIP signaling path to see all the messaging between the endpoints for the duration of the session.
Page 255
Understanding the SIP Protocol Registrations are one way to create this information, but not the only way. Arbitrary mapping functions are configured at the discretion of the administrator. Finally, it is important to note that in SIP, registration is used for routing incoming SIP requests and has no role in authorizing outgoing requests.
Using Third Party IP Stacks November 2009 The Bfv Fax can be integrated with systems that have their own IP call control stacks. The primary IP stacks are SIP and H.323. These stacks negotiate an RTP and a T.38 port to perform fax. With the use of the SR140 software, a pure fax software solution can be integrated on systems that have VoIP features.
Integrating Bfv IP Fax November 2009 Figure 21 shows the individual components that an application interacts with via the Bfv API. Although other facilities exist in the Bfv, only the fax-related facilities are shown below. Figure 21. Components Interacting with Application Using Third Party IP Stacks...
November 2009 Components The following figure shows the components included in this configuration. Note that you must disable the functionality of the following: ECC Component H.323 Stack SIP Stack Refer to Disable ECC Component on page 259 stacks too. Figure 22. Components in Configuration Using Third Party IP Stacks which disables the...
It can be used to create the initial callctrl.cfg and btcall.cfg. However, for this setup, you must edit the callctrl.cfg manually. Dialogic does not recommend that you use ConfigTool beyond the initial creation of the configuration files. Refer to the Call Control Configuration File section in the Dialogic®...
November 2009 [module.41] vb_firm=/usr/sys/brooktrout/boston/fw/bostvb.so # This parameter should be set to the number of channels licensed for the SR140 product channels=30 [module.41/ethernet.1] ip_interface=eth0 TR1034 Board-Based Integration - Linux The following callctrl.cfg configuration is an example for a TR1034 board based integration for Linux in the default installation directory.
Call Negotiation November 2009 # Specify an IP mask such as 255.255.255.0 ip_netmask=0.0.0.0 # Specify an IP address such as 192.168.0.1 ip_gateway=0.0.0.0 ip_broadcast=0.0.0.0 ethernet_speed=auto ip_arp_timeout=10 Inbound Call The following section uses SIP to demonstrate the interaction between the third party stack in the application and the Bfv API for negotiating RTP and T.38 for an inbound call.
Page 262
Using Third Party IP Stacks Figure 23. Inbound SIP Sequence November 2009...
Using Third Party IP Stacks Outbound Call The following section uses SIP to demonstrate the interaction between the third party stack in the application and Bfv for negotiating RTP and T.38 for an outbound call. Systems that will perform RTP can generate the CNG tone and avoid setting the RTP on the Bfv.
Ground Start Signaling Loop Start Signaling FXO Loop Start This chapter covers protocols Dialogic supports for interfacing with the Local Exchange Carrier (LEC) Network (that is, the North American Telephone Network). Note: This chapter applies only to BSMI (low-level call control) users.
Page 265
General Information These protocols apply either to digital (T1 or E1) or analog lines. The different types of lines simply provide a different mechanism for conveying the signal-electric signals (loop current and ring voltage) on analog lines and bits on digital lines. On digital lines, these protocols are sometimes referred to as Channel Associated Signaling (CAS) or Robbed-Bit Signaling (RBS) due to the nature of the signaling.
Page 266
November 2009 The protocols describe the value and meaning of the signaling bits and the timing between changes in their value. Brooktrout modules support the following LEC protocols: E&M Wink Start E&M Immediate Start E&M Delay Dial FXO Loop Start FXS Loop Start FXO Ground Start FXS Ground Start...
Page 267
Channels are numbered 0-(N-1) for all line types (T1, E1 and analog) and protocols. Dialogic supports the most common protocols. Contact Dialogic to make requests for ones not known to be officially supported. See Getting Technical Support page 21 for contact information.
Timer Definitions Timer Granularity Definition answer_timer 50 ms critical_timer 50 ms November 2009 The LEC structure (named IISDN_ROBBED_BIT_DATA for historical reasons) contains a series of 16-bit values used to configure the various timing parameters associated with the protocols. Table 13 lists the timers in alphabetical order and contains each timer's unit, meaning, and default value.
Page 269
Timer Granularity Definition delayed_on_ 50 ms hook_timer delayed_wink_ 20 ms timer dptimer_break 10 ms dptimer_end_ 10 ms dial_pause dptimer_ 10 ms immed_delay November 2009 Table 13. Robbed Bit Signaling Timers (Continued) Delayed on hook timer. If set to a value greater than 0, the amount of time it waits for the host to set the line onhook (message L4L3mCLEAR_...
Page 270
Timer Granularity Definition dptimer_ 10 ms interdigit dptimer_make 10 ms dptimer_post_ 10 ms wink dptimer_pre_ 10 ms wink dptimer_wink 10 ms first_indigit_ 50 ms timer fixed_pause_ 50 ms timer November 2009 Table 13. Robbed Bit Signaling Timers (Continued) Dial Pulse Interdigit. Time between digits when performing digit outpulsing.
Page 271
Timer Granularity Definition glare_ 10 ms detection_ timer guard_ 50 ms interval_timer hookflash_ 10 ms timer hooktimer_ 10 ms onhook_rls hooktimer_ 10 ms onhk_mod_in_ hooktimer_ 10 ms onhk_mod_ out_rls November 2009 Table 13. Robbed Bit Signaling Timers (Continued) Glare Detection. Timer started at the beginning of outseizure that determines if a wink start or delay dial was...
Page 272
Timer Granularity Definition hooktimer_ 10 ms offhook_inseize hooktimer_ 10 ms offhook_ answer hooktimer_ 10 ms min_wink hooktimer_ 10 ms maxmake hooktimer_ 10 ms maxbreak hooktimer_ 10 ms minmake November 2009 Table 13. Robbed Bit Signaling Timers (Continued) Inseizure Filter. Time that the receive signal bit must be in-use to be considered an inseizure from the connected equipment.
Page 273
Timer Granularity Definition hooktimer_ 10 ms minbreak ign_insz_post_ 10 ms rls_timer ign_rls_post_ 10 ms ans_timer modified_in_ 50 ms rls_timer modified_out_ 50 ms rls_timer no_ringing_ 50 ms timer November 2009 Table 13. Robbed Bit Signaling Timers (Continued) Minimum Dial Pulse Break Time.
Page 274
Timer Granularity Definition outseize_ack_ 50 ms timer ringing_timer 50 ms November 2009 Table 13. Robbed Bit Signaling Timers (Continued) CO Outseize Acknowledge Timer. Time to continue looking for the outgoing start dial signal from the connected equipment on outseizure before declaring an outseizure failure.
Timing Diagrams November 2009 To aid in the development process, timing diagrams that illustrate call setup and call teardown signaling in the various supported protocols are provided in the sections that follow. The diagrams consist of four parts: IISDN SMI Messages: Indicates the Bfv API messages sent to and received from the card during the call scenario.
Wink Start & Delay Dial Signaling November 2009 In the Wink Start protocol, the device seizing the line expects a wink signal (a short-duration - 140 to 290ms - offhook signal) to be sent back as acknowledgment before sending the address digits. In the Delay Dial, the device seizing the line expects an off-hook response from the far end for at lest 140ms, and waits for the far end to return to on-hook state before sending the address digits.
Incoming Call Processing November 2009 The remaining settings are described in the context of incoming and outgoing calls in the subsections that follow. Brooktrout modules process calls in the same manner on both wink start and delay dial trunks. During an incoming call, the host receives an L3L4mPRE_SEIZE message if send_preseize_event = 1 in the IISDN_ROBBED_BIT_ DATA structure.
Outgoing Call Processing Call Teardown Processing November 2009 During an outgoing call, the host receives an L3L4mPROGRESS in response to the L4L3mCALL_REQUEST to start the call. The host then receives an L3L4mSEIZE_COMP message if send_seize_comp_ event = 1 in the IISDN_ROBBED_BIT_DATA structure. This message is sent when the module detects a wink from the network, indicating the network is ready to receive digits.
Wink Start with Feature Group B & D Incoming Call Processing November 2009 To configure a Brooktrout module for wink start with Feature Group B and D signaling, the host must issue an L4L3mENABLE_CAS with an IISDN_ROBBED_BIT_DATA structure that contains the following settings: send_glare_err_event = 0 (not used for wink start) in_trunk_type = IISDNttWINK_START (the default value)
Page 282
November 2009 Figure 27. Wink Start with Feature Group B&D - Incoming Call Timing Diagram Wink Start with Feature Group B & D Revised 20-Oct-03 Rev 1.4...
Outgoing Call Processing Call Teardown Processing November 2009 The host receives an L3L4mPROGRESS in response to the L4L3mCALL_REQUEST to start the call. The host then receives an L3L4mRX_WINK message when the module detects a wink from the network. The module waits a period of time (determined by the fixed pause timer) before sending digits.
Page 284
November 2009 Figure 28. Wink Start with Feature Group B&D - Outgoing Call Timing Diagram Wink Start with Feature Group B & D Revised 20-Oct-03 Rev 1.4...
Immediate Start/Fixed Pause Signaling Incoming Call Processing (Immediate Start) November 2009 Immediate Start signaling applies to incoming calls only; Fixed Pause signaling applies to outgoing calls only. Since these signaling types functionally complement each other, they are handled together by Brooktrout modules. The exact protocol to be used for a call is automatically selected depending on whether an incoming or outgoing call is being handled.
Outgoing Call Processing (Fixed Pause Mode) Call Teardown Processing November 2009 During an outgoing call, the host receives an L3L4mPROGRESS in response to the L4L3mCALL_REQUEST to start the call. The module waits a period of time (determined by the fixed pause timer) before sending digits.
Ground Start Signaling FXO Ground Start November 2009 Brooktrout modules support two types of ground start signaling: Foreign Exchange - Office (FXO) Foreign Exchange - Subscriber (FXS) When operating in FXO mode, the module assumes the far end of the connection is an FXS termination.
Page 290
Ground Start Signaling Figure 31 shows how a Brooktrout module processes an incoming call received over an FXO ground start trunk. November 2009...
Ground Start Signaling Outgoing Call Processing If send_glare_err_event = 0 in the IISDN_ROBBED_BIT_DATA structure, the host receives an L3L4mERROR message containing the value L3L4errGLARE if the outgoing call attempt fails due to glare. Glare occurs when the module attempts to make an outgoing call on a channel at the same time an incoming call arrives on the channel.
FXS Ground Start November 2009 To configure a Brooktrout module for FXS ground start signaling, the host must issue an L4L3mENABLE_CAS with an IISDN_ ROBBED_BIT_DATA structure that contains the following settings: in_trunk_type = IISDNtt5ESS_GDSTART out_trunk_type = IISDNtt5ESS_GDSTART max_incoming_digit_count = 0 (no digits collected) timed_answer_supervision = 1 (timer expiration indicates far end answer) fgb_fgd_mode = 0 (not used)
Ground Start Signaling Outgoing Call Processing If send_glare_err_event = 0 in the IISDN_ROBBED_BIT_DATA structure, the host receives an L3L4mERROR message containing the value L3L4errGLARE if the outgoing call attempt fails due to glare. Glare occurs when the module attempts to make an outgoing call on a channel at the same time an incoming call arrives on the channel.
Loop Start Signaling November 2009 Brooktrout modules support two types of loop start signaling: FXO Loop Start FXS Loop Start When operating in FXO mode, the module assumes the far end of the connection is an FXS termination. When operating in FXS mode, the module assumes the far end is an FXO termination.
FXO Loop Start November 2009 To configure a Brooktrout module for FXO loop start signaling, the host must issue an L4L3mENABLE_CAS with an IISDN_ROBBED_ BIT_DATA structure that contains the following settings: send_glare_err_event = 0 (not used for loop start) in_trunk_type = IISDNttFXO_LPSTART out_trunk_type = IISDNttFXO_LPSTART timed_answer_supervision = 0 (answer supervision required) fgb_fgd_mode = 0 (not used)
Loop Start Signaling Incoming Call Processing During an incoming call, the host receives an L3L4mPRE_SEIZE message if send_preseize_event = 1 in the IISDN_ROBBED_BIT_ DATA structure. This message is sent when the module detects an incoming seize from the far end (FXS end). The module then collects dial pulse digits from the network;...
FXS Loop Start November 2009 To configure a Brooktrout module for FXS loop start signaling, the host must issue an L4L3mENABLE_CAS with an IISDN_ROBBED_ BIT_DATA structure that contains the following settings: in_trunk_type = IISDNtt5ESS_LPSTART out_trunk_type = IISDNtt5ESS_LPSTART max_incoming_digit_count = 0 (no digits collected) timed_answer_supervision = 1 (timer expiration indicates far end answer) fgb_fgd_mode = 0 (not used)
Loop Start Signaling event = 1 in the IISDN_ROBBED_BIT_DATA structure. This message is sent after the fixed pause timer expires. When the timer expires, the host receives an L3L4mSEIZE_COMP message if send_ seize_comp_event = 1 in the IISDN_ROBBED_BIT_DATA structure. FXS ground start supports transmitting digits other than dial pulse digits.
Page 316
8 - ISDN Call Processing and November 2009 This chapter describes ISDN call processing using BSMI-level call control. The chapter has the following sections: ISDN Call Processing Overview Translating Q.931 to Simple Message Interface Using the overlap_rcv feature of L4L3mENABLE_ PROTOCOL Q.921/Q.931 Timers Brooktrout modules provide multipurpose platforms for fully...
Page 317
BSMI interprets undecoded Q.931 packets from the network, removing information not needed by most applications and making it available via an L3L4m message. If you need specific Q.931 information not delivered with the message but that is documented as contained in a Q.931 packet, such as call setup messages which have two IEs (Information Elements) –...
ISDN Call Processing Overview Making an ISDN Incoming Call November 2009 This subsection presents an overview of ISDN incoming and outgoing call setup and tear down and overlapped dialing. Switched 56 calls use a similar mechanism. A typical incoming ISDN call is illustrated in scenario, the Brooktrout module is answering a call.
Page 319
l43.data.enable_protocol.level3.cnfg.q931.b_chan_negot=1 l43.data.enable_protocol.level3.cnfg.q931.subscribe_connack=1 l43.data.enable_protocol.level3.cnfg.q931.no_rx_conn_ack=1 November 2009 Notification of incoming calls comes via a SETUP_IND message which contains the B-channel number the network would like to set the call up on. By turning on negotiation, you can specify a different (specific) B-channel on which to establish rather than the one requested by the network.
Page 320
ISDN Call Processing Overview It is also possible to configure BSMI to generate a SETUP_ACK rather than a CALL_PROCEEDING message upon arrival of a setup message. Network Module Host SETUP L3L4mSETUP_IND CALL PROCEEDING L4L3mALERTING_REQUEST ALERTING L4L3mCONNECT_REQUEST CONNECT CONNECT ACKNOWLEDGE Figure 48. ISDN Incoming Call As in the case of a call, BSMI also handles the call model where a SETUP_ACK generated instead of a call proceeding.
Making an ISDN Outgoing Call November 2009 A typical outgoing ISDN call is illustrated in scenario, the module is making an outgoing call. During an outgoing call, if the phone number is more than 20 digits long, the application automatically sends the number using overlapped dialing (See Overlapped Dialing page 323 message exchange is relative to the module:...
Page 322
CONNECT ACKNOWLEDGE 143.data.enable_protocol.level3.cnfg.q931.report_incoming_callproc=1 l43.data.enable_protocol.level3.cnfg.q931.no_tx_conn_ack = 1 November 2009 Network SETUP CALL PROCEEDING ALERTING CONNECT Figure 49. ISDN Outgoing Call Call Proceeding (L3L4mCALL_PROCEEDING) is reported to the module but is not automatically reported to the host via the Bfv API. In order to retrieve this message, set the field below to 1 in your ENABLE_PROTOCOL message: The default is that the stack sends a CONNECT ACKNOWLEDGE upon receiving a CONNECT.
ISDN Call Clearing - Initiated by Module November 2009 ISDN Overlapped Dialing The Euro-ISDN protocol only allows 20 digits to be sent as a group (en-block) when placing a call. For longer phone numbers, the application must use overlapped dialing— the process of sending extra digits after the initial call setup.
Page 324
November 2009 3. The network responds to the DISCONNECT with a RELEASE message. 4. The module generates two messages upon receipt of the RELEASE: RELEASE COMPLETE message to the network, indicating the call has been cleared L3L4mCLEAR_REQUEST message to the host, indicating the call has been disconnected Network DISCONNECT...
l43.data.enable_protocol.level3.cnfg.q931.release_complete_control = 1 ISDN Call Clearing - Initiated by Network November 2009 If you want manual control over the sending of RELEASE COMPLETE, set the field below to 1: An L4L3mCLEAR_REQUEST message will then send the RELEASE COMPLETE message. The host cannot consider a call disconnected and the channel available for another call until the L3L4mCLEAR_REQUEST message has been received from the module.
Page 326
November 2009 If the call is made using Switched 56 robbed bit signaling (not ISDN), there is an additional waiting period between sending the L4L3mCLEAR_REQUEST and receiving the L3L4mCLEAR_ REQUEST indicating the channel is available. This interval is equal to the value of the guard_interval_timer and is usually 100 ms. Refer Chapter , Robbed Bit Signaling on robbed bit signaling timers.
Q.931Message RESTart ACKnowledge SEGMENT CONGestion CONtrol INFOmation NOTIFY STATus STATus ENQuiry FACILITY Using the overlap_rcv feature of L4L3mENABLE_PROTOCOL What is Overlap Receive? November 2009 Using the overlap_rcv feature of L4L3mENABLE_PROTOCOL Table 14. Q.931 Message Comparison Table (Continued) BSMI Message(L4L3m) nothing nothing nothing INFO_REQUEST...
BSMI Reference Notes L4_to_L3_struct l43msg; memset (&l43msg, 0, sizeof(l43msg)); l43msg.lapdid = 0; l43msg.msgtype = L4L3mENABLE_PROTOCOL; l43msg.data.enable_protocol.level1.l1_mode = IISDNl1modHDLC; l43msg.data.enable_protocol.level2.l2_mode = IISDNl2modLAP_D; l43msg.data.enable_protocol.level2.dce_dte = IISDNdirUSER_SIDE; l43msg.data.enable_protocol.level3.l3_mode = IISDNl3modQ931; l43msg.data.enable_protocol.level3.cnfg.q931.switch_type = IISDNstUNKNOWN; l43msg.data.enable_protocol.level3.cnfg.q931.variant = IISDNvarCCITT; l43msg.data.enable_protocol.level3.cnfg.q931.overlap_rcv = 1; BSMIControlWrite (fd, l43msg); November 2009 Using the overlap_rcv feature of L4L3mENABLE_PROTOCOL Support for Overlap Receive mode are enabled using the overlap_rcv flag in the BSMI_Q931_CNFG structure of L4L3mENABLE_...
How Overlap Receive Mode Changes Call Control Events Presentation November 2009 Using the overlap_rcv feature of L4L3mENABLE_PROTOCOL Volume 5, Bfv API Reference Manual describes the normal call control events associated with ISDN Call Processing and Management. These events occur when incoming SETUP messages contain all the appropriate CALLED_PARTY information elements and SENDING_COMPLETE information elements.
Page 331
Network Setup (no sending complete or called party #IE) SETUP ACKNOWLEDGE INFORMATION INFORMATION REQUEST INFORMATION INFORMATION CALL_PROCEEDING November 2009 Using the overlap_rcv feature of L4L3mENABLE_PROTOCOL Brooktrout Controller overlap_rcv ENABLED L3L4mSETUP_IND L3L4mINFO If no SENDING_COMPLETE IE is present, or when Module cannot determine if CALLED_PARTY info is complete, Module issues request for further info.
1 millisecond “ticks;” Level 3 timers in 100 millisecond “ticks.” Note: Dialogic strongly recommends that you use the default values for Level 2 and Level 3 parameters and internal buffers. Failure to do so might result in a system irregularity. If you do...
Page 333
Data Type unsigned short unsigned short unsigned short unsigned short Data Type IISDN_Q931_ TIMERS unsigned short unsigned short unsigned short unsigned short unsigned short unsigned short November 2009 Table 15. Q.921 Timers (Level 2 Parameters) (Continued) Mnemonic Definition n200 Maximum number of retransmissions. value is 3.
Page 334
Data Type unsigned short unsigned short unsigned short unsigned short November 2009 Table 16. Q.931 Timers (Level 3 Parameters) (Continued) Mnemonic Definition t318 Q.931 Resume Request state timer. Default value is 1200 (120 seconds). t319 Q.931 Suspend Request state timer. Default value is 1200 (120 seconds).
Page 336
Loop Start, FXS Loop Start, FXO Ground Start, FXS Ground Start) Dialogic's implementation of the R2 protocol contains a number of parameters that are used to configure the module to conform to the ITU recommendations (refer to ITU Blue Book, Signaling System R2, Volume VI Fascicle VI.4, Q.421 - Q.424, digital line signaling,...
The LEC protocols are described in page 264. Please contact Dialogic Technical Services and Support for a list of supported variants of the R2 protocol. See the Bfv API Reference Manual, Volume 5 for details. This section describes the general signaling model that is implemented by the Brooktrout R2 stack.
Page 338
State Idle Seize Seize Acknowledge If the call is accepted by the inbound side via the inter-register signaling, the answered state is entered. Answer Answer Answer If the call is rejected by the inbound side via the inter-register signaling, the outbound side is responsible for clearing the call.
Page 339
State Idle Disconnection initiated by the outbound side. Clear forward Release guard (Optional; refer to network specifications) Idle Channel blocking is implemented according to ITU recommendations for “both-way” trunks. The side performing the blocking is considered the inbound or backward channel. Idle Blocked Idle...
Page 340
November 2009 Information passed from the inbound side to the outbound side is: Called line condition (for example, free with change, busy, etc.) Network congestion ITU recommendations specify a set of 6 frequencies to be used for forward signals, and another 6 for backward signals. Each signal consists of 2 frequencies, thus providing 15 forward signals and 15 backward signals.
Page 341
Forward Channel (calling from number 98) November 2009 Figure 52 illustrates an example inter-register exchange in which the inbound protocol is configured to collect DNIS digits first, followed by collection of ANI information, and concluding with the exchange of DNIS category and called line condition. However, variations on this exchange are possible, resulting from different settings of the inbound protocol control parameters and the absence of certain signals in a given variant.
CAS structure. It is important that all parameters be filled. Most of the parameters are network specific and cannot be modified without resulting in protocol failure. Others are modifiable according to the requirements of the user's application. Dialogic supplies C header files that specify the parameter settings for certain national variants.
Page 343
Name r2OutSeizeTimer r2OutAnswerTimeOut inboundReleaseGuardTime inboundLineQualTimerIdle November 2009 BSMI does not support varying any parameter settings from channel to channel on a single trunk. Trunk level configuration is performed upon receipt of the first L4L3mENABLE_CAS message on that trunk. However, L4L3mENABLE_CAS must be sent for every channel in order for the channel to initialize and go on-hook.
Page 344
Name c_d_cas_bits ClearbackControl Name The Following Parameters Can Be Modified According to Application Requirements: dnisMaxNumDigits aniMaxNumDigits dnisNumDigitsBeforeANI interForwardToneTimeOut prePulseToneDelay November 2009 Table 18. R2 Digital Line Signaling Parameters (Continued) Description Specification of the CAS C bit and D bit settings. Used by the outbound side to determine whether the network will use a release...
Page 345
Name pulseToneDuration Outbound MFC Timers forwardToneMaxOnTime forwardToneMaxOffTime forwardGroup2MaxOnTime Protocol Control dnisTimeOutAction Protocol State Transition Specification Each of the following is an array of length 16. Element zero is invalid and elements 1-15 correspond to R2 MF signals 1-15. These allow the Call Setup Service Pack software to construct the proper state transition tables for a given trunk.
Page 346
Name Backward Channel Signal Definitions sendNextDigitDNIS sendLastButOneDigitDNIS sendCallCategoryAndSwitch ToGroupB_DNIS congestion sendCallingPartyCategory callComplete_ SetUpSpeechPath sendLastButTwoDigitDNIS sendLastButThreeDigitDNIS sendFirstDigitDNIS sendNextDigitANI changeFrom_ANI_To_DNIS_ SendNextDigit changeFrom_ANI_To_DNIS_ SendLastDigit November 2009 Table 19. R2 MFC Inter-register Signaling Parameters (Continued) Description Signal request for next DNIS digit (state DNIS). Signal request for last-but-one DNIS digit (state DNIS).
Page 347
Name groupB_LineConditions Call Progress Signal Generation cpSignals November 2009 Table 19. R2 MFC Inter-register Signaling Parameters (Continued) Description Structure of Group B called line conditions indexed by enumeration IISDN_R2MFCP_GROUP_B_ CALLED_LINE_CONDITIONS. Only a subset of these signals are used in a given protocol variant. Set those that are not used to the “invalid”...
Protocol Parameter Mechanics November 2009 The set of protocol parameters is specified according to a simple procedure. Individual signal meanings are set to the appropriate MF tone code. R2 MF tone codes for both forward and backward channels are defined according to the enumeration in signal is not defined for a particular variant, its value is set to zero.
Forward Channel Name PROCESS_INVALID_BACKWARD_SIGNAL PROCESS_NEXT_DNIS_DIGIT_REQUEST PROCESS_LAST_BUT_1_DNIS_DIGIT_REQUEST PROCESS_LAST_BUT_2_DNIS_DIGIT_REQUEST PROCESS_LAST_BUT_3_DNIS_DIGIT_REQUEST PROCESS_RESTART_DNIS_REQUEST PROCESS_CALL_COMPLETE_CHANGE_TO_ GROUP_B November 2009 The set of forward channel actions to backward channel signals is defined in Table Actions #2 - #8 might be used when processing DNIS or ANI digits according to a particular protocol variant.
Name PROCESS_CONGESTION_SIGNAL PROCESS_NEXT_ANI_DIGIT_REQUEST PROCESS_CALLING_PARTY_CATEGORY_ REQUEST PROCESS_CALL_ACCEPTED_NO_GROUP_B PROCESS_NATURE_OF_CIRCUIT_QUERY PROCESS_ECHO_SUPPRESSOR_QUERY PROCESS_GROUP_B_LINE_CONDITION Backward Channel November 2009 Table 21. IISDN_R2MFC_FORWARD_ACTIONS (Continued) Table 19 identifies the set of backward inter-register signals. The tones defined are those used to support DNIS and ANI services appropriate for customer premise equipment. Not all tones that are possible under the ITU recommendations are required nor implemented at this time.
Page 351
Name IISDN_R2MFCP_LINE_FREE_CHARGE IISDN_R2MFCP_LINE_FREE_NO_CHARGE IISDN_R2MFCP_LINE_ALTERNATE_ANSWER IISDN_R2MFCP_LINE_BUSY IISDN_R2MFCP_LINE_OUT_OF_ORDER IISDN_R2MFCP_LINE_UNALLOCATED IISDN_R2MFCP_LINE_CONGESTION IISDN_R2MFCP_LINE_SPARE_CONDITION_1 IISDN_R2MFCP_LINE_SPARE_CONDITION_2 IISDN_R2MFCP_LINE_SPARE_CONDITION_3 IISDN_R2MFCP_LINE_SPARE_CONDITION_4 IISDN_R2MFCP_LINE_SPARE_CONDITION_5 IISDN_R2MFCP_LINE_SPARE_CONDITION_6 IISDN_R2MFCP_LINE_SPARE_CONDITION_7 IISDN_R2MFCP_LINE_SPARE_CONDITION_8 IISDN_R2MFCP_LINE_SPARE_CONDITION_9 November 2009 Table 22 identifies the enumeration of Group B called line conditions. This enumeration forms the set of indices to array groupB_LineConditions (Table invariant enumeration values to and from the corresponding backward signal codes that vary from trunk to trunk.
Page 352
Name PROCESS_INVALID_FORWARD_SIGNAL PROCESS_DNIS_DIGIT PROCESS_DNIS_END_OF_PULSING PROCESS_CALL_CATEGORY_AND_SEND_ LINE_STATE PROCESS_CALL_CATEGORY_AND_ REJECT_CALL PROCESS_CALLING_CATEGORY_AND_ DONT_REQUEST_ANI PROCESS_CALLING_CATEGORY_AND_ REQUEST_ANI PROCESS_CALLING_CATEGORY_AND_ REJECT_CALL PROCESS_CALLING_CATEGORY_ REQUEST_DENIED PROCESS_ANI_DIGIT PROCESS_ANI_END_OF_ID PROCESS_ANI_NOT_AVAILABLE PROCESS_ANI_RESTRICTED November 2009 Table 23 identifies the set of backward channel actions to forward signals. Table 23. IISDN_R2MFCP_BACKWARD_ACTIONS Description This action is performed when the protocol cannot recover and the register must immediately release.
Page 353
Name Description freqTone1 Frequency of tone #1 powerTone1 Power of tone #1 freqTone2 Frequency of tone #2 powerTone2 Power of tone #2 Number of distinct numCadences cadences to generate (on/off pairs) makeTime1 Duration of first ON cadence Duration of first OFF breakTime1 cadence makeTime2...
Page 354
Name Description makeTime3 See makeTime1; not used if numCadences = 2 breakTime3 See breakTime1; not used if numCadences = 2 numCycles Number of cadence cycles to generate. November 2009 Table 24. IISDN_CPGEN_MF_PARAMS (Continued) Units Enabling the R2 Protocol Range 0: pattern repeats indefinitely >0: finite number of cycles...
R2 Call Control November 2009 This section presents an overview of R2 outbound and inbound call setup and tear down. LEC protocols and ISDN use a similar mechanism. Once the trunk is configured, a particular channel that is enabled is ready to dial an outbound call or process an inbound call from the network.
Outbound Call Setup November 2009 An outbound call request sequence that results in call acceptance by the remote side is illustrated in issues the module an L4L3mCALL_REQUEST message with the following R2 payload entries: l43msg.msgtype = L4L3mCALL_REQUEST; l43msg.lapdid = 0x1; l43msg.data.call_req_data.bchannel = 1;...
Page 357
November 2009 Call acceptance by the remote end is determined by BSMI during MFC inter-register signaling. At this point, BSMI issues an L3L4mALERTING message to the Host containing the IISDN_R2_ CALL_STATUS structure. The structure element l34msg.data.al_con_data.r2_call_status.call_status, provides indication (IISDN_R2_CALL_STATUS_CODES) of whether the inbound side provided a Group B line condition (IISDNR2statGROUP_B_AVAILABLE), or whether the call was accepted without such indication (IISDNR2statGROUP_A_CALL_...
Page 358
Enabling the R2 Protocol An outbound call request sequence that results in call rejection by the remote side is illustrated in Figure 54. In this case, BSMI determines that the call has been rejected during inter-register signaling and automatically clears the call request. BSMI then provides the Host indication of the failed call attempt with the L3L4mCLEAR_REQUEST message.
Inbound Call Setup l43msg.data.al_con_data.r2_call_status.group_B = IISDN_R2MFCP_LINE_FREE_NO_ CHARGE; l43msg.data.al_con_data.r2_call_status.numberRings = 2; l43msg.data.clr_data.r2_call_status.group_B = IISDN_R2MFCP_LINE_BUSY; November 2009 Inbound call setup is illustrated in receives an L3L4mPRE_SEIZE message when BSMI detects an incoming seizure. When all DNIS and ANI address information has been collected, BSMI issues an L3L4mSETUP_IND message. After examination of the address information, the host application might wish to accept or reject the call.
Page 360
November 2009 In the event that a failure occurs after the optional L3L4mPRE_ SEIZE message, but before the L3L4mSETUP_IND message, BSMI will issue an L3L4mSTATUS_IND message containing the IISDN_ R2_CALL_STATUS structure that identifies the reason for the call failure. No host action is required in this case, but the status indication is logged for informational purposes.
Call Tear Down November 2009 Figure 56 illustrates a call disconnection initiated by the network. BSMI issues an L3L4mDISCONNECT message. The host responds with a clear request that is followed with an L3L4mCLEAR_ REQUEST message when the channel has returned to the idle state. (1) L3L4mDISCONNECT (2) L4L3mCLEAR_REQUEST (3) L3L4mCLEAR_REQUEST...
Page 362
Enabling the R2 Protocol Figure 57 illustrates a call disconnection initiated by the host application. The host issues an L4L3mCLEAR_REQUEST message. BSMI responds with an L3L4mCLEAR_REQUEST message when the channel has returned to the idle state. (1) L4L3mCLEAR_REQUEST Host (2) L3L4mCLEAR_REQUEST Figure 57.
Channel Blocking November 2009 BSMI provides a mechanism for the Host application to block and unblock individual channels as well as to receive indication that the far end has blocked or unblocked a particular channel. Although the R2 protocol remains “enabled”, a blocked channel is not available for outbound or inbound calls.
Page 364
10 - Packaging Your Application for November 2009 This chapter describes how to package Dialogic® Brooktrout® software so that you can deliver it to your customers as part of your product. The chapter has the following sections: Package Options Installation...
Page 365
Library (dll) files excluding those required to develop your application Firmware files Protocol files Configuration files Dialogic® Technology Expansion Capability (TEC) tool (formerly called the TECUpdate tool) Brooktrout Configuration Tool Additional supporting utilities You can also select appropriate components of Brooktrout Fax Software and create your own installation package by: Integrating the required merge modules (*.msm file extension)
A merge module consists of a component such as a .dll file and its related files, resources, registry entries, and setup logic. To use the merge modules packaging option of Windows® Installer, Dialogic grouped features of the Brooktrout SDK into selectable modules that...
Installation Installing Modules Installing Virtual Modules (SR140) November 2009 The paragraphs in this section provide instructions for: Installing modules and virtual modules (SR140) Installing software Your customers can install either the software first or the module first. Brooktrout’s application supports both methods. In your instructions to customers, tell them to do the following if they install the module before installing software: 1.
MSI package. This section discusses these options and provides instructions to implement them. Installing the Brooktrout SDK Dialogic delivers this installation package as a Microsoft® Software Install (msi file extension) module to allow you to distribute Brooktrout runtime software and also to integrate the package within your setup (installation) program.
Page 369
Install Location File Name INSTALLDIR \: Developer_LicenseAgreement .txt All other folders are under that folder. bin\ AccuCall.exe bin\ AccuCallHelp.zip bin\ AxisClient.dll bin\ AxisTransport.dll bin\ AxisXMLParser.dll November 2009 msiexec \I boston.msi \qn INSTALLDIR=D:\ProductFolder SHOWLAUNCHPROGRAM=0 SHOWLAUNCHREADME=1. If you use your own installation program instead of boston.msi and the Brooktrout INF file to install Brooktrout files, check for the presence of Brooktrout Fax Software by examining the registry entries (see page...
Found New Hardware Wizard. This installation occurs automatically. Dialogic recommends that all the above tools/files that are provided from Dialogic be installed with your software. If your customer ever needs assistance from Dialogic to configure or troubleshoot a problem, Dialogic Technical Services and Support might ask your customer to run or view these files to ensure the configuration is set up properly.
Name Brooktrout Configuration Tool Brooktrout License Manager Key Generated Value Generated Key Generated Value Generated November 2009 Shortcuts The installation creates the following shortcut under Start –> Programs: Location The Brooktrout Configuration Tool is a utility that is used to create and modify the configuration files, edit and update the driver parameters, and configure and initialize both physical and virtual modules.
Page 375
November 2009 During the full installation of the User Interface, a dialog appears indicating that a reboot is necessary. However, if you are running a quiet installation, all dialog boxes are suppressed including the reboot dialog box. You will have to refer to the reboot values above stored in the registry to know if a reboot is necessary.
After you have included a module in your install package, any incremental version of a component in the module makes it necessary to create a new merge module. When Dialogic supplies an updated merge module, you must remove the old module and merge the new module into your existing MSI package.
Page 377
Files Installed Registry Entries Environment Variables Shortcuts Services Dependency Files Installed Registry Entries Environment Variables Shortcuts Services Dependency November 2009 The module contains the following files: File Name bostdlld.dll brkth323.dll brktsip.dll osidlld.dll bsmidlld.dll None None None None None Dynamically Linked 64-bit DLLs (dynamic_dlls_x64.msm) Merge this module to install the dynamically linked version of the 64-bit Bfv API DLLs and supporting files.
Page 378
Files Installed Registry Entries Environment Variables Shortcuts Services Dependency November 2009 Configuration and Protocol Files (configdata.msm) Merge this module to install the configuration, protocol, and font files. The module contains the following files: File Names analog_loopstart_europe.lec analog_loopstart_us.lec btcall.cfg BT_CPARM.CFG callctrl.cfg ctr21.qslac epsonec.fnt epsonec.fz8...
Page 379
Files Installed Registry Entries Environment Variables Shortcuts Services Dependency November 2009 Firmware (firmware.msm) Merge this module to install the firmware files. The module contains the following files: File Name bostvb.dll cp.bin dsp1000.hex dsp1000_ld.hex dsp1000_ud.hex dsp1000_v34.hex dsp1034_ud.hex None None None None None Installation...
Page 380
Files Installed Registry Entries Environment Variables Shortcuts Services Dependency November 2009 Configuration Tool (configtool.msm) Merge this module to install the configuration tool and its help files. The module contains the following files: File Name configtool.exe confighelp.zip RuntimeConfigtoolPath configtool.exe None Creates an advertised shortcut under Start Menu –> Program files. Shortcut Name Target Brooktrout...
Page 381
Files Installed Registry Entries Environment Variables Shortcuts Services Dependency November 2009 TECUpdate (TECUpdate.msm) Distribute TECUpdate to your end users even if you do not plan to distribute the Configuration Tool so that your customers can update their systems as needed. Merge this module to install TECUpdate utility files.
Page 382
Files Installed Registry Entries Environment Variables Shortcuts Services Dependency November 2009 License Manager (softwarelicense.msm) Distribute the License Manager to all end users so that your customers can activate a software license on a system. The License Manager validates the license activated by the customer and turns on the Brooktrout product functionality.
Page 383
Files Installed Registry Entries Environment Variables Shortcuts Services Dependency November 2009 Utility Programs (utilities.msm) Merge this module to install the utility programs used for querying hardware and software information, downloading firmware and performing other related tasks. The module contains the following files: File Name AccuCall.exe AccuCallHelp.zip...
Page 384
Files Installed Registry Entries Name btcall firmware_path Environment Variables Shortcuts Services Dependency November 2009 Boston Host Service (bostsrv.msm) Merge this module to install and register the Boston Host Service. The module contains the following files: File File Name Number bostsrv.exe bostsrv.dll The bostsrv.msm module creates the following registry entry.
Note: The design of the Brooktrout merge modules excludes any dependencies due to a defect in the InstallShield Developer 8.0 IDE. This defect prevents a developer (Dialogic (formerly Brooktrout) as the developer of the merge modules) from setting the destination path of dependent merge modules.
Page 386
November 2009 The Brooktrout merge modules consist of: dynamic_dlls.msm (independent module) dynamic_dlls_x64.msm (independent modules) configdata.msm (independent module) firmware.msm (independent module) configtool.msm (module with dependencies) softwarelicense.msm (independent module) utilities.msm (module with dependencies) bostsrv.msm (module with dependencies) TECUpdate.msn (independent module) You can only install the independent modules as individual features that do not require any other component or feature.
Page 387
CASE I CASE II CASE III November 2009 linking to the DLLs. With the system variable set, you can simply append the absolute path to these files to the Path environment variable. You can also add the destination location of *.exe files within the merge modules to the system path so that they are executed from anywhere on your system.
Page 388
Installation Figure 59. Merging Modules into a Single Feature November 2009...
Page 389
Installation Figure 60. Merging Modules into Multiple Features November 2009...
About Plug and Play Components November 2009 Plug and Play happens outside the process of the application that uses the drivers. The Brooktrout SDK includes Plug and Play compatible drivers and the INF file. The INF file contains essential information needed for the Windows® Class Installers to correctly identify components in an INF file and install them.
Page 391
Brooktrout Fax Software. Dialogic does recommend that the only driver settings that you do change are the History Enable, and History Size. However, your changes will only take effect by rebooting the system or by using the Brooktrout Configuration Tool.
Plug and Play Installation Scenarios November 2009 Table 26. Brooktrout Plug and Play Components Reference Device Function Driver INF File Device Co-Installer Device Property Page Brooktrout Catalog File Driver Symbol File The following flowcharts show two scenarios that your users might follow when they install the Brooktrout hardware with your application.
Page 393
User places Board in server Plug and Play Manager finds board Plug and Play Manager creates "Brooktrout Hardware" class Device Co-installer (brktBdevco.dlll) receives the call Do you wish to install? November 2009 Scenario 1 shows the install process beginning with installing the module.
Page 394
User installs Brooktrout software Plug and Play Manager creates "Brooktrout Hardware" class Device Co-installer (brktBdevco.dlll) receives the call November 2009 Scenario 2 shows the install process beginning with installing the software and then installing the module. User places User opts to Board in server search for driver files on CD-ROM...
Structure of the Brooktrout PnP Folder About the INF File November 2009 The Brooktrout PnP folder has the following structure: | brooktrout.cat | trxstream.inf |- TRxStream |- x86 | boston.sys | boston.pdb | brktBdevpp.dll | brktBdevco.dll |- x64 | boston.sys | boston.pdb | brktBdevpp.dll | brktBdevco.dll...
About the Dialogic® Brooktrout® Plug and Play Co-Installer November 2009 Once you identify the INF file (specifically trxstream.inf), the following actions occur. For an authoritative description of the Plug and Play install process always use information from Microsoft (available at MSDN).
Page 397
About Plug and Play Components Automatically launches the Brooktrout Configuration Tool For details about the install package and the configuration tool, see the installation and configuration guide that came with your software. Use the next paragraphs to understand the role that the co-installer page plays in Plug and Play operating systems.
About the Device Property Page November 2009 displayed, and it instead signals the process level event. The configuration tool (upon getting unblocked because the event got signaled rather than timing out) resets the timer and waits for the event again. This process continues until the co-installer does not signal anymore;...
Page 399
About Plug and Play Components The Brooktrout Device Manager Property Page is a custom DLL (brktBdevpp.dll) that provides basic integration with Microsoft® Management Console. Its primary function displays feature information and its secondary function provides the option to launch the Brooktrout Configuration Tool. November 2009...
Modifying Configuration Files November 2009 This section describes each of the configuration files. You can edit the configuration files with a standard text editor or you can use the Brooktrout Configuration Tool to make changes (see the installation and configuration guide that came with your software). Assuming the default installation, the configuration files are located in Brooktrout\Boston\config.
User-Defined Configuration File (btcall.cfg) Parameter Description did_digits This DID digit detection parameter has been modified and moved to the callctrl.cfg file. did_variable This DID digit detection parameter has been modified and moved to the callctrl.cfg file. digital The call control (callctrl.cfg) configuration file replaces the configuration file defined by the digital parameter.
Call Control (callctrl.cfg) Configuration File Including the Brooktrout Configuration Tool November 2009 This file contains configuration parameters that define how you want the Bfv API to configure the modules for call control. For details about parameters and valid values, see the Bfv API Reference Manual, Volume 6, Appendix A, Configuration Files.
Downloading Firmware Files November 2009 In addition to installing the software, you must: Update the boot ROM flash memory Download the firmware files Optionally configure the call control parameters. The Configuration Tool can only be used to start the Boston Host Service and to configure the call control parameters;...
Removing Software November 2009 The Add/Remove Programs selection on the Windows® Control Panel screen provides options to initiate the following on the installed components for the package (see Uninstalling or Modifying the Software in the installation and configuration guide that came with your software): Modify –...
Removing the Plug and Play Driver For Earlier Versions (Prior to 5.2) November 2009 Installing a Brooktrout device using the Plug and Play Manager ( Found New Hardware Wizard ) creates some backup files and registry entries. The Windows® Plug and Play Manager uses this information to automatically install the device on rebooting.
For Version 5.2 November 2009 This value contains the name of the backup copy of the trxstream.inf file that Windows® created during device installation under C:\WINNT\INF. 8. Delete the INF file of this name from C:\WINNT\INF along with the corresponding PNF file. Except for the extension, the INF file and the PNF file have the same names.
Page 407
November 2009 7. Examine the registry value InfPath located under HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ Control\Class\{8CF4CA66-A2CC-48FA-BC1D- 6A64E47F6D27}. 8. Search for the first key which contains the following values: DriverDesc=Brooktrout TRxStream Board This key should contain the name of the backup copy of the trxstream.inf file that Windows® created during the device installation under C:\winnt\INF 9.
Appendix A G3 Legacy Utilities This appendix describes legacy utilities that help manipulate raw G3 fax files. The utilities described in this chapter permit you to manipulate raw G3 fax files (rather than infopkt-formatted files) from the command line. These are legacy utilities that are provided to users who need to manipulate raw G3 files.
Page 409
ASCII to Fax Conversion Utility Cut and Paste Utilities Epson to Fax Conversion Utility Fax Display and Edit Utility G3 Conversion Utility Print Utility November 2009 The G3 utilities include: Converts ASCII text files to Brooktrout G3 fax image files. Used in conjunction, removes parts of fax images and stores them in a separate file and recombines them into another file.
ASCII to Fax Conversion Utility (asctog3) November 2009 Converts ASCII text files to Brooktrout Group 3 fax image files. Although this utility is included, in most cases ASCII file transmission is better accomplished utilizing the ability of the Brooktrout fax modules to convert ASCII to G3 on-the-fly. This is a legacy utility.
Cut and Paste Utilities Cut Utility (g3chop) -ifile1.301 (input file) Specifies the name of the file to chop. -ofile2.301 (output file) Specifies the name of the output file which November 2009 The next two utility commands, g3chop and g3combin, permit cutting and pasting of fax images at the command line.
Paste Utility (g3combin) g3combin <file1.301> <file2.301> <file3.301> [-l] [-s] [-pad] November 2009 Combines portions of Brooktrout Group 3 fax files, and, although it is most commonly used to create letterhead and signature files, it can combine all types of fax files. Although this utility is included, in most cases combining fax files is better accomplished using infopkt files.
Epson to Fax Conversion Utility (epstog3) November 2009 Converts Epson print files to Brooktrout Group 3 fax images and provides complete emulation of the Epson-LX80 printer (including bold, italics and graphics). Command Syntax epstog3 argument-list Where: (input file) Specifies the input printer file (Epson-format) and optional path name.
Page 414
November 2009 The epstog3 utility displays help information on converting graphics files to fax image files, on the command line. Note: Fonts must be located in the current directory for all platforms except those platforms that use MS-DOS executables (Windows® NT, Windows® 2000). For these cases, the fonts must be located either in the font subdirectory of the directory named by the FMAIL environment variable, if it is set, or in the boston\bfv.api\fonts directory.
Fax Display and Edit Utility: Supershow (ss) ss[-[r][h va]][-xs#][-ys#][-x#][-y#][-w#][-m#] -ifilename November 2009 Displays a fax file on screen for viewing and editing. Editing options include scaling, rotating, and reversing video. Note: Supershow does not scale images automatically to maintain aspect ratios or to fit images on the screen. Each pixel in the file corresponds to one pixel on the screen.
Page 416
November 2009 Specifies the X-offset. Units are in tenths of an inch. Specifies the Y-offset. Units are in tenths of an inch. Specifies the X scale factor. Values are 1, 2, or 3. Specifies the Y scale factor. Values are 1, 2, or 3. Specifies the width (0 = A4, 1 = B4, 2 = A3) and overrides the header.
G3 Conversion Utility (g3cvt) November 2009 Converts a raw fax file between any of these formats—MH, MR, MMR, PCX, and bitmap. It accepts files that use either MSB or LSB bit order, and (optionally) skips past a Brooktrout 128-byte header. Output from this utility does not contain a 128-byte Brooktrout header.
Page 418
November 2009 Causes g3cvt to copy the first 128 bytes of the input file to the output file, with no conversion. Specifies fine resolution input. Used with MR or PCX output only. MR output—The program represents the data slightly differently and more efficiently when it knows the input is in fine resolution.
Print Utility (p) p [-ppmode] [-xXOFF] [-yYOFF] [-xsXSCALE][-ysYSCALE] [-paper[A4/LET]] [-w[width]] November 2009 Prints the fax file to any one of several printers. Command Syntax p argument-list Where: (print mode) Indicates the printer and resolution to use -ppmode for printing: where pmode is the character string that defines the print mode and is one of the following: plsd phsd...
Page 420
November 2009 (y offset) Selects a Y direction offset in tenths of inches. -yYOFF Only the portion of the image below this position is displayed. (x scale factor) Selects an X direction scale factor in 5% -xsXSCALE increments. The image is scaled to this factor of its original size in the X direction.
Page 422
Recompiling On Linux Platforms November 2008 This appendix provides instructions for recompiling the Boston driver to support new kernel patches. Use the instructions below to recompile the Boston driver on supported Linux platforms so that the driver can operate with any kernel patch for supported Linux versions.
Page 423
November 2009 Each of these directories also contains a file named bostbase.a, which is a library containing precompiled object files compiled for that same kernel version, variant, and architecture. The driver/linux/kernel directory contains files named kerndep.c, kerndep.h, and makefile.kerndep. Before building a Brooktrout driver for a patch version, install the kernel source, the compiler, and other standard development tools on the system.
Page 424
Linux compiler version: Directory 3.4 contains files for Enterprise Linux ES/AS 4.0 Directory 4.1 contains files for Enterprise Linux ES/AS 5.0 Refer to the Dialogic® Brooktrout® Fax Products SDK Installation and Configuration Guide for the details of each directory. November 2009...
Channel External-Telephony Mode Facility HDLC ISDN November 2009 Application Programming Interface Automatic Speech Recognition A logical channel of operations provided by a Boston module. See logical channel number, ordinal channel number, work channel. Echo cancellation Using the Bfv API directly instead of a speech engine API to perform call control (Mixed Mode) A software entity responsible for a set of related functions that provide services to the host, e.g., fax facility and voice facility.
Page 427
lapdid Line Logical channel number Millennium Address Module NVRAM Ordinal channel number Packet Port November 2009 The term lapdid has its origins with the LAP-D protocol used for call control, but has an extended meaning for Brooktrout products. For call control for all protocols, trunk 1 = lapdid 0, trunk 2 = lapdid 2, trunk 3 = lapdid 4 and trunk 4 = lapdid 6.
Page 428
Stream T1/E1 span Time slot Unit number Work channel November 2009 A logical data entity that corresponds to a physical data line on a TDM bus. The set of slots that comprises one T1 (24) or one E1 (30) line. The spans are numbered starting at 1.
About merge modules Accessing the telephone system Active redirecting for Japan (call transfer) Add/Remove Programs Removing packaged software Administration, management and configuration Bfv functions Administrative channels ALERTING Q.931 message 318, API debug mode parsed commands in output app.src directory Applications accessing infopkt streams from accessing TIFF-F files developing using Bfv API...
Page 431
Checking for presence of BSMI API Boston Simple Message Interface call control control messages BT_CPARM.CFG file btcall.cfg configuration files Modifying for packaging software BTLINE structure 25, btver program debugging tool using call clearing initiated by the board initiated by the network Call control Bfv API BSMI API...
Page 432
dfax program Diagnostic utilities, tracing messages Dialing restrictions dialing ISDN overlapped Dialing database functions digits dial pulse 269, timers DISCONNECT Q.931 message 323, Disconnecting resources Two-channel call transfers Distributing software Installation package dlfax program Downloading ASCII fonts feature set data firmware 148, driver recompiling for different Linux versions dstrip program...
Page 433
full duplex call transfer, see Two-channel call transfers Functions administration and initialization board status and monitoring configuration debugging and error handling file format manipulation firmware high-level high-level fax low-level low-level fax mid-level mid-level fax miscellaneous FXO signaling FXS signaling G3 Conversion Utility G3 utilities ASCII to fax conversion utility(asctog3) cut (g3chop)
Page 434
Installing merge modules Instant ISDN Software, Layer 2 and Layer 3 parameters Integrating Brooktrout software with your software Integrating merge modules 385–389 Receiving IP Calls Sending IP Calls ipstrip program ISDN calls call clearing dialing long numbers incoming call handling outgoing call handling Overlapped dialing ivr program...
Page 435
firmware miscellaneous Making registry entries Maximum transmit window (K) Media processing Bfv functions types of applications Merge modules About the feature Defining file locations Dependent Feature content Independent Installing Integrating 385–389 Merging examples 387–389 msm files 376–384 Registry entry Messages header recording and playing MF tone...
Page 436
Installation flowcharts Installation package InstallHome Path Instructions for installing boards Instructions for Plug and play drivers. Integrating software isdn parameter Launching the Configuration Tool Making registry entries Merge module 366, modifying btcall.cfg Modifying Configuration Files nrings parameter Package options Plug and Play Co-Installer Registry file locations Removing Software Removing the Plug and play driver...
Page 437
Release Link Trunk RELEASE Q.931 message 324, Remote fax node parameters Remote logging, turn on Removing Software, for packaged software RES structure Resource connection type, two-channel call transfers Resources Connecting for two-channel call transfers Source and destination resources for two-channel call transfers Return values for Bfv API functions Robbed bit signaling, guard timing 325,...
Page 438
Spawning Installation package Speech infopkt parameters recording and playing 139, 167, 169, recording and playing wave files Status information, fax Storing information about a channel Streams, definition Structures Supershow (ss) display and edit utility Switched 56 calls, guard timing Syntax, defining boston.msi properties System Packaging requirements Packaging software files...
Page 439
BfvCallSWConnect BfvCallSWGetConns BfvCallSWGetInfo Conditions for termination Configuring echo cancellation Connecting resources Connection type Defining source and destination resources Disconnecting resources 194, Echo cancellation Noise when terminating the full duplex connection Removing conflicting connections Resources Restoring echo canceler defaults after termination Setting up Source code for disconnecting resources Source code for echo cancellation...
Need help?
Do you have a question about the 6.2 and is the answer not in the manual?
Questions and answers