Toolpack API

From TBwiki
Revision as of 07:31, 30 May 2011 by Abrassard (Talk | contribs)
Jump to: navigation, search

The ToolPack API modules are intended to provide the solution developer with a simpler, protocol-agnostic approach to developing telephony applications while providing complete control, including access to system-level functionality.


The graphic below demonstrates Toolpack and a customer developed application running on an external application server such as one would use with the Tdev TMP6400 or the Tdev TMP800. It is also possible to host the application server locally in the Tdev TMP5900 or the Tdev TMP7900.


Toolpack Architecture Overview.jpg


Typically, an application only needs to interact with the system through the use of C++ classes indicated above via dashed borders.


Contents

Toolpack API components

Toolpack API is comprised of the following elements:


Typical Toolpack call handling application components

A Toolpack call handling application is the application, in the Toolpack system, that controls call flows, by connecting and using toolpack_engine. In order to control call flows, the CAF Call API is used. This API hides the communication mechanism with toolpack_engine, so the application code only has to deal with implementing actual call flows.

The Toolpack call handling application can also use other APIs to integrate with Toolpack OAM (be automatically launched/relaunched/shutdown, receive configuration reload notifications, respond to heart beat, etc.).

TelcoBridges' own call handling application (the gateway application) uses all of these APIs. Sample application simple_call also provides simplified examples for using these APIs.

Below is the list of APIs that the application can use.

Mandatory library

  • CAF library: This library contains all the required APIs to handle calls, or integrate with Toolpack OAM.

Mandatory APIs

In order to control calls, an application must at least initialize the following modules:

  • CTBCMCLib: This module connects to toolpack_engine, and allows using the CAF API to control call legs and call flows
  • CTBCAFComm: This library is mandatory for enabling communication with other applications, such as toolpack_engine, or the Toolpack OAM system

Toolpack OAM APIs

In order to integrate with Toolpack OAM, or to get access to the configuration database, an application needs to initialize the following modules:

  • CTBCAFServiceAlmMgmt: This module (Application Launch Management) allows an application to be launched (and monitored for failure through heartbeat) by Toolpack OAM system
  • CTBCAFServiceCmMgmtClient: This module (Configuration Management) allows an application to be informed of the current active configuration, and active database connection string
  • CTBCAFServiceDebugClient: This module allows an application to send logs and files to the tbdebug tool when that tool dumps the debug information on the Toolpack system

Other optional APIs

The CAF library also implements the following modules, which are convenient for an application to use:

  • CTBCAFLog: This module automatically writes calls to "LogTrace" function (which the CAF library itself uses to log useful information) to log files. It also manages log files rotation and zipping.
  • CTBCAFCli: This module provides a command-line interface that's more convenient that a single shell prompt, by allowing the application to display multiple pages of information, view the application log, and enter commands. It also allows the application to be "remotely controlled" using the tbx_cli_tools_remote application.
Personal tools