bogotel: a telephony simulator

Table of Contents                           SourceForge.net Logo

Overview

Bogotel is a set of libraries that simulate the Intel Dialogic System Release 5.1.1, allowing developers to execute programs written for SR511 to run on machines without any special hardware, or even having SR511 installed (it is, though, required for compiling the library).

Bogotel is designed to seamlessly replace the SR. This is done so that test programs written for use with telephony hardware can be used as-is without modification.

The bogotel libraries is meant to be run using a pair of programs written for the SR, each one of which opens telephony devices and makes and/or answers calls. The two separate instances of bogotel connect to each other via TCP/IP and can be on the same or separate machines.

A sample program that you can use to make and/or answer calls to your application is the gc_call_demo program distributed with the SR511. The bogotel distro includes configuration files showing how two instances gc_call_demo can be started on the same machine, one making calls to the other.

Supported Features

API Support

The following APIs have some level of support (i.e. they will perform as defined, though not always with full functionality as specified in SR docs). An additional number of APIs are defined with an empty implementation to satisfy linking requirements.

Global Call
gc_Start, gc_Stop, gc_Open, gc_OpenEx, gc_GetXmitSlot, gc_Listen, gc_GetMetaEvent, gc_GetNetworkH, gc_GetCRN, gc_WaitCall, gc_GetANI, gc_GetDNIS, gc_MakeCall, gc_AcceptCall, gc_AnswerCall, gc_SetCallingNum, gc_ErrorValue, gc_CCLibIDToName, gc_ResultMsg, gc_DropCall, gc_ReleaseCall, gc_ReleaseCallEx, gc_ResultValue, gc_ResetLineDev, gc_CCLibStatusEx, gc_ResultInfo, gc_ErrorInfo.

Voice
dx_open, dx_getxmitslot, dx_listen, dx_fileopen, dx_fileclose, dx_playiottdata, dx_stopch, dx_clrdigbuf, dx_getdig, ATDX_TERMMSK, dx_dial.

Standard Runtime Library
sr_getevtlen, sr_getevtdev, sr_getevttype, sr_enbhdlr, sr_dishdlr, sr_putevt.

SRL Programming Models

  1. Asynchronous Model Programming
  2. Event Handler Programming

Limited Sound Recognition

There exists a mechanism whereby wav files that are played will have their DTMF contents recognized by the listening side, which will trigger TM_MAXDTMF events. This is done via a property file which specifies in advance if a wav file is a collection of DTMF keypresses.

Limitations

  1. Each device is able to connect only to one of the same name on the "opposite side"; i.e., each running application must open the same devices and there is no support for the usual "round robin" fashion of handling incoming calls.
  2. Too many to mention ;-).

Wish List

  1. GUI helper app that can give status info and ability to hear what is being played on a certain channel.
  2. More signalling API's, especially ISDN support.
  3. Ability to cause error conditions for handling by calling app.

Platforms Supported

The libraries have been built and tested only on win32 under Microsoft Visual Studio 6. On the other hand, C++ Standard Library usage and thread support are implemented using cross-platform libraries, so I hope that getting it working on Linux should be straight forward.

Building

Dependencies

  1. Intel Dialogic System Release 5.1.1.
  2. stlport 4.5.3.
  3. boost 1.30.0.
  4. log4cpp 0.3.4b.

To simplify amassing these dependencies, include files and libraries of stlport, boost and log4cpp are available for download in the file releases section.

MSVC6

Setup

A workspace and project files that build the set of bogotel DLLs are supplied. In order to let them work, put the dependencies in the include and library paths of the compiler. In the case of log4cpp, boost and stlport, all that is required is to download bogotel-dependencies.zip and unzip to bogotel/. The Microsoft Platform SDK and Intel Dialogic System Release must be downloaded and installed (and put into the compilers paths) separately.

Build

Build project "All bogotel DLLs". This will build the DLLs and put them along with their .pdb files in bogotel\msvc6\bogotel\Debug.

Sample Run

This sample was created by running two instances of the Intel Dialogic GC sample gc_basic_call_model.exe. Both processes were stopped after a few calls using Ctrl-C.

Documentation

Using bogotel

Code documentation (doxygen generated)

Web Site

http://sourceforge.net/projects/bogotel

Email lists

http://lists.sourceforge.net/lists/listinfo/bogotel-devel

Download

Version 0.1.0 of bogotel.

Dependencies (freely redistributable ones).

CVS

Get the latest version from CVS

Browse CVS

Revisions

revisions.txt

Feedback

Please let me know if you find this library useful.
I will be happy to receive patches for new functionality or bug fixes.
For problems with this project or web site please use the bug tracking system provided by SourceForge.

Author

The author is David Resnick of MobileSpear Inc.

Copyright (C) 2003 MobileSpear Inc.
Copyright (C) 2003 David Resnick

License

This library is available under the LGPL license.

bogotel: a telephony simulator library.
Copyright (C) 2003 MobileSpear Inc.
Copyright (C) 2003 David Resnick

Last updated 2nd Apr 2003