原文:Asterisk 未来之路3.0_0007

Modules

Asterisk 是基于模块构建的。一个模块提供某个特定的功能,它是动态的被装载。比如:信道驱动(chan_sip.so),或可以连接第三方产品模块(func_odbc.so)。asterisk的模块加载依赖于配置文件/etc/asterisk/modules.conf文件。在本书中我们将讨论各种模块,在这这一小节,我们了解一下模块的概念,然后给一个模块可用性的印象。

实际上,在启动asterisk时,不需要加载任何的模块,虽然在这个模式下asterisk不能做任何东西。对于理解asterisk模块的概念本质和架构是非常有用的。

asterisk包含的模块种类如下:

Applications

Briage modules

Call detailrecording

Channel eventlogging

Channel drivers

Codec translators

Formatinterpreters

Dialplan functions

PBX modules

Resource modules

Addonsmoudules

Test Modules

下面的小节,我们将列举一下分类内部的模块的可用性,简单介绍一下它的目的和在其受欢迎程度和重要性方面,给出我们的观点。(有些模块已经被证明非常受欢迎,有一些模块比较老了,勉强能用,或者仅仅是为了兼容以前的版本才去维护它)模块详细工作的细节将会包含在本书中的各个章节。有一些模块覆盖全书,有一些模块出现在独立的章节,有些可能根本不会涉及到,这依赖于这是那个模块和她用来做什么的。

要重视下表中的Popularity/Status的一列,这一列包含了我们对模块的观点。

不重要的

这个模块是古老的。如果你使用它,要注意大部分的要靠你自己,不要指望来自社区的任何支持。

不可靠的

        这个模块是新的或很少使用,不适合作为产品发布

很有用

这个模块是当前的,维护的,受欢迎的,推荐使用。

可以用

这个模块能够工作,但可能不完善或不受欢迎或者不被作者推荐使用。

新的

这个是新的,它的完善程度和受欢迎度还无法估计。

不赞成使用

这个模块已经被其他更高级的模块取代了。

受限制的

这个模块有局限性,可能不会满足你的需求

很有用

这个模块是你必须选择的。

现在让我们理解看一下这些模块,他们按照模块类型分组的。

Applications

拨号方案的applications在extension.conf中使用,主要是定义一些作用于call的动作,比如:Dial()applications主要负责呼出连接到外部资源,他是非常重要的dialplan
application.下面的表2-1 available applications被列举在表2-1。

Table 2-1Dialplan applications

名称

目的

受欢迎度/状态

app_adsiprog

装载模拟显示服务接口脚本

不重要

app_alarmreceiver

支持接收报警设备的报告

不重要

app_amd

检测应答机

不可靠

app_authenticate

比较dtmf同提供的字符串

有用

app_cdr

写cdr记录

有用

app_celgenuserevent

为CEL生成用户自定义事件

新的

app_chanisavail

检测通道的状态

不可靠

app_channelredirect

使一个信道进入dialplan中其他部分

有用

app_chanspy

允许一个通道监听另外一个通道的语音

有用

app_confbriage

会议功能

新的,功能还不完善

app_controlplayback

控制播放

有用

app_dahdibarge

允许插入DAHDI
通道

不赞成使用,用 chanspy代替

app_dahdiras

在DAHDI信道上建立RAS服务

不重要

app_db

用于操作asterisk 内置的数据库

不赞成使用,用func_db代替

app_dial

用于连接信道(比如:打电话)

非常重要

app_dictate

播放录音提供启动和停止功能

有用

app_directed_pickup

替别人应答

有用

app_directory

voicemail的名称列表

有用

app_disa

提供dialtone并且接收DTMF的输入

有用

app_dumpchan

在asterisk控制台输出信道变量

有用

app_echo

回放从信道中接收到语音

有用

app_exec

基于某种条件执行applications。

Exec\TryExec\ExecIf

有用

app_externalivr

类似于asterisk控制AGI,是异步的

有用

app_fax

提供发送传真和接收传真

有用

app_festival

TTS  festival 引擎

可以用

app_flash

在信道上执行插簧动作

有用

app_followme

基于follow.conf执行find me/followme的功能

有用

app_forkcdr

在当前通道启动新的CDR记录

不可用

app_getcpeid

获取ADSI CPE ID

不重要

app_ices

发送音频到ice cast
服务器

不可用

app_image

发送图像对支持的设备

受限制

app_ivrdemo

对开发者的一些sample

不重要

app_jack

使用JACK工具在兼容的app包共享音频

有用

app_macro

触发拨号方案宏

已经废弃

app_meetme

提供多方会议

有用,完全支持

app_milliwatt

生成1004HZ的音频,测试模拟回路

有用

app_minivm

提供原始功能,可以帮助构建自己的voicemail的应用

可以用

app_mixmonitor

录音双向语音并且将其混音

有用

app_morsecode

生成莫斯电码

可以用

app_mp3

使用mpg123播放 mp3

不重要

app_nbscat

获取NBS流

不重要

app_orignate

允许发起一次呼叫

有用

app_osplookup

执行OSP 查询

可以用

app_page

将多路音频连接到指定的设备

有用

app_parkandannounce

对于暂停的calls
自动语音公告

可以用

app_playback

在指定的通道上,播放文件

有用

app_playtones

以指定的频率播报按键音

有用

app_privacy

如果Caller没有被收到,获取主叫的号码

不重要

app_queue

提供ACD功能

有用

app_read

获取主叫输入的数字,并将其赋值给变量

有用

app_readexten

获取主叫输入的数字,并将call转给指定的context

可以用

app_readfile

将文本内容赋值给信道变量

已废弃,参考func_env

app_record

录音

有用

app_rpt

为rpt工程提供了同声卡的接口

有局限

app_sayunixtime

以指定的格式播报时间

有用

app_senddtmf

传递dtmf到主叫方

有用

app_sendtext

发送文本串到兼容信道

有用

app_setcallerid

设置信道的主叫

废弃,参考func_callerid

app_skel

开发者的sample

有用

app_sms

发送  sms
信息在支持的地区

有局限性

app_softhangup

请求挂断信道

有用

app_speech_utils

提供语音识别功能

有用

app_stack

提供Gosub,GosubIf,Return,Pop等堆栈相关的操作。

很有用

app_system

执行Linux shell
的命令

有用

app_talkdectect

类似于app_background,但是允许再收到语音时打断回放

有用

app_test

C/S 测试app

可用

app_transfer

在当前导通道上执行转接

有用

app_url

传递url到被叫信道

有用

app_userevent

生成客户事件(AMI)

有用

app_verbose

在CLI生成自定义事件

有用

app_voicemail

提供语音信箱功能

有用

app_waitforring

等待振铃信号事件(不要和RINGING搞混了),可能是没有必要的,因为只有dadhdi的模拟通道才会有ringing接收到(FXO口),才生成RINGING信号事件

不重要

app_waitforsilence

包括WaitforSilence和waitfornoise,在指定听多少毫秒静音或杂音后,监听输入信道

有用

app_waituntil

等待指定的linux时间的到达

有用

app_while

包括

While,Enwhile,ExitWhile,ContinueWhile,在播放方案中,提供while-loop功能

有用

app_zapateller

生成SIT音为防止电信推销

不可用

Asterisk 未来之路3.0_0007的更多相关文章

  1. Asterisk 未来之路3.0_0004

    原文:Asterisk 未来之路3.0_0004 Asterisk Wiki   asterisk 的Wiki是很多启迪和困惑的发源地,另外一个最重要的VOIP知识库www.voip-info.org ...

  2. Asterisk 未来之路3.0_0005

    原文:Asterisk 未来之路3.0_0005 第二章: Asterisk的架构   Asterisk 和其他众多传统的PBX是有区别的,拨号方案针对各种通道处理本质上采用同一种方式. 在传统的PB ...

  3. Asterisk 未来之路3.0_0006

    原文:Asterisk 未来之路3.0_0006 Modules Asterisk 是基于模块构建的.一个模块提供某个特定的功能,它是动态的被装载.比如:信道驱动(chan_sip.so),或可以连接 ...

  4. Asterisk 未来之路3.0_0002

    原文:Asterisk 未来之路3.0_0002 伟大的变化需要可扩展性技术 每一个现有的PBX都因为其自身的缺点变的糟糕,不管其功能如何丰富,总有一些东西会漏掉.具备非常完全功能的PBX 也不能预见 ...

  5. Asterisk 未来之路3.0_0003

    原文:Asterisk 未来之路3.0_0003 Asterisk: The Hacker's PBX 如果电信公司忽视了asterisk,那么正在处于危险中.asterisk 良好的扩展性,能够创建 ...

  6. Asterisk 未来之路3.0_0001

    原文:Asterisk 未来之路3.0_0001 第一章:电信技术革命 刚开始他们忽视你,然后他们嘲笑你,然后他们向你挑战,最后你赢了 ---Mahatma Ganhdi 在5年前,我最初规划写一本关 ...

  7. Atlas-手淘组件化框架的前世今生和未来的路

    今天手淘技术团队宣布正式开源它们的容器框架Atlas,项目地址: https://github.com/alibaba/atlas 同时他们还推出了项目官网,上线了技术文档: http://atlas ...

  8. Superedge的新特性和未来之路

    作者 王冬,腾讯云高级研发工程师,专注于Kubernetes.容器等云原生领域,SuperEdge 核心开发人员,现负责腾讯云边缘容器TKE Edge私有化相关工作. 背景 2021年9月27号,,在 ...

  9. 再谈 PHP 未来之路

    前段时间我写过一篇博文<phper:敢问路在何方>,分析了 PHPer 的困境以及 PHP 程序员的学习.进阶突破之路.同时我在知乎上也发过类似的提问.从大家的评论和回答看,大体分为以下几 ...

随机推荐

  1. Think in Java(一):Java基础

    一. OOP的特点 (1) 万物皆为对象; (2) 程序是对象的集合,他们通过发送信息来告诉彼此所要做的; (3) 每一个对象都有自己的由其它对象所构成的存储; (4) 每一个对象都拥有它的类型; ( ...

  2. Java之旅(三)--- JSTL和EL表情

     先给大家看一段JSP的代码.看看有什么感受? <% List<UsEL> usELList = pageModel.getList(); for (ItELator<Us ...

  3. 在InstallShield中发布单一的Setup.exe文件

    原文:在InstallShield中发布单一的Setup.exe文件 InstallShield默认的Release模式下,生成了一个setup.exe文件,一个msi文件,以及一些其它的杂项文件. ...

  4. 開始开发 Dashboard Widgets,第2章,读书笔记

    文件夹:http://blog.csdn.net/wide288/article/details/40298693 主要内容: widgets 的组成是什么. 怎么创建 info.plist 文件 怎 ...

  5. 重写IHttpHandler,实现前后端分离

    再说重写IHttpHandler,实现前后端分离   aspx页面第一次加载时,HttpHandler 里面是如何编译指定页面的呢?Framework提供了编译页面的API如下: BuildManag ...

  6. 如何获得android手机通讯录的字母显示(两)

    随后的写如何使各第一字母显示相同的分类触点: 于adapter implement SectionIndexer 这项adapter必须在下面可以实现3接口: @Override public Obj ...

  7. java多线程检测可用IP

    最近有一个问题进行系统性能优化的时候来到.解析分享给大家后,. 我们socket当建立连接,假设我们不能将计算机连接到指定的站点,那么这将导致系统卡socket的connect在此方法. 我们都知道s ...

  8. ABP展现层——动态生成WebApi

    ABP展现层——动态生成WebApi 点这里进入ABP系列文章总目录 ABP(现代ASP.NET样板开发框架)系列之20.ABP展现层——动态生成WebApi ABP是“ASP.NET Boilerp ...

  9. Theano学习笔记(三)——图结构

    图结构(Graph Structures)这是理解Theano该基金会的内部运作. Theano编程的核心是用符号占位符把数学关系表示出来. 图结构的组成部分 如图实现了这段代码: importthe ...

  10. 独立博客网站FansUnion.cn操作2多年的经验和教训以及未来计划

    今天,我把运营了2年的独立博客站点FansUnion给"归零"了.    2012年6月.我成功搭建了自己的博客站点FansUnion.cn,这是因为自己的不懈努力和时代发展成就的 ...