What is Yate
Line 30: | Line 30: | ||
Yate is licensed under the [http://www.fsf.org/licenses/gpl.html GPL]. | Yate is licensed under the [http://www.fsf.org/licenses/gpl.html GPL]. | ||
+ | |||
+ | === Yate Architecture === | ||
+ | |||
+ | The most important aspect of Yate is its message-passing system. Modules are passing around messages among them. This allows us to have a bigger flexibility than with plain functions, mainly because messages in Yate can have an arbitrary number of parameters, and can be sent to more than one module by changing the priority. | ||
+ | |||
+ | Yate's four main components are: | ||
+ | |||
+ | * '''Core''' - generic classes like String, Thread, Socket, Mutex | ||
+ | * '''Message Engine''' - message related classes Message, Engine, Plugin | ||
+ | * '''Telephony Engine''' - telephony related classes like Driver, Channel | ||
+ | * '''Yate Modules''' - modules of Yate are equal no matter if they are telephony or routing or anything else related, because of the message passing system. | ||
+ | |||
+ | A picture of the Yate architecture can be found [[Yate_architecture|here]]. |
Revision as of 12:25, 5 October 2012
Yate stands for Yet Another Telephony Engine, and like the name states it is mainly a telephony engine; while currently focused on Voice over Internet Protocol (VoIP) and PSTN, its power lies in its ability to be easily extended. Voice, video, data and instant messenging can all be unified under Yate's flexible routing engine, maximizing communications efficiency and minimizing infrastructure costs for businesses.
Yate can be used as a:
- VoIP Server
- VoIP client
- Conference server - with up to 200 channels in a single conference. Here you can find a bit about the conference room module.
- VoIP to PSTN gateway - see here a general description of what this means.
- PC2Phone and Phone2PC gateway
- IP Telephony server and/or client
- H.323 gatekeeper
- H.323 multiple endpoint server
- H.323<->SIP Proxy - see an explanation on how to configure Yate to do that.
- SIP router - here are a few words on what features can be done with Yate.
- SIP session border controller
- SIP registration server
- IAX server and/or client - briefly described here
- Jingle client or server - there's an example of how to use Yate as both server and client.
- MGCP server (Call Agent)
- ISDN passive and active recorder
- ISDN, RBS, analog passive recorder
- SS7 switch
- Call center server
- IVR engine
- Prepaid and/or postpaid cards system
The software is written in C++ and it supports scripting in various programming languages (such as those supported by the currently implemented PHP, Python, Perl and Javascript libraries) and even any Unix shell. The PHP, Python, Perl and Javascript libraries have been developed and made available in order to ease development of external functionalities for Yate.
Yate is production-ready software and is easily extensible.
Yate is licensed under the GPL.
Yate Architecture
The most important aspect of Yate is its message-passing system. Modules are passing around messages among them. This allows us to have a bigger flexibility than with plain functions, mainly because messages in Yate can have an arbitrary number of parameters, and can be sent to more than one module by changing the priority.
Yate's four main components are:
- Core - generic classes like String, Thread, Socket, Mutex
- Message Engine - message related classes Message, Engine, Plugin
- Telephony Engine - telephony related classes like Driver, Channel
- Yate Modules - modules of Yate are equal no matter if they are telephony or routing or anything else related, because of the message passing system.
A picture of the Yate architecture can be found here.