设置 Asterisk 通道流媒体
![]() 草稿已超过两年 (讨论) |
![]() 在移除此通知之前,请勿遵循此处的说明。 |
Asterisk 通道流媒体操作指南
简介
Asterisk 以 VoIP 服务而闻名。显然,VoIP 技术的本质需要实时通信,这对网络连接层提出了特定的要求,例如链路速度/带宽、IP 数据包优先级/控制和网络延迟。
在某些情况下,提供至少单向通信能力是可取的。例如,这个想法可以用于让那些与总部网络连接层仍然相对较差的远程地点,至少“收听”通过 Asterisk MeetMe 会议功能组织的 корпоративный 工作会议/会议。另一个应用是将 Asterisk 通道流式传输到互联网。
它是如何工作的?
Asterisk 与声音流媒体软件(如 Icecast2 服务器)结合使用。流媒体技术提供“缓存/缓冲”功能。因此,广播/接收到的声音被缓冲,这有助于整体音质保持高水平,从而克服网络带宽和延迟中的大多数问题。
Asterisk 系统发起自动呼叫以连接两个分机。一个分机提供 Asterisk 通道声音(MusicOnHold、Playback、MeetMe 等),第二个分机启动 Asterisk Ices 应用程序并将声音合并到其中。Ices 应用程序依赖于 Icecast Ices,Icecast Ices 是 Icecast2 服务的声源。
通过 Icecast Ices 和 Asterisk Ices 应用程序将声音合并到 Icecast 服务后,可以使用 WinAmp、VLC 媒体播放器收听 ogg 音频流。应根据当地需求调整流缓存参数,以获得可接受的音质。
设置 Asterisk Ices 应用程序
首先,我们需要安装 asterisk
apk add asterisk
由于我们计划使用 MeetMe 功能,我们还需要一个计时器
apk add dahdi-linux dahdi-linux-grsec asterisk-dahdi
然后我们需要确保模块在启动时加载
echo dahdi >> /etc/modules-load.d/dahdi.conf
Asterisk 默认在 asterisk 用户下运行。dahdi 伪设备的所有者是 root。我们需要更改它
chown asterisk:root /dev/dahdi/*
注意 :每次重启后,权限都会被重置。因此,您需要将该命令放入启动后运行的脚本中。
最后,将 asterisk 添加为启动服务
rc-update add asterisk
可选地,我们可以安装 asterisk 的示例配置
apk add asterisk-sample-config
不要忘记重启以加载 dahdi 模块(参见上面的注释)。
设置 Icecast Ices 源
Ices2 软件包位于 Edge/testing 仓库中(请参阅 Edge 以激活它)。
apk add ices2
或者,您可以从源代码编译它。为此,我们需要编译器的软件包
apk add alpine-sdk
然后我们需要编译 ices 的适当依赖项 :
apk add libshout-dev libogg-dev libvorbis-dev libxml2-dev
我们获取源代码 :
cd /root wget http://downloads.us.xiph.org/releases/ices/ices-2.0.2.tar.gz
解压缩 :
tar -zxvf ices-2.0.2.tar.gz
编译并安装 :
cd ices-2.0.2 ./configure make make install
设置 Icecast2 服务
Icecast2 已经有一个软件包构建
apk add icecast
我们将 Icecast 服务器添加到启动项
rc-update add icecast
编辑 /etc/icecast.xml 以满足您的需求。

Icecast 默认以 Icecast 用户身份运行。在某些情况下,以 Asterisk 用户身份运行可能很有用
chown -R asterisk:asterisk /var/log/icecast* chown -R asterisk:asterisk /usr/local/share/icecast*
并在 icecast.xml 中更改这些设置
内容 /etc/icecast.xml