Yate (Yet Another Telephony Engine) is
free and
open source
Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use the source code, design documents, or content of the product. The open-source model is a decentralized sof ...
communications software with support for video, voice and instant messaging. It is an extensible
PBX under the
GPL-2.0-only license.
It is written in C++ with a modular design, allowing the use of scripting languages like
Perl
Perl is a family of two High-level programming language, high-level, General-purpose programming language, general-purpose, Interpreter (computing), interpreted, dynamic programming languages. "Perl" refers to Perl 5, but from 2000 to 2019 it ...
,
Python and
PHP
PHP is a General-purpose programming language, general-purpose scripting language geared toward web development. It was originally created by Danish-Canadian programmer Rasmus Lerdorf in 1993 and released in 1995. The PHP reference implementati ...
to create external functionality.
History
In 2004, NullTeam, the company behind Yate, launched the official website.
In 2005
Sangoma announced their support for Yate development on the
Microsoft Windows platform. On May 4, 2011
sipgate
Sipgate, stylised as sipgate, is a European VoIP and mobile telephony operator.
Company
Sipgate was founded in 2004 and became one of Germany's largest VoIP service providers for consumers and small businesses. Through its network, which us ...
announced that it had chosen the Yate project for its core infrastructure.
Yate version 5.0 was released in January 2014.
Architecture
Yate's architecture is based on a
message passing
In computer science, message passing is a technique for invoking behavior (i.e., running a program) on a computer. The invoking program sends a message to a process (which may be an actor or object) and relies on that process and its supporti ...
system. The architecture can be divided into 4 main parts:
* Core, where encapsulations for
sockets,
threads
Thread may refer to:
Objects
* Thread (yarn), a kind of thin yarn used for sewing
** Thread (unit of measurement), a cotton yarn measure
* Screw thread, a helical ridge on a cylindrical fastener
Arts and entertainment
* ''Thread'' (film), 2016 ...
and other primitives can be found.
* Message Engine, message-related classes, used to exchange data between modules.
* Telephony Engine, telephony-related classes.
* Yate Modules, modules extending the functionality of Yate, not necessarily telephony-related.
A 2006
O'Reilly Emerging Telephony review shows that Yate offers flexibility via the external text protocol. This protocol allows the majority of features to be exposed. Because of this, it is fairly easy to mix telephony-related functions with text-based protocols like
HTTP
The Hypertext Transfer Protocol (HTTP) is an application layer protocol in the Internet protocol suite model for distributed, collaborative, hypermedia information systems. HTTP is the foundation of data communication for the World Wide Web, ...
,
SMTP
The Simple Mail Transfer Protocol (SMTP) is an Internet standard communication protocol for electronic mail transmission. Mail servers and other message transfer agents use SMTP to send and receive mail messages. User-level email clients typic ...
or an interface with a database via
SQL. Therefore, the protocol is easy to write in any
programming language
A programming language is a system of notation for writing computer programs. Most programming languages are text-based formal languages, but they may also be graphical. They are a kind of computer language.
The description of a programming l ...
.
Currently YAYPM is the most advanced connector library and uses
Python with the
Twisted Twisted may refer to:
Film and television
* ''Twisted'' (1986 film), a horror film by Adam Holender starring Christian Slater
* ''Twisted'' (1996 film), a modern retelling of ''Oliver Twist''
* ''Twisted'', a 2011 Singapore Chinese film directed ...
framework for rapid development.
See also
*
List of SIP software
This list of SIP software documents notable software applications which use Session Initiation Protocol (SIP) as a voice over IP (VoIP) protocol.
Servers
Free and open-source license
A SIP server, also known as a SIP proxy, manage ...
*
Comparison of VoIP software
This is a comparison of voice over IP (VoIP) software used to conduct telephone-like voice conversations across Internet Protocol (IP) based networks. For residential markets, voice over IP phone service is often cheaper than traditional public swi ...
*
Software defined mobile network
Software-defined mobile networking (SDMN) is an approach to the design of mobile networks where all protocol-specific features are implemented in software, maximizing the use of generic and commodity hardware and software in both the core network a ...
References
External links
* {{official website, http://yate.null.ro/pmwiki/
VoIP software
Free VoIP software
Software that was ported from GTK to Qt