FreeSWITCH

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search
FreeSWITCH
Original authorAnthony Minessale
DeveloperDifferent contributors
Stable release1.10.12 (August 3, 2024; 21 months ago (2024-08-03)[1]) [±]
Repository
  • {{URL|example.com|optional display text}}Lua error in Module:EditAtWikidata at line 29: attempt to index field 'wikibase' (a nil value).
Written inC
Engine
    Lua error in Module:EditAtWikidata at line 29: attempt to index field 'wikibase' (a nil value).
    Operating systemLinux,[2] macOS,[3] Solaris,[4] FreeBSD,[5] NetBSD,[6] OpenBSD,[7] DragonFly BSD,[8] Windows[9]
    PlatformCross-platform
    Available inmulti-lingual
    TypeVoIP software, Softswitch
    LicenseMozilla Public License (MPL)

    FreeSWITCH is a free and open-source telephony software for real-time communication protocols using audio, video, text and other forms of media. The software has applications in WebRTC, voice over Internet Protocol (VoIP), video transcoding, Multipoint Control Unit (MCU) functionality and supports Session Initiation Protocol (SIP) features.[10]

    The software runs on Linux, Windows, macOS, and FreeBSD.[11]

    History

    [edit | edit source]

    The FreeSWITCH project was initially announced in January 2006 and the first version was officially released in May 2008. The subsequent versions, 1.2, 1.3 and 1.4, were released in 2012 and 2014 supporting SIP over Websocket and WebRTC. The 1.6 version supported video transcoding and video conferencing and the 1.8 version was released in 2018. The latest release is version 1.10.[12]

    In 2018, SignalWire Inc. was founded to provide commercial cloud telecommunication services utilizing an elastic FreeSWITCH core, and provide a permanent commercial sponsor for the open source project that was controlled by the founders of FreeSWITCH. It then acquired FreeSWITCH Solutions.[13]

    Architecture

    [edit | edit source]

    FreeSWITCH runs on Linux, Windows, macOS, and FreeBSD. It is distributed under the Mozilla Public License (MPL). According to the original designer, Anthony Minessale, FreeSWITCH is intended to be a softswitch that is built around a core library, driven by a state machine, which can be embedded into other projects.[14][15]

    FreeSWITCH provides a scalable system around a stable switching core, and a robust interface for developers to add to and control the system. It is a core component in many PBX in a box commercial products and open-source projects. Some of the commercial products are hardware and software bundles, for which the manufacturer supports and releases the software as open source.[11]

    Applications

    [edit | edit source]

    FreeSWITCH is used to build private branch exchange (PBX), IVR services, videoconferencing with chat and screen sharing, wholesale least-cost routing, Session Border Controller (SBC) and embedded communication appliances. It also has support for encryption, ZRTP, DTLS.

    Projects such as BigBlueButton are built on top of FreeSWITCH and FusionPBX is an add-on to FreeSWITCH that provides a web management interface.

    In June 2007, FreeSWITCH was selected by Truphone for use,[16] and in August 2007, Gaboogie announced that it selected FreeSWITCH as its conferencing platform.[17] It has also partnered with Five9, Plivo, Samsung, Waeve and Twilio for its usage. The software is also used by The U.S Department of Veterans Affairs.[10]

    Bibliography

    [edit | edit source]
    • Mastering FreeSWITCH – ISBN 978-1784398880
    • FreeSWITCH 1.8 – ISBN 978-1785889134
    • FreeSWITCH 1.6 Cookbook – ISBN 978-1785280917

    References

    [edit | edit source]
    1. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    2. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    3. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    4. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    5. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    6. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    7. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    8. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    9. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    10. ^ a b Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    11. ^ a b Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    12. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    13. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    14. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    15. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    16. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    17. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).