Dialogic 6.2 User Manual

Dialogic fax machine user manual
Table of Contents

Advertisement

Quick Links

Dialogic® Brooktrout® Fax Products SDK
Developer Guide
Release 6.2
November 2009
931-132-06
www.dialogic.com

Advertisement

Table of Contents
loading
Need help?

Need help?

Do you have a question about the 6.2 and is the answer not in the manual?

Questions and answers

Summary of Contents for Dialogic 6.2

  • Page 1 Dialogic® Brooktrout® Fax Products SDK Developer Guide Release 6.2 November 2009 931-132-06 www.dialogic.com...
  • 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 4 page 4...
  • 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...
  • Page 6: Table Of Contents

    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 9 boardmon ............. . 127 btver .
  • Page 10 tones ..............161 transfer .
  • 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 13 Outgoing Call Processing Call Teardown Processing FXS Ground Start Incoming Call Processing Outgoing Call Processing Call Teardown Processing Loop Start Signaling ............302 FXO Loop Start .
  • 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 –...
  • Page 16: Chapter 1 - About This Publication

    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®...
  • Page 17: Related Documents

    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.
  • Page 19: Updated Terminology

    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...
  • Page 21: Getting Technical Support

    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/...
  • Page 22: Bfv Api

    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...
  • Page 23: Bfv Api And Associated Libraries

    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.
  • Page 26: The Bfv Api Functions

    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...
  • Page 27: Administration, Management, And Configuration

    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.
  • Page 30: Channel Numbering

    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.
  • Page 31: Firmware Functions And Macros

    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.
  • Page 33: Module Status And Monitoring Functions

    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_...;...
  • Page 35: Miscellaneous Functions And Macros

    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;...
  • Page 36: Call Control

    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.
  • Page 38: Media Processing

    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.
  • Page 39: Voice Record And Play

    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.
  • Page 40: Fax Functions

    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.
  • Page 42: File Format Manipulation Functions

    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.
  • Page 47: The Infopkt Stream

    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.
  • Page 52: Fax Infopkt Parameters

    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...
  • Page 56: Chapter 3 - Developing Applications Using The Bfv Api

    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...
  • Page 57: Developing A Voice Application

    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.
  • Page 58: Recording Voice

    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...
  • Page 59: Playing Back The Voice Message

    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).
  • Page 60: Using The Mkprompt Utility

    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.
  • Page 61: Updating An Existing Prompt File

    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.
  • Page 62: Sending A Fax From One Channel To Another

    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...
  • Page 63: Sending A Fax To A Channel From An External Fax Machine

    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.
  • Page 64: Using Bfv Api Fax Functions

    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);...
  • Page 70: Sending A Fax Using Function Calls For Noninfopkt-Formatted Raw G3 Files

    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);...
  • Page 73: Receiving A Fax Using Function Calls For Noninfopkt-Formatted Raw G3 Files

    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.
  • Page 75: Sending A Fax Using Calls For Tiff-F Files

    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);...
  • Page 76: Receiving A Fax Using Calls For Tiff-F Files

    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);...
  • Page 78: Receiving And Storing A Fax In Mmr Or Mr Format

    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.
  • Page 83: Accessing An Infopkt Stream From An Application

    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.
  • Page 84: Sending A Tiff-F Fax File Within An Infopkt Stream

    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;...
  • Page 87: Accessing A Tiff-F File From An Application

    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.
  • Page 89: Determining Fax Status Information From An Application

    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;...
  • Page 91: Chapter 4 - Debugging

    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...
  • Page 92: Bfv Api Debug Mode

    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...
  • Page 93: Bfvlinedumpstructure

    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.
  • Page 94: Invoking Dump History

    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...
  • Page 96: Interpreting The Output

    Interpreting the Output Hist Mod 1/Chan 1 Mon Jun 14:02:20.28.0000827C "PIPR: GDI_PHY_PIPR_MsgReceive (01 01 02 01)" 14:02:20.28.0000827D "PIPR: fnGenericPIPR_MsgReceive (01 01 02 01) NQ = 1 HQ = 0" 14:02:20.28.0000827E "PIPR: fnGenericPIPR_MsgReceive BufID = 518 (01 01 02 01) exit: norml msg" 14:02:20.28.0000827F "PIPR: GDI_PHY_PIPR_MsgReceive (01 01 02 01) exit: GDI_STS_OK"...
  • Page 97: Status Header Line

    14:02:20.52.00008291 "M2: Queued incoming packet" Pkt bytes: 17 00 24 02 02 FE 01 01 01 02 01 0C 00 08 03 04 79 01 00 00 04 09 01 00 00 LE (01) ADMIN (08) EVENT (03) FW_DOWNLOAD_FINISHED (79) CURRENT_STREAM [01: Fix Uns Short Unitless] 0000 (09) DOWNLOAD_RESULT [01: Fix Uns Short Unitless] 0000 14:02:20.52.00008292 "PIPR: GDI_PHY_PIPR_MsgSend"...
  • Page 98: Timing Information

    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).
  • Page 100: Utility Programs For Debugging

    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.
  • Page 101: Bsmi Debugging

    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 102 Ch# Time --- ----- -------- ---- ---- --- -------- ---- ---- --- ------ 03 23B4 03 23BB 03 23BB 03 23C1 03 278D 03 27C2 03 27C2 03 27DD 03 27DD 03 27FB 03 27FB 03 280C 03 2E43 03 2E5E 03 2E5E 03 2E71 00 09F3...
  • 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).
  • Page 104: Understanding Trace Hexadecimal Strings

    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...
  • Page 110: Vtty Tracing Feature

    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.
  • Page 111: Vtty Console Commands

    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.
  • Page 112: Vtty Tracer Gui

    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.
  • Page 113: Connecting To A Module

    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.
  • Page 118: Call Tracer

    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.
  • Page 119: Command Syntax

    Command Syntax -o <path_string> -i <path_string> -t <duration/sec> -x <max_file_size> -n <max_num_files> November 2009 brktcctrace [-o <path_string>] [-i <path_string>] [-t <duration/sec>] [-x <max_file_size>] [-n <max_num_files>] [-h] Arguments Fully qualified path of the output file/log file including the log filename. example: c:\Brooktrout\brktlog_xxx.txt, where xxx is the client port number.
  • Page 120: Configuration File Format

    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 122 November 2009 #------------------------------------------------------- # ECC Legal Values # NONE # ERROR # WARNING # BASIC # VERBOSE #------------------------------------------------------- ECC.ECC_API = NONE ECC.ECC_HOST_MODULE = NONE ECC.ECC_INTERNAL = NONE ECC.ECC_IP_STACK = NONE ECC.ECC_L3L4 = NONE ECC.ECC_L4L3 = NONE #------------------------------------------------------- # QSIG Legal Values # ON # OFF #-------------------------------------------------------...
  • 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...
  • Page 127: Chapter 5 - Sample Applications And Utilities

    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.
  • Page 129: Btver

    Board Temperature: 105.8F Ethernet link 0: UP Mod 0x03 Span 1 No Alarms Ch: 1 In: a.aa .aaa aaaa .aaa aa.a aaa. b.bb .bbb bbbb .bbb bb.b bbb. c.cc .ccc cccc .ccc cc.c ccc. d.dd .ddd dddd .ddd dd.d ddd. Out: A.AA .AAA AAAA .AAA AA.A AAA.
  • Page 130: Connlist

    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.
  • Page 131: Csend

    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.
  • Page 132: Deact

    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...
  • Page 134: Debug_Control

    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]]...
  • Page 135: Decode

    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.
  • Page 136: Dfax

    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.
  • Page 137: Dlfax

    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>...
  • Page 138: Dstrip

    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>...
  • Page 139: Eccllvoice

    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.
  • Page 140: Fax

    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...
  • Page 141: Faxhl

    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>...
  • Page 142: Faxll

    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.
  • Page 144: Faxml

    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.
  • Page 145: Faxp

    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.
  • Page 146: Feature

    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...
  • Page 148: Firm

    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...
  • Page 149: Firmload

    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.
  • Page 150: Font

    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...
  • Page 151: Ipstrip

    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.
  • Page 152: Ivr

    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.
  • Page 153: Mkinfopk

    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.
  • Page 155: Mkprompt

    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>...
  • Page 156: Modinfo

    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.
  • Page 157: Playp

    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.
  • Page 158: Shoparam

    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.
  • Page 159: Telsave

    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.
  • Page 160: Tfax

    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.
  • Page 161: Tones

    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.
  • Page 163: Transferll

    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.
  • Page 165: Trombone

    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.
  • Page 166: Tstrip

    (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.
  • Page 167: Voice

    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.
  • Page 169: Voiceraw

    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.
  • Page 170: Wave

    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.
  • Page 172: Compiling Sample Applications Using Microsoft® Developer Studio Project Files

    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.
  • Page 173: Using Brooktrout Files

    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.
  • Page 174: Compiling Sample Applications Using Makefiles

    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.
  • Page 175: Combining The Sample Applications

    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.
  • Page 176: This Chapter Describes Transferring Calls Using The Bfv Api-Level And

    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”...
  • Page 177: Making Call Transfers Using Bfv

    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...
  • Page 180: Making Hookflash Transfers

    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 .
  • Page 181: Using Bsmi Applications

    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...
  • Page 182: Making Two B-Channel Transfers

    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.
  • Page 184: Making Call Transfers Using Qsig

    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.
  • Page 187: Making Call Transfers Using Active Redirection (Japan)

    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.
  • Page 188: Making Explicit Call Transfers (Ect) With E1 Isdn And 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.
  • Page 190: Making Two-Channel Call Transfers (Tromboning)

    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.
  • Page 191: Setting Up The Two-Channel Call Transfer

    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.
  • Page 194: Actions During A Two-Channel Call Transfer

    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...
  • Page 197: Playing Back Voice Recordings

    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.
  • Page 199: Terminating The Two-Channel Call Transfer

    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.
  • Page 200: Disconnecting Resources

    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).
  • Page 202: Using Bfv Applications

    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.
  • Page 203: Using Bsmi Applications

    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).
  • Page 204: Call Control Sequence Diagrams

    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.
  • Page 205: Rlt Call Transfer

    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.
  • Page 207: Sample Application

    Sample Application /***********************************************************************/ /********** send_call_req /***********************************************************************/ void send_call_req(int spyder_chan,int bchan,unsigned char rlt) L4_to_L3_struct L4_to_L3_struct L4L3cntlp = &msg; /* Populate the header stuff here */ zero_msg(L4L3cntlp); L4L3cntlp->lapdid = spyder_chan; L4L3cntlp->msgtype = L4L3mCALL_REQUEST; L4L3cntlp->L4_ref = 1; L4L3cntlp->call_ref = 0; /* Populate the call request stuff here */ L4L3cntlp->data.call_req_data.bchannel = bchan;...
  • Page 208 /***********************************************************************/ /********** Send alerting /***********************************************************************/ void send_alert(int spy_chan, int call_ref) L4_to_L3_struct L4_to_L3_struct L4L3cntlp = &msg; zero_msg(L4L3cntlp); L4L3cntlp->lapdid = spy_chan; L4L3cntlp->L4_ref = 0; L4L3cntlp->call_ref = call_ref; printf("%d: Snd L4L3mALERTING_REQUEST \n", spy_chan); L4L3cntlp->msgtype = L4L3mALERTING_REQUEST; if (spy_chan == NETWORK) /* we know the net is sending a facility */ L4L3cntlp->data.al_con_data.interface= 0xff;...
  • Page 209 /***********************************************************************/ /************** Send facility ****/ /***********************************************************************/ /* Send L4L3mFACILITY */ void send_facility(int spy_chan, int call_ref) L4_to_L3_struct L4_to_L3_struct unsigned char*ieptr; L4L3cntlp = &msg; zero_msg(L4L3cntlp); L4L3cntlp->lapdid = spy_chan; L4L3cntlp->L4_ref = 0; L4L3cntlp->call_ref = call_ref; L4L3cntlp->msgtype = L4L3mFACILITY_REQUEST; printf("%d: Snd L4L3mFACILITY_REQUEST\n", spy_chan); L4L3cntlp->data.facility_data.call_id.len = 1; L4L3cntlp->data.facility_data.call_id.call_id[0]= 2;...
  • Page 210: Placing Calls On Hold Using Bsmi

    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...
  • Page 215: Managing Calls Using Ip Telephony

    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.
  • Page 216: Adding Ip Call Control Using The Bfv Api

    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®...
  • Page 217: Outgoing Ip Calls

    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.
  • Page 218: Incoming Ip Calls

    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.
  • Page 219: Understanding Sip Functionality

    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 222: Sample Invite Request

    CALL CONTROL CONFIGURATION FILE l3l4_trace=none l4l3_trace=none api_trace=none internal_trace=none host_module_trace=none ip_stack_trace=none trace_file=c:\brooktrout\boston\config\ecc.log [module.2] [module.2/clock_config] clock_mode=master clock_source=internal [module.2/ethernet.1] dhcp=disabled ip_address=208.129.52.105 ip_netmask=255.255.255.0 ip_gateway=208.129.52.254 ip_broadcast=208.129.52.255 ip_arp_timeout=600 media_port_min=56000 media_port_max=57000 ethernet_speed=100 [module.2/host_cc.1] host_module=1 number_of_channels=10 [host_module.1] enabled=true module_library=c:\brooktrout\boston\bin\brktsip.dll [host_module.1/parameters] sip_max_sessions=8 sip_registration_interval=60 sip_Max-Forwards=20 sip_From=user@brooktrout.com sip_username=username sip_session_name=session_name sip_session_description=session_description sip_description_URI=user@brooktrout.com sip_email=email@brooktrout.com sip_phone=+1-4085551212 November 2009...
  • Page 223 [host_module.1/t38parameters] t38_max_bit_rate=14400 t38_fax_fill_bit_removal=false t38_fax_transcoding_MMR=false 38_fax_transcoding_JBIG=false t38_fax_rate_management=transferredTCF t38_fax_udp_EC=t38UDPRedundancy t38_UDPTL_redundancy_depth_image=2 t38_UDPTL_redundancy_depth_control=1 t38_t30_fast_notify=false BFV APPLICATION BT_ZERO(args); args.phonenum = “john.brooktrout.com” args.call_protocol_code = CALL_PROTOCOL_FAX BfvLineOriginateCall(lp, &args); SIP INVITE INVITE sip:john.brooktrout.com SIP/2.0 From: <sip:user@brooktrout.com>;tag=0-13c4-40aa926b-1b5fbbff-974 To: <sip:john.brooktrout.com> Call-ID: 47081b4-0-13c4-40aa926b-1b5fbbeb-2086@brooktrout.com CSeq: 1 INVITE Via: SIP/2.0/UDP 208.129.16.72:5060;branch=z9hG4bK-40aa926b-1b5fbbff-e9d Contact: <sip:208.129.16.72> Max-Forwards: 20 Content-Type: application/SDP 10 Content-Length: 452...
  • 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.
  • Page 225: Call Progress Values

    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.
  • Page 226: Understanding H.323 Functionality

    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.
  • Page 227: Using H.323 Address Forms

    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...
  • Page 230: Failover Based On Telephony Cause Codes

    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.
  • Page 232: Failover Scenarios

    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.
  • Page 233: Known Failures From Various Gateways

    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...
  • Page 236: Sip To Q.931 Conversion

    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...
  • Page 238: Processing Media Using The T.38 Protocol

    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.
  • Page 241: Sending And Receiving Faxes

    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.
  • Page 242: Configuring T.38, Rtp And Ip Call Control Activities

    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...
  • Page 243: Troubleshooting

    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.
  • Page 244: Understanding The Sip Protocol

    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.
  • Page 245: Overview Of Sip Functionality

    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...
  • Page 247: Overview Of Operation

    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.
  • Page 256: Using Third Party Ip Stacks

    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.
  • Page 257: Integrating Bfv Ip Fax

    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...
  • Page 258: Components

    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...
  • Page 259: Sr140 Software-Based Integration - Linux

    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®...
  • Page 260: Tr1034 Board-Based Integration - Linux

    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.
  • Page 261: Call Negotiation

    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...
  • Page 263: Outbound Call

    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.
  • Page 264: Chapter 8 – Robbed Bit Signaling

    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.
  • Page 268: Timer Definitions

    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.
  • Page 275: Timing Diagrams

    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.
  • Page 276: Wink Start & Delay Dial Signaling

    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.
  • Page 277: Incoming Call Processing

    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.
  • Page 278 Wink Start & Delay Dial Signaling Revised 20-Oct-03 Rev 1.4 Figure 25. Wink Start and Delay Dial – Incoming Call Timing November 2009...
  • Page 279: Outgoing Call Processing

    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.
  • Page 280 Wink Start & Delay Dial Signaling Revised 20-Oct-03 Rev 1.4 Figure 26. Wink Start and Delay Dial – Outgoing Call Timing November 2009...
  • Page 281: Incoming Call Processing

    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...
  • Page 283: Outgoing Call Processing

    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...
  • Page 285: Incoming Call Processing (Immediate Start)

    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.
  • Page 286 Immediate Start/Fixed Pause Signaling Revised 20-Oct-03 Rev 1.4 Figure 29. Immediate Start – Incoming Call Timing Diagram November 2009...
  • Page 287: Call Teardown Processing

    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.
  • Page 288 Immediate Start/Fixed Pause Signaling Revised 20-Oct-03 Rev 1.4 Figure 30. Fixed Pause – Outgoing Call Timing Diagram November 2009...
  • Page 289: Ground Start Signaling

    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...
  • Page 291 Ground Start Signaling Revised 20-Oct-03 Rev 1.4 Figure 31. FXO Ground Start – Incoming Call Timing Diagram November 2009...
  • Page 292: Outgoing Call Processing

    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.
  • Page 293 Ground Start Signaling Revised 20-Oct-03 Rev 1.4 Figure 32. FXO Ground Start – Outgoing Call Timing Diagram November 2009...
  • Page 294 Ground Start Signaling Revised 20-Oct-03 Rev 1.4 Figure 33. FXO Ground Start - Incoming Clear Timing Diagram November 2009...
  • Page 295 Ground Start Signaling Revised 20-Oct-03 Rev 1.4 Figure 34. FXO Ground Start - Outgoing Clear Timing Diagram November 2009...
  • Page 296: Incoming Call Processing

    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)
  • Page 297 Ground Start Signaling Figure 35. FXS Ground Start – Incoming Call Timing Diagram November 2009...
  • Page 298: Outgoing Call Processing

    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.
  • Page 299 Ground Start Signaling Figure 36. FXS Ground Start – Outgoing Call Timing Diagram November 2009...
  • Page 300 Ground Start Signaling Figure 37. FXS Ground Start - Incoming Clear Timing Diagram November 2009...
  • Page 301 Ground Start Signaling Figure 38. FXS Ground Start - Outgoing Clear Timing Diagram November 2009...
  • Page 302: Loop Start Signaling

    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.
  • Page 303: Fxo Loop Start

    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)
  • Page 304: Call Teardown Processing

    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;...
  • Page 305 Loop Start Signaling Figure 39. FXO Loop Start – Incoming Call Timing Diagram November 2009...
  • Page 306 Loop Start Signaling Figure 40. FXO Loop Start – Outgoing Call Timing Diagram November 2009...
  • Page 307 Loop Start Signaling Figure 41. FXO Loop Start – Outgoing Clear Timing Diagram November 2009...
  • Page 308 Loop Start Signaling Figure 42. FXO Loop Start – Incoming Clear Timing Diagram November 2009...
  • Page 309: Incoming Call Processing

    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)
  • Page 310: Call Teardown Processing

    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 311 Loop Start Signaling Figure 43. FXS Loop Start – Incoming Call Timing Diagram November 2009...
  • Page 312 Loop Start Signaling Figure 44. FXS Loop Start – Outgoing Call Timing Diagram November 2009...
  • Page 313 Loop Start Signaling Figure 45. FXS Loop Start – Outgoing Clear Timing Diagram November 2009...
  • Page 314 Loop Start Signaling Figure 46. Non-FXO/FXS RBS Protocols - Incoming Clear Timing Diagram November 2009...
  • Page 315 Loop Start Signaling Figure 47. Non-FXO/FXS RBS Protocols - Outgoing Clear Timing Diagram November 2009...
  • 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) –...
  • Page 318: Isdn Call Processing Overview

    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.
  • Page 321: Making An Isdn Outgoing Call

    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.
  • Page 323: Isdn Call Clearing - Initiated By Module

    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...
  • Page 325: Isdn Call Clearing - Initiated By Network

    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.
  • Page 327: Translating Q.931 To Simple Message Interface

    Translating Q.931 to Simple Message Interface Q.931Message ALERTing CALL PROCeeding CONNect CONNect ACKnowledge PROGress SETUP SETUP ACKnowledge RESume RESume REJect SUSPend SUSPend ACKnowledge SUSPend REJect USER INFOmation DISConnect RELease RELease COMPlete RESTart November 2009 Table 14 translates Q.931 messages to the appropriate Simple Message Interface (SMI) message and compares them to their corresponding message.
  • Page 328: Using The Overlap_Rcv Feature Of L4L3Menable_Protocol

    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...
  • Page 329: Bsmi Reference Notes

    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_...
  • Page 330: Chapter 9 – Isdn Call Processing And Management

    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.
  • Page 332: Q.921/Q.931 Timers

    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,...
  • Page 337: Cpe Signaling Model

    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.
  • Page 342: Enabling The R2 Protocol

    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”...
  • Page 348: Protocol Parameter Mechanics

    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.
  • Page 349: Forward Channel

    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.
  • Page 350: Backward Channel

    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...
  • Page 355: R2 Call Control

    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.
  • Page 356: Outbound Call Setup

    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.
  • Page 359: Inbound Call Setup

    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.
  • Page 361: Call Tear Down

    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.
  • Page 363: Channel Blocking

    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)
  • Page 366: Package Options

    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...
  • Page 367: Installing Virtual Modules (Sr140)

    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.
  • Page 368: Installing The Brooktrout Sdk

    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...
  • Page 370 Install Location File Name bin\ axis_notice.txt bin\ bostvb.dll bin\ brktcctrace.exe bin\ BrktLicMgr.exe bin\ BrktLicMgrHelp.zip bin\ btver.exe bin\ confighelp.zip bin\ configtool.exe bin\ connect.gif bin\ cp.bin bin\ dsp1000.hex bin\ dsp1000_ld.hex bin\ dsp1000_ud.hex bin\ dsp1000_v34.hex bin\ dsp1034_ud.hex bin\ filtersettings.cfg bin\ firm.exe bin\ firmload.exe bin\ FulfillResources.properties bin\...
  • Page 371 Install Location File Name config\ btcall.cfg config\ BT_CPARM.CFG config\ callctrl.cfg config\ ctr21.qslac config\ epsonec.fnt config\ epsonec.fz8 config\ epsones.fnt config\ epsones.fz8 config\ epsonpc.fnt config\ epsonpc.fz8 config\ epsonps.fnt config\ epsonps.fz8 config\ fxo_groundstart.lec config\ fxo_loopstart.lec config\ fxs_groundstart.lec config\ fxs_loopstart.lec config\ ibmpcps.fnt config\ ibmpcps.fz8 config\ immediatedial.lec config\...
  • Page 372 Install Location File Name driver\pnp\ brooktrout.cat driver\pnp\ trxstream.inf driver\pnp\ boston.pdb TRxStream\x86\ driver\pnp\ boston.sys TRxStream\x86 driver\pnp\ brktBdevco.dll TRxStream\x86 driver\pnp\ brktBdevpp.dll TRxStream\x86 driver\pnp\ boston.pdb TRxStream\x64\ driver\pnp\ boston.sys TRxStream\x64 driver\pnp\ brktBdevco.dll TRxStream\x64 driver\pnp\ brktBdevpp.dll TRxStream\x64 %System Root%\ bostdlld.dll system32\ %System Root%\ bostsrv.dll system32\ %System Root%\ bostsrv.exe system32\...
  • Page 373: Registry Entries

    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.
  • Page 374: Reboot Options

    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.
  • Page 376: About The Merge Module Feature

    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.
  • Page 385: Installing The Merge Module Feature

    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...
  • Page 390: About Plug And Play Components

    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.
  • Page 392: Plug And Play Installation Scenarios

    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...
  • Page 395: Structure Of The Brooktrout Pnp Folder

    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...
  • Page 396: About The Dialogic® Brooktrout® Plug And Play Co-Installer

    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.
  • Page 398: About The Device Property

    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...
  • Page 400: Modifying Configuration Files

    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.
  • Page 401: User-Defined Configuration File (Btcall.cfg)

    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.
  • Page 402: Call Control (Callctrl.cfg) Configuration File

    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.
  • Page 403: Downloading Firmware 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;...
  • Page 404: Removing Software

    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 –...
  • Page 405: Removing The Plug And Play Driver

    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.
  • Page 406: For Version 5.2

    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.
  • Page 408: Appendix A – G3 Legacy Utilities

    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.
  • Page 410: Ascii To Fax Conversion Utility (Asctog3)

    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.
  • Page 411: Cut And Paste Utilities

    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.
  • Page 412: Paste Utility (G3Combin)

    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.
  • Page 413: Epson To Fax Conversion Utility (Epstog3)

    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.
  • Page 415: Fax Display And Edit Utility: Supershow (Ss)

    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.
  • Page 417: G3 Conversion Utility (G3Cvt)

    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.
  • Page 419: Print Utility (P)

    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...
  • Page 426: Glossary

    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.
  • Page 430: Index

    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...
  • Page 440 November 2009...

Table of Contents

Save PDF