Kamis, 10 Mei 2018

Sponsored Links

HD Telephony Article Mentions FreeSWITCH | FreeSWITCH.org
src: oldwww.freeswitch.org

FreeSWITCH is a free and open source application server for real-time communication, WebRTC, telecommunications, video and Voice over Internet Protocol (VoIP). Multiplatform, it runs on Linux, Windows, macOS and FreeBSD. It is used to build PBX systems, IVR services, videoconferencing with chat and screen sharing, wholesale least cost routing, Session Border Controller (SBC) and embedded communication appliances. It has full support for encryption, ZRTP, DTLS, SIPS. It can act as a gateway between PSTN, SIP, WebRTC, and many other communication protocols. Its core library, libfreeswitch, can be embedded into other projects. It is licensed under the Mozilla Public License (MPL), a free software license.


Video FreeSWITCH



History

The FreeSWITCH project was first announced in January 2006 at O'Reilly Media's ETEL Conference. In June 2007, FreeSWITCH was selected by Truphone for use, and in August 2007, Gaboogie announced that it selected FreeSWITCH as its conferencing platform.

FreeSWITCH's first official 1.0.0 release (Phoenix) was on May 26, 2008. A minor 1.0.1 patch release came out on July 24, 2008. At ClueCon 2012 Anthony Minessale announced the release of FreeSWITCH version 1.2.0 and that the FreeSWITCH development team had adopted separate stable (version 1.2) and development (version 1.3) branches.

FreeSWITCH 1.4, released at early 2014, is the first version support SIP over Websocket and WebRTC.

FreeSWITCH 1.6 added support for video transcoding and video conferencing, Verto protocol for WebRTC, and all WebRTC codecs and standards.


Maps FreeSWITCH



Design

According to the lead designer, Anthony Minessale, FreeSWITCH is intended to be a softswitch that is built on top of a solid core, driven by a state machine. The stated goals of the project include stability, scalability, and abstraction.

To reduce complexity, FreeSWITCH uses freely available software libraries that perform needed functions. Some dependencies are:

  • Apache Portable Runtime (APR and APR-Util)
  • SQLite - a lightweight implementation of a SQL engine
  • PCRE - Perl Compatible Regular Expressions
  • Sofia-SIP - an open-source SIP user agent library
  • libspeex - Speex DSP library (replaced libresample as of version 1.0.3)
  • mod_spandsp for T.38 fax gateway or passthrough are supported.
  • libSRTP - an open-source implementation of the Secure Real-time Transport Protocol

Not all of these software dependencies are required to build the core freeswitch application, but are dependencies of various external modules, such as codecs. FreeSWITCH is a modular application, in which modules can extend the functionality but the abstraction layer prevents inter-module dependency. The goal is to ensure that one module is not required to load another.


How to route an IPKall incoming DID using BlueBox the FreeSWITCH ...
src: i.ytimg.com


Features

FreeSWITCH includes many modules that provide many telephony applications, such as conferencing, XML-RPC control of live calls, interactive voice response (IVR), speech synthesis and speech recognition, public switched telephone network (PSTN) interfaces for analogue and digital circuits, voice over IP protocols including Session Initiation Protocol (SIP), Verto, Skinny Client Control Protocol (SCCP), H.323, Extensible Messaging and Presence Protocol (XMPP), GoogleTalk, T.38 and others.

FreeSWITCH provides an application programming interface that exposes primitives for call control and IVR functionality. Applications may be written in the C language, C++, Python, Perl, Lua, JavaScript, Java and Microsoft .NET via Microsoft's CLR or via Mono.

Call control applications can use the Event Socket, which is an Internet socket-based communications facility within FreeSWITCH providing a language independent interface. The Event Socket Library (ESL) and "ESL-wrappers" are available for Erlang, JavaScript, Lua, Perl, PHP, Python, and Ruby.

As of FreeSWITCH version 1.4, support exists for WebRTC.

In FreeSWITCH 1.6 support was added for Video muxing and complete WebRTC, wss, dtls, SIP.js, Verto.js, Opus 48kHz to 8kHz, resilient up to 40% packet loss.

Main FreeSWITCH 1.6 features:

  • WebRTC support
  • Centralized User/Domain Directory (directory.xml)
  • Nano Second CDR granularity
  • Call recording (In Stereo caller/callee left/right)
  • High Performance Multi-Threaded Core engine
  • Configuration via cURL to your HTTP server (mod_xml_curl).
  • XML Config files for easy parsing.
  • Protocol Agnostic
  • ZRTP support for transparent RTP based key exchange and encryption
  • Configurable RFC 2833 Payload type
  • Inband DTMF generation and detection.
  • Software based Conference (no hardware requirement)
  • Wideband Conferencing
  • Media / No Media modes
  • Proper ENUM/ISN dialing built in
  • Detailed CDR in XML
  • Radius CDR
  • Subscription server
  • Shared Line Appearances
  • Bridged Line Appearances
  • Enterprise/Carrier grade Eventing Engine. (XML Events, Name Value Events, Multicast Events)
  • Loadable File formats and streaming
  • Stream to and play from Shoutcast and Icecast
  • Multi-lingual Speech Phrase Interface
  • ASR/TTS support (native and via MRCP)
  • Basic IP/PBX features
  • Automated Attendant
  • Custom Ring Back Tones (Early Media)
  • XML-RPC support
  • Multiple format CDRs supported
  • SQL Engine provides session persistence
  • Thread Isolation
  • Parallel Hunting
  • Serial Hunting

VoIP Billing Solutions with Freeswitch: What is Carrmin Whole sale ...
src: www.carrmin.com


WebRTC support

  • FreeSWITCH is a WebRTC Gateway, able to accept encrypted media from browsers, convert it, and exchange it with other communication networks, that use different codecs and encryptions, eg: PSTN, mobile carriers, legacy systems, etc. FreeSWITCH can be the gateway between SIP network and applications and browsers on desktops, tablets and smartphones.
  • FreeSWITCH is a WebRTC Application Server, able to directly provide native services to browsers, like videoconferences, IVRs, Call Centers, without the use of any gateway or third party. FreeSWITCH can directly provide services through Secure WebSocket (WSS), SRTP, and DTLS, the native WebRTC protocols.
  • FreeSWITCH makes available an additional Signaling Plane because with Verto the browsers can initiate or receive a voice call or a video call in the easiest way, and they can chat, share screen, receive and send data in real time to back end applications. Verto is an alternative to XMPP or SIP in Javascript. FreeSWITCH can serve in parallel and concurrently the same application to clients that use signaling in SIP and Verto.

FreeSWITCH with Fred - Basics of Call Routing - YouTube
src: i.ytimg.com


Video conferencing support

FreeSWITCH has always been a powerful platform for conferencing, starting many years ago as a hugely scalable audio conferencing bridge. In a breakthrough at ClueCon 2015 in Chicago Illinois, FreeSWITCH's creator Anthony Minessale II announced support for video transcoding, mixing, manipulation, and Multipoint Control Unit (MCU) functionality. FreeSWITCH now has the most advanced and mature video conferencing features:

  • Multiple video codecs support and transcoding
  • Multiple video layouts
  • Screen splits
  • Picture in picture
  • Screen sharing
  • Video superimposing (captions, logos, and so on)
  • Video mixing
  • Video effects and real-time manipulation
  • Chroma-Key (video mixing a background)
  • SIP, WebRTC, VERTO, PSTN participants

SaevolGo: FreeSWITCH with SIP Users in MySQL [Mod XML_CURL]
src: 1.bp.blogspot.com


Codec support

FreeSWITCH supports a variety of audio and video codecs:

G.723.1, H263 and H264 are supported in pass-through mode. Since the raw compressed data is passed through between callers without any processing, this allows support for some codecs that cannot be provided free of charge due to patent or other licensing issues.

The software supports hardware transcoding cards, such as produced by Sangoma. These implement codecs in hardware, reducing the CPU usage of the server. Some of these codecs are fully licensed, providing an alternative to the pass-through options above.


Starting a new log file in FreeSWITCH - YouTube
src: i.ytimg.com


Protocol support

  • SIP with mod_sofia
    • UDP, TCP, SCTP and TLS transports for full SIP compliance.
    • xiWS and WSS transports for full WebRTC compliance.
    • SIP v.2.0 (RFC 3261)
    • IPv6 Support
    • SIP Session timers
    • RTP Timers
    • RFC 3263 (SRV and NAPTR)
    • RFC 3325
    • RFC 4694
    • SRTP via SDES (Works with Polycom, Snom, Linksys and Grandstream)
    • Blind SIP Registration
    • STUN Support
    • Jitter buffer
    • NAT Support
    • Distributed SIP registrations
    • Late Codec Negotiation
    • Multiple SIP registrations per user account.
    • Multitenancy - Multiple SIP UAs
    • SIP Reinvites.
    • Can act as an SBC (Session Border Controller)
    • Manage Presence
    • SIP/SIMPLE (can gateway to other chat protocols)
    • SIP Multicast Paging support for Linksys and Snom
    • Intercom/AutoAnswer support.
    • Call features like Call Hold (Re-INVITE), Blind Transfer (REFER), Call Forward (302), etc.
  • mod_skinny - Skinny Call Control Protocol (SCCP)
  • mod_verto - VERTO WebRTC Signaling Protocol

Tutorial 5 ] voicemail fusionpbx FreeSwitch - YouTube
src: i.ytimg.com


Application support

  • Voicemail
    • Multitenancy - Enterprise/Carrier configuration
    • Time of Day Greetings
    • Urgent Message Tagging
    • E-mail Delivery
    • Playback and Rerecord messages before delivery.
    • Keys are templates so you can rearrange to fit your needs.
    • Callback support from inside voicemail.
    • Podcast of Voicemail (RSS)
    • Message Waiting Indicator (MWI)
  • Support for Queues (via mod_fifo or mod_callcenter)
  • Parking (via mod_fifo)
  • Conference
    • Software based Conferencing without any hardware requirements.
    • Wideband conferences.
    • Multiple on-demand or scheduled conferences with entry/exit announcements
    • Play files into the conference or a single member.
    • Relationships
    • TTS integration
    • Transfers
    • Outbound Calling
    • Configurable Key Lay
    • Volume, Gain and Energy level per call.
    • Bridge to Conference transition
    • Multi Party outbound dialing.
    • RFC 4579 SIP CC Conferencing for UAs
    • Automatic or on-demand recording
  • RSS Reader
  • Fax endpoint, gateway and passthrough mode.
    • T.30 (G.711) Audio Fax (via mod_spandsp) formerly known as mod_fax.
    • T.38 faxing (gateway, endpoint and passthrough)

Networking - FreeSWITCH Wiki
src: wiki.freeswitch.org


Encryption support

  • WSS
  • HTTPS
  • SRTP
  • ZRTP
  • TLS
  • SIPS
  • SSL
  • SDES
  • DTLS

Tutorial 4 ] Conference Add and kick Call Example using XML Editor ...
src: i.ytimg.com


Text-to-speech and Automatic Speech Recognition support

  • Cepstral
  • Flite
  • PocketSphinx
  • MRCP

Tutorial 7 ] IVR menu, Music on hold, recording fusionpbx ...
src: i.ytimg.com


Operating and build system support

  • Debian Linux is the preferred operating system as it provides the broadest support in its libraries necessary to run FreeSWITCH unencumbered by licensing restrictions
  • Other Linux systems, such as RHEL and CentOS
  • Solaris 10 UNIX (Solaris Studio)
  • FreeBSD (gmake)
  • macOS (gmake)
  • Windows (native)

fs_background_post.jpg
src: freeswitch.org


Comparison with other telephony software

FreeSWITCH occupies a space between pure switches that simply route calls, such as Kamailio and OpenSIPS, and those that provide primarily PBX or IVR functionality, such as Asterisk and its derivatives. FreeSWITCH provides building blocks from which applications - such as a PBX, a voicemail system, a conferencing system or a calling card - can be built using any of the supported languages.


How to setup an IPKall incoming trunk using BlueBox the FreeSWITCH ...
src: i.ytimg.com


Derived products

FreeSWITCH 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.


SaevolGo: OpenSIPS as Load-Balancer for FreeSWITCH
src: 3.bp.blogspot.com


See also

  • List of SIP software - other SIP related programs

WSS FreeSWITCH - YouTube
src: i.ytimg.com


References


VoIP Billing Solutions with Freeswitch
src: 1.bp.blogspot.com


External links

  • FreeSWITCH Confluence documentation wiki - contains general information and documentation for the project itself

Source of the article : Wikipedia

Comments
0 Comments