学习Asterisk——简介

Asterisk是一款实现用户电话交换机(PBX)功能的自由软件、开源软件。它提供了完善的PBX功能,可以连接多种不同的电话终端,包括普通电话机、IP电话、软电话等,支持多种主流的IP电话协议和系统接口。还有比如:语音信箱、会议电话、交互式语音提示和自动电话转接等。

Asterisk可以运行在Linux或Windows等操作系统下,它支持主流VoIP协议,包括会议发起协议(SIP)、H.323,既可作为IP电话服务器也可以作为IP电话和PSTN之间的转接。还设计了一个新协议IAX,用于在Asterisk服务器之间维护话路通道。如果需要连接普通电话或PSTN中继线,运行Asterisk的服务器则需要安装相应的硬件接口板。

Asterisk内部核心:共分为6个部分

PBX核心交换模块

调度和IO管理模块

应用调用模块

编码转换模块

动态模块加载器模块

CDR生成模块(即时呼叫详细记录报告)

Asterisk基本呼叫流程

一个电话呼叫在一个通道驱动接口(如SIP通道)上到达;动态驱动在该通道上创建一个PBX通道并启动一个PBX线程;拨号方案被执行,拨号方案在一些地方通过dial应用(app_dial.c)强制Asterisk创建一个呼叫呼出,一旦呼出Asterisk以下2个动作发生:

  1.     dial创建一个呼出的PBX通道,并请求一种通道驱动创建一个呼叫。

  2.     当呼叫被应答时,Asterisk桥接媒体流,于是第一个通道上的主叫可以与第二个通道也就是呼出通道上的被叫通话。

你可能感兴趣的:(学习Asterisk——简介)