第二章 Asterisk 社区(Community)¶
1. 社区行为规范¶
1. 社区背景与多样性挑战¶
Asterisk 是一个横跨全球的开源项目,社区成员来自多个国家、文化和技术背景,涵盖:
- 开发者、系统管理员、文档撰写者;
- 通信专家、开源倡导者、商业集成商;
- 从入门用户到核心维护者
行为规范的核心目标 是为这个高度多元化的社区提供一个健康、友好、无歧视的协作环境,确保对话的技术性、理性和包容性。
2. 项目领导结构(Project Leadership)¶
当前项目核心由 Sangoma Technologies 主导,职责包括:
| 职责 | 内容 |
|---|---|
| 技术贡献 | 参与 Asterisk 核心模块的开发与维护 |
| 资源支持 | 提供基础设施(CI/CD、问题追踪、邮件列表、Git 仓库等) |
| 社区治理 | 执行行为准则、推动社区发展方向 |
2. 社区服务¶
| 服务类型 | 描述 |
|---|---|
| 问题追踪(Issue Tracking) | 用于记录、管理 bug 报告、特性请求与补丁审查,详见:Asterisk Issue Guidelines |
| Wiki | 中心化技术文档平台(如模块文档、部署建议、调试指南等) |
| 代码贡献 / 版本控制 | 贡献代码的标准流程(基于 Git/GitHub 管理),详见:Code Contribution Policies |
| 源代码浏览(Source Browsing) | GitHub 仓库托管主干代码:github.com/asterisk/asterisk |
| 邮件列表(Mailing Lists) | 提供开发者之间非实时的技术讨论渠道,详见:Mailing Lists 页面 |
3. Asterisk 模块支持¶
1. 背景与模块状态分类¶
Asterisk 是一个高度模块化的系统,每个功能组件几乎都是以独立模块(.so 动态库)形式实现。由于模块的维护者、功能成熟度和社区支持程度不同,Asterisk 项目将模块划分为三种支持状态(Support States):
| 支持状态 | 简述 |
|---|---|
| Core(核心) | 由 Sangoma 和社区共同维护,官方支持,建议默认启用 |
| Extended(扩展) | 社区维护为主,官方不保证 bug 修复,仅保证可构建和处理安全问题 |
| Deprecated(弃用) | 推荐使用替代模块,官方不再修复功能,仅限安全补丁,构建非默认启用 |
2. 工程实践建议¶
| 操作 | 建议做法 |
|---|---|
| 开发新模块 | 明确声明 |
| 维护现有模块 | 定期评估是否转为 core 或 deprecated |
| 企业部署 | 审核部署模块状态,尽量避免使用 deprecated 模块 |
| CI 流程 | 在构建过程中启用 menuselect 自动检测模块支持状态,作为质量门槛控制机制之一 |