Toolpack API
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.
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:
- Customer Application Framework (CAF)
- CMC Library
- Toolpack Engine
- Toolpack System Manager
- TCAP Control Library
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 then 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
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.
Accessing Toolpack configuration database
The Toolpack configuration database is normally configured using the Web Portal. However, some applications may need to query information from that database. When that's the case, TelcoBridges provides a MySql database access class (CTBCAFDb), along with many DAOs (data access objects) that provide C++ classes that represent all the database tables used by Toolpack. For more information on how to access Toolpack configuration database, please refer to the following page: Accessing Toolpack DB
Toolpack API documentation
Description and documentation of all APIs are available in the tb-doc.zip package of each software release (see http://forums.telcobridges.com/viewforum.php?f=23 for available software releases). Once unzipped, please check folder tb\doc\toolpack\html\index.html