返回更新列表
新发布Aug 21, 2026

asterisk v23.5.0-rc2

Asterisk Project 官方仓库。

分享

Asterisk(R) 开源 PBX

By Mark Spencer <[email protected]> and the Asterisk.org developer community.
Copyright (C) 2001-2025 Sangoma Technologies Corporation and other copyright holders.

安全

在尝试配置和运行 Asterisk 服务器之前,您必须阅读并充分理解安全信息文档的全部内容。

有关更多信息,请参阅重要安全注意事项

什么是 Asterisk?

Asterisk 是一个开源 PBX 和电话工具包。从某种意义上说,它是底层互联网与电话通道之间、顶层互联网与电话应用之间的中间件。然而,Asterisk 支持的不仅仅是互联网电话接口。Asterisk 还对传统 PSTN 电话提供了大量支持。

有关项目本身的更多信息,请访问 Asterisk 主页 和官方 Asterisk 文档

支持的操作系统

Linux

Asterisk 开源 PBX 主要在 GNU/Linux 操作系统上进行开发和测试,并支持所有主流 GNU/Linux 发行版。

其他

Asterisk 也已被"移植"到其他操作系统,据报道可在 Apple 的 Mac OS X 以及各种 BSD 变体上正常运行。

快速入门

如今大多数用户只使用 VoIP/SIP,但如果您需要与 TDM 或模拟服务/设备对接,请务必确保您拥有受支持的硬件。

受支持的电话硬件包括:

  • 来自 Sangoma 的所有模拟和数字接口卡
  • PortAudio 支持的任何全双工声卡
  • Xorcom Astribank 通道组

从早期版本升级

如果您要从 Asterisk 的旧版本升级,请务必阅读变更日志。

变更日志

全新安装

确保您的系统包含兼容的编译器和开发库。Asterisk 需要 GNU 编译器集合(GCC)4.1 或更高版本,或者支持 C99 规范以及部分 gcc 语言扩展的编译器。此外,您的系统需要具备可用的 C 库头文件,以及 ncurses 的头文件和库。

许多模块还具有其他依赖项。要查看正在查找哪些库,请参阅 ./configure --help,或运行 make menuselect 查看特定模块的依赖项。

在许多发行版中,这些依赖项是通过名称类似于 'glibc-devel'、'ncurses-devel'、'openssl-devel' 和 'zlib-devel' 的软件包安装的。contrib/scripts/install_prereq 脚本可用于为大多数基于 Debian 和 Redhat 的 Linux 发行版安装依赖项。该脚本也支持 SUSE、Arch、Gentoo、FreeBSD、NetBSD 和 OpenBSD,但这些发行版可能未得到完全支持,或者脚本可能已过时。

那么,让我们开始吧:

  1. 阅读文档。
    Asterisk 文档 网站提供了有关构建、安装、配置和运行 Asterisk 的完整信息。

  2. 运行 ./configure
    执行 configure 脚本以猜测编译期间使用的系统相关变量的值。如果脚本提示缺少某些必需的组件,您可以运行 ./contrib/scripts/install_prereq install 来安装必要的组件。请注意,这将为 Asterisk 的所有功能安装所有依赖项。运行该脚本后,您需要重新运行 ./configure

  3. 运行 make menuselect
    如果您想选择要编译的模块并检查各种可选模块的依赖项,则需要执行此步骤。

  4. 运行 make
    假设构建成功完成:

  5. 运行 make install
    如果这是您第一次使用 Asterisk,您可能希望安装带有演示分机等的示例 PBX。如果是这样,请运行:

  6. 运行 make samples
    这样做将覆盖您已安装的任何现有配置文件。

  7. 最后,您可以在前台模式(非守护进程)下使用 asterisk -vvvc 启动 Asterisk。
    您会看到大量详细消息在屏幕上飞驰而过,这是 Asterisk 在初始化(即"非常非常详细"模式)。当它准备好后,如果您指定了 "c",您将获得一个命令行控制台,如下所示:
    *CLI>
    您可以随时输入 core show help 获取系统帮助。要获取特定命令的帮助,请键入 core show help <command>

在 Unix/Linux 命令提示符下输入 man asterisk 将为您提供有关如何启动和停止 Asterisk 的详细信息,以及启动 Asterisk 的所有命令行选项。

关于配置文件

所有 Asterisk 配置文件都采用通用格式。注释由 ; 分隔(因为 # 当然是 DTMF 数字,可能出现在许多地方)。配置文件被划分为多个节,节名称出现在 [] 中。每个节通常包含 variable = value 形式的语句,尽管您可能会在较旧的示例中看到 variable => value

关于时间的特别说明

使用 SIP 电话的用户应注意,Asterisk 对时间的大幅跳变很敏感。使用 date(1)(或其他类似命令)手动更改系统时间可能会导致 SIP 注册和其他内部进程失败。因此,您应始终使用时间同步软件包来保持系统时间准确。所有操作系统/发行版都会提供以下一个或多个软件包:

  • ntpd/ntpsec
  • chronyd
  • systemd-timesyncd

请务必安装并配置其中一个(且仅一个)。

文件描述符

根据系统的大小和配置,Asterisk 可能会消耗大量文件描述符。在 UNIX 中,文件描述符不仅用于磁盘上的文件,还用于处理网络通信(例如 SIP、IAX2 或 H.323 呼叫)和硬件访问(例如模拟和数字中继硬件)。Asterisk 会访问许多磁盘文件,从配置信息到语音邮件存储,无所不包。

大多数系统会限制 Asterisk 一次可以打开的文件描述符数量。这可能会限制您的系统可以处理的并发呼叫数量。例如,如果限制设置为 1024(常见的默认值),Asterisk 可以同时处理大约 150 个 SIP 呼叫。要更改文件描述符的数量,请按照下面针对您的系统的说明进行操作:

基于 PAM 的 Linux 系统

如果您的系统使用 PAM(可插拔认证模块),请编辑 /etc/security/limits.conf。将这些行添加到文件末尾:

root            soft    nofile          4096
root            hard    nofile          8196
asterisk        soft    nofile          4096
asterisk        hard    nofile          8196

(根据需要调整数字)。您可能需要重新启动系统才能使这些更改生效。

通用 UNIX 系统

如果上面没有针对您的系统的具体说明,您可以尝试将命令 ulimit -n 8192 添加到启动 Asterisk 的脚本中。

更多信息

请访问 Asterisk 文档 网站,获取有关各种功能的更多文档,并请阅读所有包含配置选项说明的配置示例。

最后,您可能希望加入 Asterisk 社区论坛

欢迎加入日益壮大的全球 Asterisk 用户社区!

        Mark Spencer, and the Asterisk.org development community

Asterisk 是 Sangoma Technologies Corporation 的商标

[Sangoma] [主页] [支持] [文档] [社区论坛] [发布说明] [安全] [邮件列表存档]

分类