第一章 关于Asterisk项目(About the Project)¶
1. Asterisk 项目的简史¶
1. 背景起点:Linux Support Services 的诞生¶
在 1999 年,正值互联网泡沫(dot-com bubble)高峰期,Mark Spencer——时任奥本大学(Auburn University)计算机工程专业的学生——洞察到开源操作系统 Linux 正在迅速普及,而企业对商业化技术支持的需求日益增长。这直接促使他创办了 Linux Support Services (LSS),一个专注于为 Linux 提供收费支持热线的公司。
技术与商业背景分析:
- 技术维度:Linux 是高度模块化的自由软件,其自由可修改的源代码吸引了大量企业。
- 商业维度:彼时商业 Linux 支持尚属空白,LSS 的成立填补了这个市场空缺。
现实挑战:
随着业务扩展,LSS 需要构建具备呼叫分配能力的电话系统。传统 PBX 系统的高昂成本(报价普遍超出 5 万美元)成为门槛。
2. 解决方案——自研电话系统¶
在面对成本压力时,Mark 并未选择贷款采购商业 PBX 系统,而是做出了极具远见的决定——自主编写一个电话系统软件。这一决策直接成为 Asterisk 项目的起点。
工程背景:
- Mark 曾在 Adtran 公司参与电信系统开发,积累了扎实的通信领域实战经验。
- 初期 Asterisk 的原始核心代码由他一人编写完成。
开源决定:
- GPL 授权发布:Mark 将 Asterisk 项目源代码通过 GPL(GNU General Public License)协议公开,允许其他开发者查看、修改并贡献代码。
- 这一开源策略成为项目快速发展的关键——开放协作是 Asterisk 社区生态繁荣的基石。
- 对比其他项目:尽管当时已有少量开源通信项目存在,但 Asterisk 首次实现了一个功能完整的、可部署的开源 PBX 系统,其影响力远超前者。
3. 商业化演进:Digium 的成立与发展¶
2001 年,Linux Support Services 更名为 Digium,作为 Asterisk 项目的商业推动者与官方维护机构之一。Digium 在以下方面发挥了关键作用:
- 为开源社区提供基础设施支持与技术文档;
- 商业化周边产品(如硬件卡、支持服务);
- 提供认证版本 Asterisk(如 Certified Asterisk)以供企业部署;
- 持续推动 Asterisk 核心代码的发展并引导其技术演进。
- Digium 已于 2018 年被 Sangoma Technologies 收购,但其对 Asterisk 的维护职能依旧延续。
4. Asterisk 的发展现状¶
Asterisk 不再是一个单纯的 PBX 项目,而是发展成为一套通信开发工具包(communications toolkit),其核心价值体现在灵活性、可定制性与模块化架构。
- Asterisk 版本控制与支持周期: 包含发布节奏、EOL(生命周期结束)信息.
- Roadmap: 展示未来功能路线图及开发会议计划.
- ChangeLogs: 每一版本的新功能与变更详单.
- 论坛: 实时关注开发者讨论热点与社区动态.
5. 小结:Asterisk 与传统 PBX 系统的架构对比¶
| 特性 | 传统专有PBX | Asterisk |
|---|---|---|
| 软件开放性 | 封闭源码,需授权购买 | 完全开源,GPL 授权 |
| 灵活性与可定制性 | 低,功能固定 | 高,可通过拨号计划、模块编程扩展功能 |
| 硬件依赖性 | 依赖特定厂商设备 | 通用 x86 服务器即可 |
| 开发者生态 | 少量闭源开发团队 | 成千上万开源贡献者组成全球社区 |
此架构优势使 Asterisk 成为呼叫中心、SIP 中继平台、IVR 系统、软交换(softswitch)等场景中的首选解决方案。
2. Asterisk 的安全漏洞处理机制¶
1. 安全治理原则¶
Asterisk 项目非常重视用户系统的安全性。为了确保漏洞响应机制的有效性,官方设立了标准化流程用于接收、分析与修复安全问题。开发团队采用透明但有控制的披露机制,以平衡开源社区的开放性与安全防护之间的关系。
Note
不要将安全漏洞直接发布在公开问题追踪器中!
1. Asterisk Issue Tracker 是公开站点,所有提交的问题默认对外公开可见。
2. 错误提交方式的风险: 如果在未加限制的情境下报告漏洞,恶意行为者可在补丁发布前利用漏洞攻击全网部署的 Asterisk 系统。
3. 在提交安全漏洞时,必须使用 “Report a vulnerability” 链接。该通道会自动限制查看权限,仅允许维护者与漏洞提交者查看和处理相关内容。
2. 高级安全管理策略建议¶
对于基于 Asterisk 构建的 VoIP 平台,建议结合如下安全治理措施:
- 启用 fail2ban 自动屏蔽恶意 IP(监控 asterisk.log)
- 使用 TLS + SRTP 加密 SIP 信令与媒体通道
- 定期跟踪 安全通告 并主动补丁升级
- 对 AMI 和 ARI 接口做细粒度权限控制(manager.conf / ari.conf)
- 部署 WAF 和 IDS 系统监测常见 SIP 攻击(如 INVITE flood)
3. Asterisk 版本管理¶
1. 版本类型与生命周期策略¶
Asterisk 项目采用 “版本系列”(Release Series)+ 生命周期管理(Release Lifecycle) 的机制,确保系统的持续更新与长期可维护性。Asterisk 版本分为两大类:
| 版本类型 | 支持周期 | 特点说明 |
|---|---|---|
| LTS(长期支持) | 4 年全功能支持 + 1 年安全维护 | 适合生产环境,重稳定性与生命周期长度 |
| Standard(标准版) | ≥1 年全功能支持 + 1 年安全维护 | 更快发布节奏,包含最新功能但生命周期较短 |
2. 当前与历史版本全览¶
Asterisk 从 1.2.x 开始发布,至今已经历了多个 LTS 与标准版本交替发布的周期。下面是部分重点版本的生命周期特征汇总:
| 发布系列 | 类型 | 发布时间 | 安全维护至 | EOL | 当前状态 |
|---|---|---|---|---|---|
| 13.x | LTS | 2014-10-24 | 2020-10-24 | 2021-10-24 | EOL |
| 16.x | LTS | 2018-10-09 | 2022-10-09 | 2023-10-09 | EOL |
| 18.x | LTS | 2020-10-20 | 2024-10-20 | 2025-10-20 | 仅安全维护中 |
| 20.x | LTS | 2022-10-19 | 2026-10-19 | 2027-10-19 | 正在全面支持中 |
| 22.x | LTS | 2024-10-16 | 2028-10-16 | 2029-10-16 | 正在全面支持中 |
| 21.x | Standard | 2023-10-18 | 2025-10-18 | 2026-10-18 | 正在全面支持中 |
观察规律:每年发布一次新版本,奇数年为 Standard,偶数年为 LTS。
3. 如何选择合适的版本¶
| 使用场景 | 建议选择版本 |
|---|---|
| 企业生产系统 | 最新的 LTS 版本(如 20.x 或 22.x) |
| 功能实验、新技术验证 | 最新的 Standard 版本(如 21.x) |
| 教学/二次开发入门环境 | 稳定的旧 LTS(如 18.x)或当前 LTS |
4. Sangoma 与 Digium 合并常见问答¶
1. 合并缘由¶
2018 年,Sangoma Technologies 宣布收购 Digium,将两大开源通信技术厂商合并。这次收购本质上是产业集中与生态整合的战略行为,意图通过资源合并加强在 Unified Communications(统一通信)市场中的竞争力。
Asterisk 是 Digium 的核心资产,FreePBX 是 Sangoma 的旗舰开源 PBX 项目,两者互补性强,是该整合的主要驱动因素之一。
2. 对 Asterisk / FreePBX 项目的影响:逐问详解¶
| 常见问题 | 解答与解释 |
|---|---|
| Asterisk 会消失吗? | 不会。Asterisk 是两家公司的核心战略组成部分,仍将长期持续发展。 |
| FreePBX 会消失吗? | 不会。FreePBX 作为 GPL 授权的项目,自 2004 年起已建立稳固社区生态。 |
| 是否会闭源? | 不会。两者都在 GPL 下发布,版权法律保障开源特性不能被更改或私有化。 |
| 项目负责人是否更换? | 没有更换,开发核心团队保持不变,确保项目连续性。 |
| 分发模式是否变化? | 没有变化。仍然可通过 tarball 下载源代码,自由构建与集成。 |
3. 商业合并对开源治理模型的启示¶
开源项目治理要点体现:
- 代码授权不可逆(GPL):即便公司并购,项目代码依旧受制于原始协议,社区利益不会丧失。
- 社区主导开发与公司资源并行:项目继续开放开发流程,同时可享受企业支持资源。
- 分发策略灵活、面向多层用户群体:
- 工具链层面:开发者继续通过源代码构建
- 应用层面:中小企业使用 FreePBX 或 ISO 集成发行版
- 企业层面:使用 Certified Asterisk 获得 SLA 支持
- 对开发者的实际建议:
- 不必担忧 Asterisk/FreePBX 的未来——这些项目具有强大的社区韧性与商业支撑;
- 对于定制型项目开发者,继续使用源代码构建部署不会受任何限制;
- 商业部署中可结合 Certified Asterisk 获取技术支持与认证硬件保障。
5. 支持的平台(Supported Platforms)¶
1. Asterisk 可构建在多种平台上,但官方支持有限¶
尽管 Asterisk 的代码架构具有高度可移植性,可以在多种 Linux 系统和处理器架构上构建运行,但官方仅支持并测试特定的主流 Linux 发行版与架构,以确保质量控制和构建一致性。
2. 官方支持的发行版与平台¶
| 支持类型 | 描述 |
|---|---|
| CPU 架构 | 32-bit 和 64-bit x86 平台(x86, x86_64) |
| 操作系统(非 EOL) | CentOS、RHEL、Fedora、Ubuntu、Debian |
Warning
由于编译器(如 gcc、clang)在新版本中引入的严格语义和行为变化,Linux 发行版升级可能会导致旧版本 Asterisk 无法编译通过。
3. 工程实践建议¶
| 应用场景 | 推荐平台配置 |
|---|---|
| 企业级部署 | RHEL/CentOS + x86_64,配合系统包管理(如 RPM) |
| 高稳定性集群环境 | Debian LTS / Ubuntu LTS,统一版本控制与内核管理 |
| 边缘设备或轻量级部署 | 可通过社区适配构建在 ARM(如 Raspberry Pi)等平台,但需自测 |
| 版本迁移/升级测试平台 | 使用 Fedora 等更新迅速的发行版测试新编译器对 Asterisk 的影响 |
6. Asterisk 的授权协议¶
1. 核心授权模式:GNU GPLv2¶
Asterisk 项目主代码基于 GNU General Public License version 2(GPLv2) 授权发布。GPLv2 授权文档随 Asterisk 源码包一起提供,位于 COPYING 文件中。其核心含义如下:
| 特性 | 描述 |
|---|---|
| 自由使用 | 允许任何人使用、运行、复制和传播软件 |
| 开放源代码 | 必须公开完整源代码 |
| 衍生作品要求开源 | 对代码的修改或衍生必须同样以 GPL 方式发布(“传染性”) |
2. 多重授权机制(Dual Licensing)¶
虽然 Asterisk 主体遵循 GPLv2,但 Digium(现 Sangoma)作为主要版权持有者,拥有合法权利以其他授权形式对外发布 Asterisk 的代码或组件,即所谓的“多重授权模型”(Multi-licensing/Dual-licensing):
可行用途包括:
- 为某些商业客户提供 非 GPL 授权的专有许可
- 允许第三方开发 与 Asterisk 动态链接 的闭源模块(通过协商获得许可)
- 前提是该模块动态链接到 Digium 授权覆盖范围的部分,且必须符合其商用许可政策。
3. 接口协议的授权解耦:GPL 的“边界豁免”¶
Asterisk 定义了多个控制接口(非二进制链接),Digium 明确声明这些协议不构成 GPL 所定义的“衍生作品”,即:
| 接口 | 是否受 GPL 约束 | 说明 |
|---|---|---|
| AMI(Asterisk Manager Interface) | ❌ 否 | 纯文本 TCP 协议 |
| AGI(Asterisk Gateway Interface) | ❌ 否 | 通过进程通信与脚本语言集成 |
| ARI(Asterisk REST Interface) | ❌ 否 | 纯 HTTP JSON REST 接口 |
推论:你可以使用任何授权的应用程序(闭源亦可)通过这些接口与 Asterisk 通信而无需 GPL 兼容授权。
保险策略:Digium 特别声明,即便法律裁决这些协议构成衍生作品,它也授予开发者授权使用这些协议,无需 GPL 限制。
4. 商标使用政策和声音资源授权¶
- Asterisk 名称和徽标 是 Digium 拥有的注册商标,如要用于商业宣传、集成产品命名等,需要依照 Sangoma 的商标许可政策进行授权申请
- Asterisk 附带的语音提示、音乐保留了单独授权策略:
- 语音提示(Voice Prompts)授权信息:
Asterisk 项目所附带的所有语音提示内容(如系统菜单、IVR 播报、错误提示等),遵循 Creative Commons Attribution-Share Alike 3.0 (CC BY-SA 3.0) 授权协议。 - 保持音乐(Music On Hold)授权信息:
Asterisk 系统中内置的“保持音乐”(MOH,Music On Hold)通常在呼叫等待时播放,其音源来源于 opsound.org,并遵循 CC BY-SA 2.5 授权协议。
5. 开源通信系统的法律与商业治理模型¶
- Asterisk 的授权模型特征:
- 核心 GPL 开源保障社区发展
- 双授权机制保障商业盈利与集成灵活性
- 开放协议接口减少法律风险,提高平台生态吸引力
- 商标与语音等非代码资产采用区别授权方式加强品牌控制
对系统集成商与平台开发者的建议:
| 角色 | 法律建议 |
|---|---|
| 平台开发者 | 确保模块未直接链接 Asterisk 核心,或明确 GPL 兼容性 |
| 商业部署 | 若需闭源插件,务必与 Sangoma 获取合法授权 |
| 第三方语音服务商 | 遵循声音资源授权协议,避免语音版权侵权风险 |
| UI/管理界面开发者 | 推荐通过 ARI/AMI 构建前端,规避 GPL 绑定 |