Introduction
Asterisk is an open source software implementation of a private branch exchange (PBX) that routes calls like a business phone system. With its built-in support for Voice over IP (VoIP) protocols, Asterisk is a popular and flexible platform used to build VoIP solutions.
Brief overview of Asterisk
Created in 1999 by Mark Spencer, Asterisk is an open source project that provides the core PBX functionality needed for business communications. It is released under the GNU General Public License (GPL) and is free to use.
Asterisk supports an impressive range of telephony capabilities that enable integrating voice, video and other media communications via both VoIP and conventional telephony.
Importance of Asterisk in VoIP solutions
Asterisk plays a pivotal role in delivering VoIP based communications systems due to these key advantages:
- Free open source software makes it budget friendly.
- Modular architecture allows extensive customization and integration.
- Supports key VoIP protocols like SIP, H.323 and others.
- Interoperates with traditional telephony like analog lines and TDM.
- Available on Linux and other platforms with good community support.
These capabilities make Asterisk a versatile platform for deploying customized VoIP solutions from small businesses to large enterprises.
Asterisk: An Open Source PBX
Origins and development of Asterisk
Asterisk was created in 1999 by Mark Spencer as an open source alternative to proprietary PBX systems. It was initially targeted at Linux platforms.
Key milestones in Asterisk’s development include:
- 1999 – First version 1.0 released.
- 2001 – Launch of the Asterisk@Home project for hobbyist VoIP usage.
- 2004 – Asterisk becomes part of Digium and sees widespread enterprise adoption.
- 2006 – Support for IPv6 added to keep pace with evolving networks.
- 2015 – Release of Asterisk 13 adds features like built-in bridges and improved video support.
- 2020 – Asterisk 17 offers WebRTC support, better security and Python 3 migration.
Asterisk continues to be actively developed by the open source community and Digium.
Features and functionality of Asterisk
Some of the main features that make Asterisk a versatile PBX platform are:
- Call switching, management and call queueing.
- Support for multiple VoIP protocols like SIP, IAX2, MGCP, H.323 for unified communications.
- Integrated voicemail, IVR, auto attendant and conference calling.
- Call recording and monitoring capabilities.
- Media processing via codecs like G.711, G.722, G.729 for audio/video calls.
- Interfaces for integration with analog, digital and ISDN telephony.
- APIs for call control integrations using languages like PHP, Python, Java etc.
Interoperability with various VoIP protocols
A key advantage of Asterisk is its support for a range of VoIP protocols:
- SIP – Used for VoIP endpoints like IP phones and SIP trunks.
- IAX – Inter-Asterisk eXchange protocol used internally between Asterisk servers
- H.323 – Popular protocol used in VoIP and video conferencing.
- MGCP – Media Gateway Control Protocol manages media gateways and endpoints.
This multi-protocol support provides flexibility for unified communications.
Asterisk Components
Asterisk consists of several modular components that work together to enable telephony functions:
Asterisk channels: Telephony connections to the PBX
A channel handles a single active call leg and sources audio from the source to the PBX mixer. Some channel types are:
- SIP channels for VoIP endpoints registered to Asterisk via SIP.
- IAX2 channels for interconnecting Asterisk servers internally.
- H.323 channels for interfacing with H.323 hardware devices or gateways.
- Local channels for analog, digital and ISDN lines.
Asterisk H323 channels
The H.323 channel driver provides connectivity to H.323 compliant endpoints like:
- H.323 hardware phones e.g. Polycom, Yealink.
- H.323 VoIP gateways that connect to ISDN and analog lines.
- Video conferencing systems that use H.323.
It handles call signaling and media formats like G.711, G.722, G.729 used with H.323.
Asterisk IAX channels
IAX or Inter-Asterisk Exchange protocol is a lightweight VoIP protocol designed for efficient usage between Asterisk servers. key features are:
- Single UDP port for media and signaling.
- Low bandwidth overhead compared to SIP.
- NAT traversal support.
- Fast call setup.
IAX is well suited for trunk connections between remote Asterisk installations.
Asterisk SIP channels
The SIP channel driver interfaces with endpoints like:
- SIP phones, SIP ATAs supporting analog phones.
- SIP trunks between the Asterisk PBX and telephony providers.
- SIP video doorphones and survillance cameras.
It manages the SIP signaling for call management and provides codec support like G.711, G.722, G.729, Speex etc.
Asterisk Applications
Asterisk enables developing a variety of applications via its APIs and technologies like AGI:
Voice recognition system integration
Using Asterisk’s AGI interface, voice recognition platforms like Amazon Connect, Nuance Mix can be integrated to create IVR solutions, contact centers and more.
Interface with normal telephone lines and ISDN basic rate and primary rate interfaces
Using channel drivers, Asterisk can connect to:
- Analog and digital circuits like POTS, T1/E1/J1.
- ISDN protocols like PRI and BRI.
This allows supporting legacy telephony alongside VoIP.
Advanced services like video telephony and contact center applications
With Asterisk APIs, developers can create solutions like:
- Video conferencing servers supporting SIP and H.323 video endpoints.
- Contact center platforms with call monitoring, whisper, barge-in capabilities.
- Click to call applications using Asterisk’s fast AGI-based dialing.
Asterisk Interoperability
Compatibility with various VoIP hardware and software
Asterisk provides out-of-the-box compatibility with a wide range of endpoints:
- Major SIP phone brands like Polycom, Yealink, Cisco, Grandstream etc.
- SIP analog telephone adapters like Linksys PAP2T, ObiHai, Cisco SPA112 etc.
- SIP intercoms and video door stations from vendors like Commend, 2N, Axis Communications etc.
- Support for gateways that bridge ISDN, analog and digital circuits.
Support for most SIP telephones and other VoIP protocols
In addition to SIP phones, Asterisk supports:
- H.323 endpoints like Polycom and Yealink H.323 handsets.
- Proprietary protocols like Skype for Business.
- WebRTC for browser to phone calling.
Integration with traditional circuit-switching protocols like ISDN and SS7
Asterisk supports legacy protocols used widely in enterprise phone systems:
- ISDN PRI/BRI for connecting legacy PBX systems.
- SS7 for interconnecting phone networks via SIGTRAN.
- Multifrequency signaling used in North America and parts of Asia.
Asterisk Deployment
Benefits of using Asterisk for businesses
Businesses can realize significant benefits by deploying Asterisk:
- Cost savings compared to expensive proprietary PBXs.
- Avoid vendor lock-in due to open standards support.
- Flexibility to customize and integrate with other business apps.
- Scalability from small offices to large multi-site enterprises.
- Control over adding new features and upgrades.
Cost-effectiveness and flexibility for small businesses and large enterprises
Both small businesses and large enterprises find Asterisk attractive:
Small business
- Low startup costs by using free open source software.
- Lean custom solutions instead of bloated PBX features.
Large enterprises
- Drive down infrastructure costs at scale.
- Tightly integrate communications across business processes.
- Connect multi-site Asterisk servers via IAX trunking.
Wide range of add-on products for extended features and capabilities
A vibrant ecosystem of products extend Asterisk functionality:
- Endpoints like IP phones, gateways, SIP trunks.
- UC clients like Zulu and Bria for VoIP roaming.
- Modules for contact center, call recording etc.
- Management and monitoring dashboards.
- Commercial support subscriptions from Digium and others.
Asterisk Development
Open-source software, allowing for customization and integration
As open source software, Asterisk can be customized via:
- Adding modules and patches for new functionality.
- Integration with web apps using Asterisk Gateway Interface (AGI).
- Modifying dialplan configurations for unique call flows.
- Building new Asterisk channels for interfacing with hardware.
Running on various operating systems with technical knowledge
Asterisk runs on several operating systems:
- Linux distributions like RedHat, Debian, CentOS.
- BSD variants like FreeBSD.
- Windows when compiled natively or via WSL.
- Virtualized platforms like VMWare, VirtualBox, Hyper-V.
Technical expertise is needed for installation and management.
Community support and resources for developers
Active forums like /r/asterisk on Reddit and Asterisk Community forum provide peer support. Documentation covers installation, administration and configurations. Certification programs like CPAS provide structured learning. Overall, resources exist for developers to tap into the Asterisk community.
Conclusion
Summary of key points
In summary, Asterisk is an open source PBX that enables deploying customized VoIP solutions from SMBs to large enterprises. Its support for multiple protocols, ability to integrate with legacy systems and open source accessibility make Asterisk a highly capable platform for VoIP.
Future development and prospects of Asterisk in the VoIP industry
Asterisk will continue evolving with new versions adding features and improvements. Adoption is expected to keep rising as organizations look to open standards for avoiding vendor lock-in. With strong community support, interoperability and scalability, Asterisk has bright prospects to remain a leading open source force in the VoIP industry.