Yate Design

From Yate Documentation
(Difference between revisions)
Jump to: navigation, search
Line 4: Line 4:
  
  
The architecture of Yate is based on a [[Messages|message passing]] system. The architecture can be divided into 4 main parts:
+
The architecture of Yate is based on a [[Messages|message passing]] system. The architecture can be divided into 4 main parts as you can see bellow.
  
* '''Core''', where encapsulations for sockets, threads and others primitives can be found
+
===Core ===
* '''[[Messages|Message Engine]]''', message related classes, used to exchange data between modules
+
* '''Telephony Engine''', the telephony related classes
+
* '''[[Modules|Yate Modules]]''', modules extending the functionality of Yate, not necessarily telephony related
+
  
 +
The Core where encapsulations for sockets, threads and others primitives can be found.
  
 
===Engine===
 
===Engine===

Revision as of 13:36, 15 November 2012


The purpose of Yate's design is to provide an extensible telephony engine. Holding the base code as simple as possible and adding functionality as needed allows one to find the best balance between desired functionality, performance and stability.


The architecture of Yate is based on a message passing system. The architecture can be divided into 4 main parts as you can see bellow.

Contents

Core

The Core where encapsulations for sockets, threads and others primitives can be found.

Engine

The engine holds the base C++ classes of Yate and connects together all components. There is a diagram showing how all components interact.

Modules

Most real functionality is provided by modules loaded at runtime. These can be dynamical libraries loaded as plugins in the engine or external applications started by a specific module (extmodule) that allows them to talk to the engine and other modules.

Messages

The signaling between Yate modules (either plugins or external modules) is performed by using messages. They provide extensibility, customization and technology independence. Each module that needs something from another or tries to notify about some event creates and emits a message. The message flows through the Engine which tries to deliver it to the proper target.


See also

Personal tools
Namespaces

Variants
Actions
Preface
Configuration
Administrators
Developers