Toolpack Application:toolpack engine

Revision as of 03:22, 24 July 2013 by Lucas Trottier (talk | contribs) (Correct high availability explanation - Engine does not fallback on primary.)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Started By

Toolpack_engine is spawned by tboamapp.


Toolpack_engine is use to allocate the 'dynamic' part of the call. It receives the nap list from the toolpack_sys_manager, sends events and receives command from the Toolpack application(Gateway application).

It is responsible for:

  • Process incoming call, sends an event to the Toolpack application(Gateway application)
  • Allocate resources (stream, dsp)
  • Connect resources together.

High Availability

Toolpack_engine is a Active/Standby type of application. The first toolpack_engine instance to be ready will become active, if other instances are ready they will remain standby. The standby instances won't take any actions on the system as long as the active instance is functioning. In the eventuality where the active instance crash or is stop, the standby instance will become active.

The active instance of toolpack_engine is responsible for:

  • Sending call leg events to the gateway or user application.
  • Handling call legs requests from the gateway or user application.
  • Allocating / modifying / freeing call legs.
  • Handling the resynchronization of the calls after a switchover.

The toolpack_engine is not responsible for:

  • Handling call flow (this responsibility falls to the gateway or user application).


  • The toolpack_engine cannot be controlled by more than one application (one gateway application for example).
  • The application that controls the toolpack_engine must work in active/standby fashion too.
  • The toolpack_engine will grant control to the first application that connects to it.


During the resynchronization, the toolpack_engine will keep the active calls but will terminate all the transient calls.


  • Where the logs are located?