Asterisk是一個由21歲的Mark Spencer在1999年創建的開放源代碼VoIP(Voice over Internet Protocol)PBX(Private Branch Exchange)系統,旨在提供一個功能全面的通信平台,讓用戶能夠以極低的成本實現商業級別的電話服務。作為一個基于Linux環境的软件解决方案,Asterisk的核心能力在于它的IPPBX功能,它可以替代传统的電話交換機,並支持各種業務,包括语音信箱、會議和多媒体通信。
Asterisk的架構设计精良,主要由六個核心部分组成:
1. PBXSwitchingCore(PBX交換核心):这是Asterisk的核心组件,负责处理所有的呼叫路由和交换功能,实现用户之间的通话连接。
2. Scheduler and I/O Manager(排序與I/O層):这部分管理系统的输入/输出操作,确保数据的高效传输,同时负责任务调度和优先级管理。
3. Application Launcher(應用程式層):这一层允许用户添加自定义的应用程序和服务,扩展Asterisk的功能,以满足特定的通信需求。
4. Codec Translator(編碼轉換核心):Asterisk支持多种编解码技术,如ADPCM、G.711、G.723.1、G.726、G.729(需购买商业授权)、GSM、iLBC、Linear LPC-10 和 Speex,以适应不同的音频格式和通信标准。
5. Dynamic Module Loader(動態模組載入器):通过这个模块,Asterisk能够动态加载和卸载插件,以保持系统的灵活性和可扩展性。
6. CDRCore(帳務核心):用于记录和分析电话通话数据,包括通话时长、费用等,有助于计费和审计。
Asterisk的协议支持也非常广泛,包括IAX(Inter-Asterisk Exchange),H.323,SIP(Session Initiation Protocol)以及MGCP(Media Gateway Control Protocol),这使得Asterisk能与其他通信系统无缝集成,适应多种网络环境。
由于其开源特性,Asterisk吸引了众多开发者和企业的参与,例如Trixbox(前身Asterisk Home,以其易用性和高普及率著称)、Elastix等后起之秀,这些套件在此基础上进一步优化和定制,特别适合在低成本设备上安装,如基于Flash DOM的轻型部署。总体来说,Asterisk因其高度灵活、成本效益高和强大的功能,已经成为中小企业和个人开发者构建电话系统和多媒体通信平台的首选工具。