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的更多相关文章
- Asterisk 未来之路3.0_0004
原文:Asterisk 未来之路3.0_0004 Asterisk Wiki asterisk 的Wiki是很多启迪和困惑的发源地,另外一个最重要的VOIP知识库www.voip-info.org ...
- Asterisk 未来之路3.0_0005
原文:Asterisk 未来之路3.0_0005 第二章: Asterisk的架构 Asterisk 和其他众多传统的PBX是有区别的,拨号方案针对各种通道处理本质上采用同一种方式. 在传统的PB ...
- Asterisk 未来之路3.0_0006
原文:Asterisk 未来之路3.0_0006 Modules Asterisk 是基于模块构建的.一个模块提供某个特定的功能,它是动态的被装载.比如:信道驱动(chan_sip.so),或可以连接 ...
- Asterisk 未来之路3.0_0002
原文:Asterisk 未来之路3.0_0002 伟大的变化需要可扩展性技术 每一个现有的PBX都因为其自身的缺点变的糟糕,不管其功能如何丰富,总有一些东西会漏掉.具备非常完全功能的PBX 也不能预见 ...
- Asterisk 未来之路3.0_0003
原文:Asterisk 未来之路3.0_0003 Asterisk: The Hacker's PBX 如果电信公司忽视了asterisk,那么正在处于危险中.asterisk 良好的扩展性,能够创建 ...
- Asterisk 未来之路3.0_0001
原文:Asterisk 未来之路3.0_0001 第一章:电信技术革命 刚开始他们忽视你,然后他们嘲笑你,然后他们向你挑战,最后你赢了 ---Mahatma Ganhdi 在5年前,我最初规划写一本关 ...
- Atlas-手淘组件化框架的前世今生和未来的路
今天手淘技术团队宣布正式开源它们的容器框架Atlas,项目地址: https://github.com/alibaba/atlas 同时他们还推出了项目官网,上线了技术文档: http://atlas ...
- Superedge的新特性和未来之路
作者 王冬,腾讯云高级研发工程师,专注于Kubernetes.容器等云原生领域,SuperEdge 核心开发人员,现负责腾讯云边缘容器TKE Edge私有化相关工作. 背景 2021年9月27号,,在 ...
- 再谈 PHP 未来之路
前段时间我写过一篇博文<phper:敢问路在何方>,分析了 PHPer 的困境以及 PHP 程序员的学习.进阶突破之路.同时我在知乎上也发过类似的提问.从大家的评论和回答看,大体分为以下几 ...
随机推荐
- iOS开发- 隐藏状态栏(电池栏)
分为两种情况: 1. 想要隐藏某个视图的状态栏, 比方说, 从界面A, push 到界面B的时候, 界面A原本显示状态栏, 然而我们须要界面B不显示状态栏. 这时候, 能够这样做: 在B中实现: - ...
- LNK快捷方式漏洞利用方式 exp制作教程
前言windows的shell32在处理控制面板程序的快捷方式文件时,存在一个漏洞,能够载入硬盘上的随意DLL文件,就可以运行随意代码. 漏洞文件的生成到“控制面板”以下,右键点“显示”,点“创建快捷 ...
- 使用Eclipse设定Android开发环境
使用Eclipse设定Android开发环境 花了大概几天的时间最终搭建好了开发Android的环境了! 我是使用Eclipse +ADT顺利地搭建Android开发环境的. 如今Google以及An ...
- 客房收费系统改造(三)—厂+反射+DAL
前一段时间有一个简单的三登录功能实现窗口,心灵修养一点点,但很快就被泼了一盆冷水.房费是不可能做到在短短三年,假设你使用三个,这倒房费三个功能必须使用函数来实现.了七层的研究. 经过一个星期的看博客. ...
- Java学习笔记——泛型
假定T不仅要指定接口的类继承.使用下面的方式: public class some<T extends Iterable<T> & Comparable<T>&g ...
- validform.js使用方法
表单验证之validform.js使用方法 一.validform有什么用? 网页上有大量的input需要你进行验证的时候,如果是弹窗的话,需要不停地判断,如果为空,弹窗.如果不是数字,弹窗. 所以要 ...
- git 如何让单个文件回退到指定的版本
1.进入到文件所在文件目录,或者能找到文件的路径查看文件的修改记录 1 $ git log MainActivity.java 结果: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 ...
- 网络资源(1) - Hadoop视频
2014_08_23: hadoop03c_分布式文件系统HDFS http://v.youku.com/v_show/id_XNDgwNjg1OTY0.html?f=18604686 2014_08 ...
- android该系统的应用API选择演示版本
转载请注明出处[http://blog.csdn.net/y150481863/article/details/41280045] 首先我们在开发一个应用之前,特别是一个android应用.首先要考虑 ...
- HDU 1248 冰封王座(dp)
Problem Description 不死巫妖王拉工资,死亡骑士得到N美元的钞票(记,只有一个纸币),战斗中频繁的死掉,他决定给自己买一些道具,于是他来到了地精商店前. 死亡骑士:"我要买 ...