当前位置:文档之家› Asterisk权威-第01-02-03章

Asterisk权威-第01-02-03章

Asterisk权威-第01-02-03章
Asterisk权威-第01-02-03章

Asterisk权威指南/第一章一场电话革命

当我们开始着手写一本Asterisk书的时候(大概五年前),我们确信Asterisk将会从根本上改变通讯行业。今天,我们预言的这场革命几乎就要完成了。Asterisk现在是世界上最成功的PBX,并且是通讯行业的公认技术(尽管并不总是受欢迎)。

不幸的是,在过去五年中,通讯行业仍然没有找到正确的方向。我们通讯的方式已经变了。尽管20年前打电话是远距离通讯的首选方式,但目前的趋势是文本消息(email,IM,等等)。打电话看起来有点out了,特别对于成长起来的下一代来说。

Asterisk仍然是很棒的技术,对于想在任何技术中集成通讯功能的企业来说,Asterisk还是最佳选择。

使用Asterisk,没有人可以规定你系统的工作方式,或者限制你使用的技术。你想要什么,就可以拥有什么。Asterisk热情地拥抱标准,同时也享受创新的自由。你想怎么实现完全取决于你——Asterisk不会向你强加任何约束。

当然,这难以置信的灵活性也不是免费的:Asterisk并不是一个可以轻易配置的系统。这并不是因为它不合逻辑、混乱或晦涩;相反它相当合理,而且实用。人们第一次看到拨号计划时,眼睛往往为之一亮,并很快开始设想各种可能性。但是,当同一结果可以用无数种方式实现时,需要付出的努力也是可想而知的。(TODO)

目录

?1Asterisk和VoIP:连接传统电话和网络电话的桥梁

?2Zapata电话项目

?3巨变需要灵活的技术

?4Asterisk:黑客的PBX

?5Asterisk社区

?6Asterisk邮件列表

?7IRC频道

?8Asterisk用户组

?9Asterisk文档计划

?10商业分析

?11结束语

Asterisk和VoIP:连接传统电话和网络电话的桥梁Voice over IP(VoIP)往往被认为只不过是一种打免费长途电话的方法。但它的真正意义(同时也是挑战所在)是,它认为语音只不过是数据通讯网络的另一个应用。

有时候人们似乎有点忘记了电话的目的是通讯。这是一个简单的目标,我们应该能够以更灵活、更具创造性的方式达成。Asterisk一类的技术降低了我们进入这个领域的门槛。

Zapata电话项目

当Asterisk项目开始的时候(1999),也有一些其他的开源电话项目。但是,Asterisk通过与Zapata电话项目结合,能够提供公共交换电话网络(PSTN)接口,这是一个里程碑,使得软件的威力从纯数据通讯的网络迁移到了更实用的电信网络,后者是以PSTN为中心的。

Zapata电话项目由Jim Dixon创建。Jim Dixon是一位通讯咨询工程师,他受到CPU速度飞速进步的启发,决定开发Zapata电话项目。Dixon相信,只要有一块能够处理电话电路的简易接口卡,就有可能创造出便宜得多的电话系统。数字信号处理(DSP)将在CPU上通过软件实现,从而不需要在卡上配置昂贵的数字信号处理芯片。尽管这会加重CPU的负荷,但Dixon相信CPU的高性价比相对于昂贵的DSP芯片更有吸引力,并且CPU的性价比还会不断提高。

Dixon的远见卓识使他相信,会有很多其他人看到这个机会,他只需要等待,等某某人实现他所期待的关键进步,然后再动手干。但是几年过去了,他发现不仅没有人创造出他所要的接口卡,也没有迹象表明有人打算这么干。再明显不过了,如果他想要一场革命的话,他得亲手发动它。于是Zapata电话项目诞生了:

由于这个概念如此具有革命性,并且注定会在行业内掀起波澜,我决定以著名的墨西哥革命家Emiliano Zapata的名字来命名这项技术和组织。我把这块接口卡称为tormenta,在西班牙语中是风暴的意思。

也许我们应该称自己为Asterisk人。总之,我们欠Jim Dixon一个人情,一部分是因为他的天才创想,一部分是因为他的坚持和执着,更重要的是他把成果贡献给了开源社区。正是Jim的贡献,才使得Asterisk的PSTN引擎成为可能。

多年来,Astersik的Zapata接口卡不断改进。DAHDI(Digium Asterisk Hardware Device Interface)接口卡就是对Zapata的继承和发展。

巨变需要灵活的技术

现有的PBX都有各自的缺憾。不管它的特性有多丰富,总有些方面是没有覆盖到的,因为它永远赶不上用户的想象力。比如有的用户可能需要一个很古怪的特性,设计者要么没想到,要么觉得成本不划算而不考虑,而且,由于系统是封闭的,用户也不可能自己动手实现。如果Internet受到这些封闭的商业利益方面的限制,很难想象它能获得今天如此广泛的认同。Internet的开放性使得任何人都负担得起。所以,人们参与进来了。几万个头脑在Internet 上相互协作所创造出来的东西是任何一家公司都难以想象的。

像许多其他开源项目一样,比如Linux和那些承载Internet运转的其他软件,Asterisk的开发也是由网民的梦想驱动的,大家都觉得应该有比那些封闭产品更好的东西。人们知道,如果把各个PBX的优秀部分拿出来做进一步的分解,分解成一组可以互通的模块(就像一盒乐高砖块),那么就有可能创造出封闭企业不可能生产出来的产品。由于没有人能够声称他可以把握整个事情的全貌,也就不会缺乏各种观点和想法。

很多新手会觉得Asterisk就像一个未完工的大工地。也许把这些人看成画室的参观者更恰当,他们来到画室,期待看到已经标好价格、签好名的作品。但他们往往失望而去,因为他们发现Asterisk不过是一张张空白画布、一管管颜料和一堆没有用过的画刷。

Asterisk是众多艺术家培育出来的,比任何其他PBX的都多。很多厂家最多为某个产品配置几个开发者;Asterisk则有几十个。那些专有PBX厂商拥有几十人的全球支持团队;Asterisk则有几百个。

围绕Asterisk的相关知识的广度和深度在通讯行业是罕见的。在Asterisk这个大家庭中,有来自旋转拨号盘时代的老专家,也有来自语音信箱等企业通讯领域的专才,还有来自数据通讯领域的极客。这些人有一个共同的信念,那就是通讯行业需要一场真正的革命。Asterisk就是导火索。

Asterisk:黑客的PBX

那些选择忽视Asterisk的通讯公司,我只有一句话送给他们:后果自负。它的灵活所带来各种可能性是哪怕最好的专有系统做梦都不敢想的。因为Asterisk是终极黑客的PBX。

黑客这个词的意思已经被大众媒体扭曲成了“恶意破坏者”。这很不幸,因为这个词在被媒体丑化之前已经存在很久了。正是黑客建造了这个被称为Internet的网络引擎。黑客建造了苹果计算机和UNIX操作系统。黑客也正在建造你的下一代通讯系统。不用害怕;这些家伙不坏,他们将建造比现今任何东西都要安全的系统。相较于不确定和不安全的封闭系统,黑客将能够快速响应安全领域的变化趋势,并根据公司政策和业界最佳实践调整电话系统。(TODO)

Asterisk:专家的PBX

在通讯行业的历史上还从来没有过任何一个系统,能够以任何一个价格满足任何一个需求。Asterisk很快就会和Linux一样,你将很难发现一个没有运行Asterisk的公司。

这种认可将会发生得比Linux还快,原因如下:Linux已经打开了认可开源软件的风气。通讯行业举步维艰,缺少行业巨人的领导。Asterisk则有一个令人信服、切合实际而又令人激动的愿景。最终用户已经受够了糟糕的功能和可怕的服务;Asterisk已经解决了前一个问题,后一个问题将留待企业家和开源社区来解决。

Asterisk社区

Asterisk令人信服的地方之一就是开发它并且为它提供支持的充满激情的社区。这个由Digium领导的社区敏锐地意识到了Asterisk的文化意义,并且对未来充满乐观。

Asterisk社区能量的一个副产品就是它所催生的通讯专家、网络专家和信息技术专家之间的合作。尽管在传统意义上这些能人之间互相并不买账,但在Asterisk社区他们能够欣赏彼此的技能。这种合作绝不可被轻视。

如果想要实现Asterisk的理想,社区就必须发展壮大;社区当前面临的关键挑战之一就是新用户的快速涌入。社区的老成员创造了Asterisk,他们当然欢迎新用户,但他们有时候会对那些没有做足功课的提问不耐烦。如果新人愿意花些时间去学习、探索和试验的话,很多问题是可以自己找到答案的。

当然,新用户不可能都是一个模子里倒出来。尽管有些人会乐呵呵地花几个小时做各种试验或阅读博客文章,有些人却是没有这种追求的。他们想要一种简单、直白的步骤指南,可以让他们快点把东西跑起来,最好还有一些实现常用功能的示例(例如语音信箱,自动接待等)。对Asterisk专家来说,Asterisk其实是一种Web开发语言(这种观点是正确的),所以“步骤指南”毫无意义。你必须把自己浸泡到Asterisk中去体会它的细节。想想看,谁会指望通过步骤指南去掌握一门编程语言呢?

显然,没有一种方法可以适合所有人。(TODO)当你逛社区的时候,你应该知道里面什么人都有,他们有各自的技能和态度。其中有些人对新用户并不是很有耐烦,这只能说明他对那个问题不热心,并不表示他不欢迎你的加入。

Asterisk邮件列表

像其他社区一样,Asterisk也有地方让大家讨论问题。相关的邮件列表可以在

https://www.doczj.com/doc/4d12397261.html,找到,其中最重要的有三个:Asterisk-Biz Asterisk相关的商务方面的问题属于这个列表。如果你想买或者想卖和Asterisk相关的东西可以到这里来。Asterisk-Dev Asterisk的开发者都在这里面晃荡。这个列表的目的就是讨论Asterisk的开发问题,它的参与者也都很严肃地坚持这一点。如果往里面提交任何跟Asterisk代码开发无关的东西肯定会被暴扁。AGI或者AMI编程接口一类的问题应该提交到Asterisk-Users。(TODO)Asterisk-Users 这是大多数Asterisk用户待的地方。这个列表有超过一万个用户,每天产生几百条消息。你当然可以去那里寻求帮助,但前提是你至少已经读过一些文档了。

Asterisk维基站

(TODO:这里有点让人困惑。首先,我没有找到Asterisk Wiki,和Asterisk相关的Wiki 只有https://www.doczj.com/doc/4d12397261.html,。其次,James Thompson就是https://www.doczj.com/doc/4d12397261.html,的创办人,James

Thompson在https://www.doczj.com/doc/4d12397261.html,之前还创办了另外一个Wiki吗,搞不清楚。)

https://www.doczj.com/doc/4d12397261.html,是社区维护的一个知识库,其中包含大量的有用信息,有时候这些信息还有自相矛盾点,但不失为一个大宝藏,其中除了Asterisk还有其他voip相关的内容。Asterisk相关文档到目前为止构成了voip-info的很大一部分,可能比其他任何地方的Asterisk信息加起来还多,所以voip-info是一个很受欢迎的Asterisk知识库。

一个重要的新维基站是Asterisk的官方Wiki,位于https://www.doczj.com/doc/4d12397261.html,。虽然内容还没有https://www.doczj.com/doc/4d12397261.html,全,但这个Wiki会得到更正式的支持,其中的信息可能会更及时、更准确些。

IRC频道

Asterisk社区在https://www.doczj.com/doc/4d12397261.html,上有聊天频道。两个最活跃的频道是#asterisk和

#asterisk-dev。为了防止垃圾信息的打扰,这两个频道都需要注册才能加入。

Asterisk用户组

过去十年中,在世界上很多城市里,那些寂寞的Asterisk用户意识到可能有其他同道中人就住在附近。于是Asterisk用户组(AUGs)相继在各地出现。尽管这些用户组没有正式联系,但他们一般会链接彼此的网站,欢迎来自其他用户组的成员。搜索“Asterisk User Group”也许找到一个你所在地区的用户组。

Asterisk文档计划

Asterisk文档计划由Leif Madsen和Jared Smith创建,也得到了社区其他人的帮助。Asterisk文档计划的目标是提供一个Asterisk相关的结构化的文字作品。相较于Wiki的灵活和即兴,文档计划更热衷于一种集中的方式来介绍Asterisk相关主题。

Asterisk文档计划可以在https://www.doczj.com/doc/4d12397261.html,免费获取。

商业分析

今天的商业环境瞬息万变,大多数业务每过几年就要更新换代。但很少有企业在转变业务方向时,能够负担得起一套全新的通讯设施。现在的商业环境要求各项技术都具备足够的灵活性,包括通讯。

(TODO:进一步佐证上述观点)

结束语

那么从何开始呢?关于Asterisk,一本书是远远不够的。本书只能介绍一些基本的东西,但以此为基础你将能深入理解Asterisk,然后接下来,谁知道你将会用它创造出什么奇迹。Asterisk权威指南/第二章Asterisk架构

Asterisk和其他传统的PBX完全不同,因为Asterisk的拨号计划以同样的方式处理所有的入局信道(incoming channels)。

传统的PBX在逻辑上区分工作站信道(连接电话机)和电话局信道(连接到外部世界)。这意味着,你不可能无缝地在一个工作站端口配置一个外部网关。同样,传统PBX也很难实现对离站(off-site,不在座位上或外出办事)资源的访问,比如前台如果外出办事就什么事都做不了,因为她哪怕能打电话回公司,也是不能访问内部资源的。

Asterisk在内部不区分工作站信道和电话局信道,而是一律统称信道。有很多种信道类型(驱动不同),但Asterisk拨号计划以不加区别(接口一致)的方式处理这些信道,也就是说,一个内部用户可能位于电话局端口,但拨号计划可以把他当成在工作站端口一样。如果你没有用过传统PBX,可能还体会不到Asterisk这种方式的强大和灵活。下图显示了两种架构的区别。

目录

?1模块

o 1.1应用程序

o 1.2桥接模块

o 1.3电话详单记录模块

o 1.4信道事件日志模块

o 1.5信道驱动

o 1.6编码解码器

o 1.7格式解释器

o 1.8拨号计划函数

o 1.9PBX模块

o 1.10资源模块

o 1.11附加模块

o 1.12测试模块

?2文件结构

o 2.1配置文件

o 2.2模块

o 2.3资源库

o 2.4spool

o 2.5日志

?3拨号计划

?4硬件

?5Asterisk版本

o 5.1以前的版本方案

o 5.2现在的版本方案

?6结束语

模块

Asterisk是基于模块构建的。一个模块提供特定的功能,是一个可装载的组件,比如信道驱动(chan_sip.so),或者一项可以连接到外部技术的资源(func_odbc.so)。Asterisk按照/etc/asterisk/modules.conf配置文件装载模块。后面我们会讨论各个模块的使用。这里我们只会介绍模块的概念,以及模块的各种类型。

运行一个不加载任何模块的Asterisk也是有可能的,尽管它什么都做不了。你只有理解了Asterisk模块化的特点,才能充分理解Asterisk的架构。

Note:你可以启动一个没有加载任何模块的Asterisk,然后手工在控制台一个个地添加;这种方法一般用于性能调优,可以保证仅加载所需要的模块。

Asterisk模块类型包括:

?应用程序(即拨号计划中的命令)

?桥接模块

?呼叫详单记录模块

?信道事件日志模块

?信道驱动

?编码解码器

?格式解释器

?拨号计划函数

?PBX模块

?资源模块

?附加模块

?测试模块

接下来我们会列出分属各个类型的所有模块,他们的用途,以及我们所认为的受欢迎程度和重要程度(有一些很常用,但有一些不太有用,仅仅是为了兼容而保留)。这些模块的细节会在本书中陆续介绍,根据各自的情况,有些会被全面的讨论,有些则根本不会涉及。

下面这些术语反映了我们对各个模块的看法:

?不重要

这个模块是个老古董。如果你要使用它,就不要指望能在社区中得到很好的支持。

?不可靠

新设计的或者试验性的模块,不要用于生产环境。

?很有用

很时新,有人维护,受欢迎而且被推荐。

?可以用

能够用,但用得不多,可能不完整。不推荐。

?不好说

新出现的模块,时间短,完整性和受欢迎程度都不太好说。

?已废弃

已经被更好的模块取代了。

?有局限

有局限性,不能满足要求。

?很重要

必须的。

应用程序

应用程序用于拨号计划中,能够处理呼叫流程。比如Dial()就是一个很重要的应用程序,负责建立出局连接。

名称

用途

评价 app_adsiprog

给兼容模拟电话加载模拟显示服务接口(ADSI )脚本。

不重要 app_alarmreceiver 支持接受警报设备的报告。

不重要 app_amd 检测电话答录机。

不稳定

app_authenticate

比较双音多频(DTMF )输入和一个给定的字符串(通常是密码)。 很有用 app_cdr

写CDR 记录。

很有用 app_celgenuserevent 为CEL 产生用户自定义事件。

不好说 app_chanisavail 检测信道的状态。

不稳定 app_channelredirect 强制另一个信道进入拨号计划的另一个地方。

很有用 app_chanspy 允许一个信道收听另一个信道。

很有用 app_confbridge 电话会议(新版)。

不好说 app_controlplayback 播放提示,并提供快进和倒带功能。

很有用 app_dahdibarge 允许在DAHDI 信道中插话。(已废弃,见app_chanspy )

已废弃 app_dahdiras 在DAHDI 信道上建立RAS 服务器。

不重要

app_db

访问Asterisk 内置的伯克利数据库。(已废弃,见func_db )

已废

弃 app_dial

把信道连接起来。(例如,打电话)

很重要

app_dictate 播放一段录音,并提供开始/停止功能。

用 app_directed_pickup 应答另外一部分机上的呼叫。

很有用 app_directory 给出voicemail.conf 中的姓名列表。

很有用 app_disa 提供拨号音并接受DTMF 输入。

很有用 app_dumpchan 在Asterisk 控制台打印信道变量。

很有用 app_echo 回放从信道中收到的语音。

很有用

app_exec

包含Exec(),TryExec()和ExecIf()。根据条件执行应用程序。

很有

用 app_externalivr

类似于AGI ,但是异步的。

很有用 app_fax 提供SendFax()和ReceiveFax()

很有用 app_festival “文本-转-语音”引擎。

可以用 app_flash 在信道上执行一次瞬间挂机

很有用 app_followme 根据followme.conf 文件执行找到我/跟随我功能。

很有用 app_forkcdr 在当前呼叫上开始一条新的CDR 记录。

可以用 app_getcpeid 获得ADSI CPE ID 。

不重要 app_ices 把音频发送到一个icecast 服务器。

可以用 app_image 向可以支持的设备上传输图像。 有局限 app_ivrdemo

开发者的示例应用程序。

不重

app_jack 使用JACK音频连接工具包共享音频。很有用

app_macro 触发拨号计划宏。(已废弃,见GoSub())已废弃

app_meetme 多方会议。很有用

app_milliwatt 产生1004赫兹的音频,以测试模拟电路。很有用

app_minivm 提供基本的函数,使得你可以构造自己的语音信箱。可以用

app_mixmonitor 两头录音,然后合并。很有用

app_morsecode 产生莫尔斯电码。可以用

app_mp3 用mpg123播放mp3。不重要

app_nbscat 获得NBS音频。不重要

app_originate 允许发起一次呼叫。很有用

app_osplookup 执行OSP查找。可以用

app_page 寻呼。很有用

app_parkandannounce 自动播报保持的电话。可以用

app_playback 播放音频文件,不接受输入。很有用

app_playtones 播放按键音。很有用

app_privacy 如果没有收到CallerID,就要求输入用户号码。不重要

app_queue 提供自动呼叫分配。

app_read 要求用户输入,并把输入存入变量。很有用

app_readexten 要求用户输入,并把当前呼叫转移到指定分机和上下文。可以用

app_readfile 把文件内容存入一个信道变量。(已废弃,见func_env中的FILE())

已废

app_record 把收到的音频存入文件。很有用

app_rpt 使用声卡。(TODO:什么是rpt项目,不懂。)有局限

app_sayunixtime 已指定的格式播放时间。很有用

app_senddtmf 向呼叫者传输DTMF音频。很有用

app_sendtext 向兼容的信道发送文本。不重要

app_setcallerid 在信道上设置CallerID。(已废弃,见func_callerid)已废弃

app_skel 开发者的示例应用程序。很有用

app_sms 在支持的地区发送SMS消息。有局限

app_softhangup 请求关闭信道。很有用

app_speech_utils 语音识别。很有用

app_stack 提供GoSub()等堆栈相关的操作。很重要

app_system 执行操作系统命令。很有用

app_talkdetect 类似于app_background,但允许收到音频后中断播放。很有

app_test C/S测试应用程序。可以用

app_transfer 在当前信道上执行转移。很有用

app_url 向被呼叫信道传递URI。有局限

app_userevent 在AMI中产生一个定制事件。很有用

app_verbose 在CLI中产生一个定制时间。很有用

app_voicemail 提供语音信箱功能。很重要

app_waitforring (TODO:不明白)不重要

app_waitforsilence 包括WaitForSilent()和WaitForNoise();监听入局信道,有

超时限制。

很有

app_waituntil 等待一个指定的Linux时间(从1970第一秒开始的计数值)

到来。

很有

app_while 包括While(),EndWhile()等,用于循环。很有用

app_zapateller 播放特殊音调,以阻止电话推销者。可以用

桥接模块

桥接模块是Asterisk 1.8的新功能;他们以新的方式执行信道之间的桥接。他们每一个都提供不同的特性,用于不同的桥接需求。这些模块只用于app_confbridge。

名称用途评价

bridge_builtin_features 当使用内置用户特性(在features.conf中定义)时,执行桥

接。

不好

bridge_multiplexed 执行复杂的多路转发,用于大型会议室。不好说

bridge_simple 执行简单的“信道-到-信道”桥接。不好

bridge_softmix

执行简单的多路转发,用于大型会议室。(TODO :不明白和bridge_multiplexed 的区别)

不好说

电话详单记录模块

CDR 模块是为了让各种形式的话单记录更方便。你可以把CDR 存入文件、数据库、RADIUS 、或syslog 。

注:CDR 不是为了计费而设计的。计费功能应该使用CEL 。

名称

用途

评价 cdr_adaptive_odbc 通过ODBC 写CDR ,允许添加自定义字段。

很有用 cdr_csv 把CDR 写入CSV 文件。

可以用 cdr_custom 和cdr_csv 一样,但允许添加自定义字段。

很有用 cdr_manager 把CDR 输出到AMI 接口。

很有用 cdr_odbc 通过ODBC 写CDR 。

可以用 cdr_pgsql 把CDR 写到PostgreSQL 。

很有用 cdr_radius 把CDR 写到RADIUS 。

可以用

cdr_sqlite

把CDR 写到sqlite2数据库。(已废弃,见cdr_sqlite3_custom )

已废

cdr_sqlite3_custom 把CDR 写到sqlite3数据库,允许添加自定义字段。

很有用 cdr_syslog 把CDR 写到syslog 。

很有用

cdr_tds

把CDR 写到Microsoft SQL 或Sybase 数据库,需要老版tds 。

可以

Web 接口中会有一些和CDR 相关的报告功能。

信道事件日志模块

信道事件日志可以完整记录所有的呼叫活动。这也意味着你需要更小心地规划拟拨号计划,毕竟它不可能自动开始工作。Asterisk的CEL模块如下:

名称用途评价

cel_custom 写到磁盘文件。很有用

cel_manager 写到AMI。很有用

cel_odbc 写到ODBC。很有用

cel_pgsql 写到PostgreSQL。很有用

cel_radius 写到RADIUS。可以用

cel_sqlite3_custom 写到sqlite3。很有用

cel_tds 写到Microsoft SQL或Sybase,需要老版tds。可以用

信道驱动

没有信道驱动,Asterisk就不可能建立呼叫。每种协议或信道类型都有自己特定的信道驱动。信道模块可以看做是通往Asterisk内核的网管。Asterisk的信道驱动如下:

名称用途评价

chan_agent 为Queue()提供坐席信道。很有用

chan_alsa 提供到高级Linux声音架构(ALSA)的连接。很有用

chan_bridge 仅供ConfBridge()内部使用。很重要

chan_console 提供到portaudio的连接。不好说

chan_dahdi 提供到DAHDI接口卡的连接。很有用

chan_gtalk 提供到Google Talk的连接。可以用

chan_h323 提供H.323连接。(已废弃,见chan_ooh323)已废弃

chan_iax2 提供IAX2连接。很有用

chan_jingle 提供jingle连接。可以用

chan_local 把一部分拨号计划当成信道。很有用

chan_mgcp 提供媒体网管控制协议(MGCP)连接。可以用

chan_misdn 连接到支持mISDN的ISDN卡。有局限

chan_multicast_rtp 连接到RTP多播流。很有用

chan_nbs 网络广播声音(NBS)连接。不重要

chan_oss 开放声音系统驱动。很有用

chan_phone LInux电话接口驱动,相当老。不重要

chan_sip 回话启动协议。很重要

chan_skinny 思科瘦客户端控制协议(SCCP)。可以用

chan_unistim 北电Unistim协议。可以用

chan_usbradio CM108 USB无线电接口卡。可以用

chan_vpb Voicetronix信道。不重要

编码解码器

编码解码器允许Asterisk转换不同呼叫之间的音频格式。如果一个呼叫来自PRI电路(使用G.711编码),需要连接到一个SIP压缩信道(使用G.729,SIP支持的编码之一),那么相应的编码解码器就会执行所需的转换。

注:如果编码解码需要复杂的算法,大量的转码工作会对CPU造成负担。有些像Sangoma 和Digium厂商的卡会提供硬件解码编码。

名称用途评价

codec_adpcm 自适应差分脉码调制解调不重要

codec_alaw 全世界PSTN(除了美国、加拿大)采用脉冲编码调制的A-law算

法。

很重

codec_a_mu A-law到Mu-law的转换。很有用

codec_dahdi 使用Digium硬件解码。(需要Digium转码卡)很重要

codec_g722 宽频带音频编码解码。很有用

codec_g726 (TODO:不懂,大概类似于codec_adpcm)不重要

codec_gsm 全球移动通讯系统。很有用

codec_ilbc 因特网低比特率编码解码。不重要

codec_lpc10 线性预测编码生硬合成器。不重要

codec_resample 8-bit和16-bit间带符号线性采样。可以用

codec_speex speex编码。可以

codec_ulaw 用于美国、加拿大的脉冲编码调制的Mu-law算法。很重要

格式解释器

格式解释器调用编码解码器的功能,但他们操作文件而不是信道。如果你录制了一段GSM 音频,要播放到其他非GSM信道,就需要一个格式解释器。

如果你录制成了多种格式(GSM,WAV),当某个信道需要该音频时,Asterisk会选择一个转换代价最小的格式。

名称用途评价

format_g723 G.723 .g723 不重要

format_g726 G.726 .g726 不重要

format_g729 G.729 .g729 很有用

format_gsm RPE-LTP (original GSM codec) .gsm 可以用

format_h263 H.263—video .h263 可以用

format_h264 H.264—video .h264 可以用

format_ilbc Internet Low Bitrate Codec .ilbc 不重要

format_jpeg Graphic file .jpeg .jpg 不重

format_ogg_vorbis Ogg container .ogg 可以用

format_pcm Various Pulse-Coded Modulation

formats: .alaw, .al, .alw, .pcm, .ulaw, .ul, .mu, .ulw, .g722, .au

format_siren14 G.722.1 Annex C (14 kHz) .siren14 不好说

format_siren7 G.722.1 (7 kHz) .siren7 不好说

format_sln16 16-bit signed linear .sln16 不好说

format_sln 8-bit signed linear .sln .raw 很有用

format_vox .vox 不重要

format_wav .wav 很有用

format_wav_gsm GSM audio in a WAV container .WAV, .wav49 可以用

拨号计划函数

拨号计划函数是对拨号计划应用程序的补充,提供了一些有用的增强功能,比如字符串处理、日期时间转换、ODBC连接性等。

名称用途评价func_aes 加密、解密AES字符串。很有

func_audiohookinherit 允许呼叫转移后仍被录音。很有用

func_base64 编码、解码base-64字符串。可以用

func_blacklist 读、写astdb中的黑名单。很有用

func_callcompletion 存取信道的呼叫完成配置参数。不好说

func_callerid 存取CallerID。很有用

func_cdr 存取CDR变量。很有用

func_channel 存取信道信息很有用

func_config 包括AST_CONFIG();从配置文件读取变量。可以用

func_connectedline 改变已连接的信道信息(需要电话的支持)。不好说

func_curl 使用curl访问URL。很有用

func_cut 对字符串切片或者切块。很有用

func_db 提供astdb函数。很有用

func_devstate 获得设备状态。很有用

func_dialgroup 创建一个同时拨号组。很有用

func_dialplan 验证指定的拨号计划目标是否存在。很有用

func_enum 执行ENUM查找。很有用

func_env 包括FILE(),STAT(),ENV()。执行操作系统动作。

func_extstate 返回指定的分机状态。很有用

func_global 存取全局变量。很有用

func_groupcount 存取一个组的信道数。很有用

func_iconv 字符编码转换。可以用

func_lock 包括LOCK(),UNLOCK(),TRYLOCK();用于拨号计划中的

竞争控制。

很有

func_logic 逻辑判断函数,包括ISNULL(),SET(),EXISTS(),IF(),IFTIME(),IMPORT()

很有

func_math 数学函数,包括MATH(),INC(),DEC() 很有用

func_md5 生成MD5指纹。很有用

func_module 检测模块是否已经装载。可以用

func_odbc 访问ODBC。很有用

func_pitchshift 修改音频流的音调。很有用

func_rand 生成一个随机数。很有用

func_realtime 在Asterisk实时架构中执行查找。很有用

func_redirecting 获取本次呼叫的转发信息。很有用

func_sha1 生成SHA1指纹。很有用

func_shell 执行shell命令,并返回结果。很有

拨号方案(Dialplan)入门笔记

拨号方案(Dialplan)入门笔记 刚学习这玩意,很详细的说明,就不写了,慢慢的去研究吧,不明白的可以去看下“电话未来之路”(我看了N次,才大概弄明白点意思),所以,也算是吧自己的理解写到上面吧。作为笔记。。 ............................................................................................................ .................................................................................... 一:拨号方案的语法 1:拨号方案的文件在extensions.conf 中定义,一般都存在于目录/etc/asterisk 下面。 2:拨号方案由4部分组成:contexts、extensions、priorities、applications. Context : 个人理解就是对拨号进行分组,方便调用,就想面向对象里的类一样,划分为一个类一个类,由[] 括起来 例:[text] ....... 这就是一个contexts Priority: Extension 执行的步骤,都以1 开始,看下面的Extension 说明就明白了,所以先说 Priorty Extension :Asterisk重要执行的指令,就是对电话执行那些处理,或理解为一个电话操作的流程。 语法:exten => 完整的extension 由三部分组成: 例:exten => name,priority,application() .........application 表示应用里面的动作。先这么理解吧 就像这样:[text] exten => 8002,1,Answer() exten => 8002,2,Hangup() ;......这个例子意思是当拨打分机8002 的时候先执行接听,随即是挂断电话,当然要先在sip.conf 下的分机8002 参数设置context=text Application: 意思是电话流程中的应用或动作,就像上面例子中的 "Answer()和Hangup()",

在华硕RT-N11+上玩转OpenWRT+Asterisk

在华硕RT-N11+上玩转OpenWRT+Asterisk 华硕RT-N11+是一款高性能的300M 802.11n无线路由器,内置Ralink RT3052F 384M 主频的CPU,32M SDRAM,4M FLASH,高主频的CPU为希望开发具有定制功能应用的爱好者提供了很好的平台,下面介绍如何将OpenWRT和Asterisk移植到此路由上作为一个小型的SIP Server。 图表 1 被肢解的ASUS RT‐N11+ 图表 2 ASUS RT‐N11+ CPU特写

4M 的flash实在不给力,更换为8M 的 Spansion flash 型号S25GL064N,这样基本可以满足asterisk的运行。 一、编译openwrt,编译环境为fedora13。 1.svn checkout svn://https://www.doczj.com/doc/4d12397261.html,/openwrt/trunk 2.cd trunk 3../scripts/feeds update -a 4../scripts/feeds install -a 5.make menuconfig 选中Target System->Ralink RT288x/RT305x 选中Subtarget-> RT305x based boards

选中Network->Telephony->asterisk18 LuCI->Servcer Interfaces->luci-sgi-uhttpd

6.make V=99 编译完成可以在trunk看到以下文件 bin/ramips/openwrt-ramips-rt305x-fonera20n-squashfs-sysupgrade.bin 偷个懒借用了fonera20n的映像,程序可以跑,LEDD和按键未验证,有兴趣可以参考target/linux/ramips/files/arch/mips/ralink/rt305x/mach-fonera20n.c建立针对RT-N11+的映像。 二、烧录程序 1. 用编程器烧录bootloader“uboot_SDK_nor_sdr32M32bit_v3508_20110919.bin” 2. 连接串口,pin1-pin4依次为VCC,GND,CPU_TX,CPU_RX,波特率57600 3. 烧录openwrt映像 1)在PC机上搭建tftp服务器推荐用Tftpd32.exe, 2)将文件“openwrt-ramips-rt305x-fonera20n-squashfs-sysupgrade.bin”放到 tftp工具的目录下, 3)启动设备在boot menu中选择2按提示输入IP地址和映像名称,升级。

Asterisk安装指南

Asterisk安装指南 2010-03-20 10:49 1、选择操作系统 据说Asterisk对大多Linux支持的都比较好,内核版本2.6.9-55.EL安装起来很顺利,2.4的麻烦一些。注意安装系统的时候选择上开发环境的包。2、在/usr/src目录中下载Asterisk相关安装包并解压 #cd /usr/src https://www.doczj.com/doc/4d12397261.html,/pub/libpri/releases/libpri-1.4.10.tar.gz https://www.doczj.com/doc/4d12397261.html,/pub/zaptel/releases/zaptel-1.4.12.1.tar.gz(dahdi asterisk1.6以后就不用这个,用https://www.doczj.com/doc/4d12397261.html,/pub/telephony/dahdi-linux-complete/releases/dahdi-linux-complete-2.6.1+2.6.1.tar.gz) https://www.doczj.com/doc/4d12397261.html,/pub/asterisk/releases/asterisk-1.6.2.tar.gz https://www.doczj.com/doc/4d12397261.html,/pub/asterisk/releases/asterisk-addons-1.6.2.0.tar.gz https://www.doczj.com/doc/4d12397261.html,/pub/asterisk/releases/asterisk-sounds-1.2.1.tar.gz # tar -xvzf *.tar.gz 3.安装libpri # cd libpri-1.4.9 # make # make install 4.安装zaptel # cd .. # cd zaptel-1.4.12.1 # make # make install # make config 5.安装asterisk # cd .. # cd asterisk-1.4.24.1 # ./configure # make # make install

Asterisk常用调试命令

Asterisk基本配置 Asterisk译为星号(*)在很多应用中被用做通配符,Astrisk做为PBX系统的完美名称,原因之一是Asterisk可以连接数目庞大的接口类型,包括: 1模拟接接口,如你的电话线或模拟电话. 2数字线路,如T-1和E-1线路 3Voip协议,如SIP和IAX 目前正式版本是IAX2,但是IAX1的所有格式都已经停掉.所以当说到IAX都是特拽IAX2 使用接口配置文件 1.Zaptel.conf:硬件接口基层配置,我们将建立一个FX0和一个FXS通道. 2.zapata.conf:硬件配置Asterisk的接口. 3.extension.conf:拨号方案文件. 4.sip.conf:配置SIP协议的文件 5.iax.conf:配置呼入和呼出IAX通道的文件 ******编辑完zaptel.conf文件,需要使用/sbin/ztcfg -vv装载配置到硬件(不须要详细输出可以省略-vv);修改信令方法需要重启.在编辑sip.conf和iax.conf文档后,分别需要装载chan_iax2.so和 chan_sip.so Asterisk译为星号(*)在很多应用中被用做通配符,Astrisk做为PBX系统的完美名称,原因之一是Asterisk可以连接数目庞大的接口类型,包括: 1模拟接接口,如你的电话线或模拟电话. 2数字线路,如T-1和E-1线路 3Voip协议,如SIP和IAX 目前正式版本是IAX2,但是IAX1的所有格式都已经停掉.所以当说到IAX都是特拽IAX2 使用接口配置文件 1.Zaptel.conf:硬件接口基层配置,我们将建立一个FX0和一个FXS通道. 2.zapata.conf:硬件配置Asterisk的接口. 3.extension.conf:拨号方案文件. 4.sip.conf:配置SIP协议的文件 5.iax.conf:配置呼入和呼出IAX通道的文件 ******编辑完zaptel.conf文件,需要使用/sbin/ztcfg -vv装载配置到硬件(不须要详细输出可以省略-vv);修改信令方法需要重启.在编辑sip.conf和iax.conf文档后,分别需要装载chan_iax2.so和 chan_sip.so******

《Asterisk 使用资料》

Asterisk目录及配置文件 /etc/asterisk/Asterisk主目录,包含其它关于Asterisk的配置文件;*zaptel.conf这个配置文件放在/etc,因为其它软件也可以使用Zaptel这个硬件及其驱动,所以不是放在 /etc/asterisk里. /usr/lib/asterisk/modules/这个目录包含所有可以加载Asterisk模块(应用程序\编辑器\格式和有用通道),在Asterisk启运时会加载这些模块(可以编辑modules.conf). /var/lib/asterisk/比较重要的是astdb文件与agi-bin目录;astdb包含Asterisk当地数据库信息. sounds/所有声音提示的文件在里面,包括Asterisk原代码中的sounds.txt文件 mohmp3/如果配置了音乐保持,应用程序会在这个目录下查找mp3(用CBR从文件中去除身份标签). keys/使用公钥和私钥系统认证与一个由RSA数字签名形成的一对等连接.公钥和私钥的扩展名分别为.pub和.key firmware/这个目录含了很多Asterisk相兼容的设备固件,它只有iax/这个子目录,其中有Digium的IAXy的二进制固件镜像. images/只有在较多的支持并且利用图解式的图像设备被发布,这个目录将会与相应的目录有更大的关联. /var/lib/asterisk/agi-bin agi-bin包含所有脚本,可以通过许多已经建立的AGI应用程序与Asterisk连接. /var/spool/asterisk outgoing/ gcall/ tmp/ voicemail/ ================配置文件================ /etc/asterisk/asterisk.conf主要配置文件, /etc/zaptel.conf硬件接口的基本层.修改这个配置文件要用modprobe装载Linux Kernel使用模块. /etc/asterisk/zapata.conf为硬件配置Asterisk的接口. /etc/asterisk/extensions.conf拨号方案. /etc/asterisk/sip.conf SIP协议配置文件 /etc/asterisk/iax.conf呼入和呼出IAX通道 /etc/asterisk/extensions.conf拨号方案配置文件

asterCRM安装配置手册

asterCC安装配置手册 一.安装环境 1.安装程序:astercc-0.14-beta-rc1.zip 2.操作系统:CentOS Linux or Redhat Linux with mysql 3.硬件要求:X86 CPU 1GHz 1GB RAM 20GB HardDisk Ethernet Adaptor 二.安流流程 1.安装CentOS Linux or Redhat Linux 2.下载安装程序: https://www.doczj.com/doc/4d12397261.html,/news/astercc-and-astercc-box-released-014-beta-rc1 3.ssh登录后台,解压程序包 [root@sc38 ~]# unzip astercc-0.14-beta-rc1.zip 4.进入astercc-0.14-beta-rc1,更改可执行权限并执行install.sh脚本,根据提示进行安装 [root@sc38 astercc-0.14-beta-rc1]# chmod 755 install.sh [root@sc38 astercc-0.14-beta-rc1]# ./install.sh Please enter database information database host(default localhost): 设置数据库地址,默认为localhost database port(default 3306): 设置数据库连接端口,默认为:3306 database name(default astercc): 设置数据库名,默认为astercc database user name(default root): 设置数据库连接用户,默认为root database user password(default null):eLaStIx.2oo7 设置数据库连接密码,如果本机已安装Elastix,则密码为eLaStIx.2oo7 database bin path(default /usr/bin): 设置mysql的程序路径,默认指定/usr/bin Please enter the Asterisk infomation:

Object-C 经典入门教程

Object-C 入门教程 分类:Sip&asterisk2009-05-04 16:34 16409人阅读评论(2) 收藏举报大纲 o开始吧下载这篇教学 o设定环境 o前言 o编译 hello world o创建 Classes@interface o@implementation o把它们凑在一起 o详细说明...多重参数 o建构子(Constructors) o访问权限 o Class level access o异常情况(Exceptions)处理 o继承、多型(Inheritance, Polymorphism)以及其他面向对象功 能id 型别 o继承(Inheritance) o动态识别(Dynamic types) o Categories o Posing o Protocols o内存管理Retain and Release(保留与释放) o Dealloc o Autorelease Pool o Foundation Framework ClassesNSArray o NSDictionary ?优点与缺点 ?更多信息 开始吧 下载这篇教学 ?所有这篇初学者指南的原始码都可以由objc.tar.gz下 载。这篇教学中的许多范例都是由 Steve Kochan 在 Programming in Objective-C. 一书中撰写。如果你想得到更 多详细信息及范例,请直接参考该书。这个网站上登载的所有 范例皆经过他的允许,所以请勿复制转载。 设定环境 ?Linux/FreeBSD: 安装GNUStep为了编译 GNUstep

应用程序,必须先执行位于 /usr/GNUstep/System/Makefiles/GNUstep.sh 的 GNUstep.sh 这个档案。这个路径取决于你的系统环境, 有些是在 /usr, some /usr/lib,有些是/usr/local。 如果你的 shell 是以 csh/tcsh 为基础的 shell,则应 该改用 GNUStep.csh。建议把这个指令放在 .bashrc 或 .cshrc 中。 ?Mac OS X: 安装XCode ?Windows NT 5.X: 安装cygwin或mingw,然后安装 GNUStep 前言 ?这篇教学假设你已经有一些基本的 C 语言知识,包括 C 数 据型别、什么是函式、什么是回传值、关于指针的知识以及基 本的 C 语言内存管理。如果您没有这些背景知识,我非常建议 你读一读 K&R 的书:The C Programming Language(译注:台 湾出版书名为 C 程序语言第二版)这是 C 语言的设计者所写 的书。 ?Objective-C,是 C 的衍生语言,继承了所有 C 语言的特 性。是有一些例外,但是它们不是继承于 C 的语言特性本身。 ?nil:在 C/C++ 你或许曾使用过 NULL,而在 Objective-C 中则是 nil。不同之处是你可以传递讯息给 nil(例如 [nil message];),这是完全合法的,然而你却不能对 NULL 如法炮 制。 ?BOOL:C 没有正式的布尔型别,而在 Objective-C 中也不 是「真的」有。它是包含在 Foundation classes(基本类别库) 中(即 import NSObject.h;nil 也是包括在这个头文件内)。 BOOL 在 Objective-C 中有两种型态:YES 或 NO,而不是 TRUE 或 FALSE。 ?#import vs #include:就如同你在 hello world 范例中看 到的,我们使用了#import。#import 由 gcc 编译程序支援。 我并不建议使用 #include,#import基本上跟 .h 档头尾的 #ifndef #define #endif 相同。许多程序员们都同意,使用这 些东西这是十分愚蠢的。无论如何,使用 #import 就对了。这 样不但可以避免麻烦,而且万一有一天 gcc 把它拿掉了,将会 有足够的 Objective-C 程序员可以坚持保留它或是将它放回 来。偷偷告诉你,Apple 在它们官方的程序代码中也使用了 #import。所以万一有一天这种事真的发生,不难预料 Apple 将 会提供一个支持 #import 的 gcc 分支版本。 ?在 Objective-C 中, method 及 message 这两个字是可以 互换的。不过messages 拥有特别的特性,一个 message 可以 动态的转送给另一个对象。在Objective-C 中,呼叫对象上的 一个讯息并不一定表示对象真的会实作这个讯息,而是对象知 道如何以某种方式去实作它,或是转送给知道如何实作的对象。

Elastix安装配置手册

Elastix安装配置手册 一.安装环境 1.安装光盘:elastix-1.6-cn.iso 2.操作系统:Linux CentOS 3.硬件要求:X86 CPU 1GHz 1GB RAM 20GB HardDisk Ethernet Adaptor 二.安流流程 首先将Elastix 光盘插入到您的电脑光驱中,开启电脑(您可能需要通过BIOS设置使电脑通过CD启动),安装程序将自动分区和格式化你的硬盘和安装所有的需要的安装包,安装过程非常简单,在典型的机器上大概花费时间不会超过20分钟。 1.下载ISO映象文件: https://www.doczj.com/doc/4d12397261.html,/index.php/en/menudownloads.html 2.安装时,显示屏幕上会出现如下提示画面; 3.按回车后,如下图所示,此处是选择键盘类型,这里选择”us”;

4.anaconda安装将开始安装(如果您电脑无足够内存,安装程序将在text 模式下安装); 5.接下来会出现如下提示,此处是用来选择时区,中国国内选择Asia/Shanghai(亚洲/上海);

6.接着出现下图,此处是设定root的密码(注意:两次输入需要一致),安装完登录时需要此密码; 7.接下来的过程一直到安装完成都是自动的,不需要输入任何信息,以下是安装过程; a.检索安装信息;

b.检查附属包; c.从安装光盘复制文件到硬盘;

d.开始安装包进程; e.正在安装包;

f.当所有的需求包都自动安装完毕,光驱将自动打开,将出现如下屏幕 g.把CD从光驱取出,关闭光驱,系统自动重启;

Asterisk的SIP type和身份认证

Asterisk的SIP type和身份认证 在Asterisk中对某个peer的类型分为3种:peer, user和friend 看看voip-info对这三种类型的解释 ?peer: A SIP entity to which Asterisk sends calls (a SIP provider for example). If you want a user (extension) to have multiple phones, define an extension that calls two SIP peers. The peer authenticates at registration. ?user: A SIP entity which places calls through Asterisk (A phone which can place calls only). Users authenticate to reach services with their context. ?friend: An entity which is both a user and a peer. This make sense for most desk handsets and other devices. Asterisk will create two objects, one peer and one user, with the same name. where it can be found (IP address/host name) and that it is reachable from now on. 简单的说,在这篇文档里, type=peer定义对方是一个服务提供者, 它允许你的Asterisk通过这里定义的服务商打电话; 而user则定义对方是你的一个客户端, 允许对方通过你的Asterisk打电话. friend就是两者兼有. 但是实际情况是什么? 试试这样的定义: [1001] username=1001 secret=xxxxx host=dynamic port=5060 type=peer context=from-extensions 然后用一个SIP客户端来尝试注册到你的Asterisk上, what happened? 你会发现客户端也能注册上! 其实type的真正意义在于Asterisk怎么去处理发往外部和来自外部的请求. type=peer 如果type是peer,有两层含义. 1. 可以将对方作为一个SIP Service Provider, 允许你的Asterisk通过对方进行呼出. 2. 如果对方在逻辑上是一个客户端, asterisk将根据传入的Invite请求来对对方进行身份验证, 但需要注意的是这里的验证不是通过username和secret, 而是通过对方的address和port. 这里分两种情况: * 对方的address和port没有匹配到你在sip.conf中对任何一个peer的设置, 如果你的Asterisk 允许匿名呼入(allowguest=yes), 那么, 该呼入将被传到在sip.conf的general配置中的context 上. 如果不允许匿名呼入, 直接拒绝该呼入. * 对方的address和port匹配到了任何一个sip.conf种的peer设置, 那么改呼入将被传到该peer 指定的context上.

asterisk+freepbx+astercrm的安装----lamp rpm安装

Linux下安装呼叫中心服务器(ASTERISK+FreePBX) 一、环境要求: 操作系统:centos 5.0以上(以最小化形式安装) Linux内核版本:2.6.22 Asterisk版本:asterisk V.1.6.2.18 FreePBX版本:FreePBX:2.9.0 以rpm方式安装好的LAMP环境 以root身份登录 二、所需软件包 https://www.doczj.com/doc/4d12397261.html,/pub/telephony/asterisk/asterisk-1.6.2.1 8.tar.gz https://www.doczj.com/doc/4d12397261.html,/freepbx-2.9.0.tar.gz 三、安装步骤 1、Lamp的安装 下载所有软件包到/usr/local/src路径 配置yum源,安装相关软件 yum –y update yum install –y httpd http-devel mysql mysql-devel mysql-server php php-devel php-mysql yum install php5 php5-cli php5-mysql php-pear libapache2-mod-php5 php5-curl php5-gd php-db yum install php php-mysql php-common php-gd php-mbstring php-mcrypt php-devel php-xml

yum install e2fsprogs-devel keyutils-libs-devel krb5-devel libogg libselinux-devel libsepol-devel libxml2-devel libtiff-devel gmp php-pear php-pear-DB php-gd php-mysql php-pdo kernel-devel ncurses-devel audiofile-devel libogg-devel openssl-devel mysql-devel zlib-devel perl-DateManip sendmail-cf sox yum install gcc gcc-c++ wget bison mysql-devel mysql-server php php-mysql php-pear php-pear-DB php-mbstring nano tftp-server httpd make ncurses-devel libtermcap-devel sendmail sendmail-cf caching-nameserver sox newt-devel libxml2-devel libtiff-devel php-gd audiofile-devel gtk2-devel subversion kernel-devel yum install festival festival-dev yum install ncurses-base ncurses-bin ncurses-term libncurses5 libncursesw5 libncurses5-dev libncursesw5-dev yum install zlib1g zlib1g-dev yum install bison bison-doc yum install install libxml2 libxml2-dev yum install libtiff4 libtiff4-dev yum install libasound2 libgsm1 libltdl3 libpq4 libspeex1 libsqlite0 libtonezone1 libaudiofile0 libaudiofile-dev yum install libnet-telnet-perl mime-construct libipc-signal-perl libmime-types-perl libproc-waitstat-perl mkdir /var/lib/mysql chown –R mysql:mysql /var/lib/mysql /etc/init.d/httpd start chkconfig –level 35 httpd on mysql_install_db chown –R mysql.mysql /var/lib/mysql

Asterisk安装和测试

Asterisk安装 (红色字体部分为需要键入或修改的部分)

下载准备 系统环境:Linux CentOS 5.0,安装开发工具以及开发库。 Asterisk 源代码包asterisk-1.6.1.20.tar.gz,版本:1.6.1.20。 SIP软电话使用eyebeam 版本:1.5.8。 1.切换用户(需要输入管理员密码),执行 su root 2.进入源码包存放文件夹 [root@asterisk-test1 ~]#cd /usr/local/src 3.下载 [root@asterisk-test1 ~]#wget https://www.doczj.com/doc/4d12397261.html,/pub/telephony/asterisk/releases/asterisk1.6.1.20. tar.gz 编译安装Asterisk 1.解压源代码包 [root@asterisk-test1 ~]# tar -zxvf asterisk-1.6.1.20.tar.gz 2.进入包目录 [root@asterisk-test1 ~]# cd asterisk-1.6.1.20 3.环境检测和预配置 [root@asterisk-test1 asterisk-1.4.5]# ./configure(其实这样直接进行configure并非十分规范。应当先使用“./configure –help”命令来 查看一些可用的选项和参数,然后根据实际情况才进行定制操作。)当环境预检测和预配置工作 做完时,最后会显示以上反馈信息。并且建立好Makefile。 注意:系统如果缺少安装必须的包,此步骤可能会出现configure: error错误,解决方案见后文可能遇到的问题 configure: creating ./config.status config.status: creating build_tools/menuselect-deps config.status: creating makeopts config.status: creating channels/h323/Makefile config.status: creating include/asterisk/autoconfig.h .$$$$$$$$$$$$$$$=..

asterisk配置小结

asterisk配置简单解说 软件版本 asterisk 1.2.7.1 gix101e sip 130 中文 一:通话设置部分 1:软件安装 debian系统下面可以使用如下命令安装,如果是其他发行版可以自己编译安装或者使用相应的包安装。 vax:/home/ailantian# apt-get install asterisk 2:帐户设置 sip的帐户设置 vax:/home/ailantian# cd /etc/asterisk/ vax:/etc/asterisk# ls adsi.conf codecs.conf logger.conf res_odbc.conf adtranvofr.conf dnsmgr.conf manager.conf rpt.conf agents.conf dundi.conf meetme.conf rtp.conf alarmreceiver.conf enum.conf mgcp.conf sip.conf alsa.conf extconfig.conf misdn.conf sip_notify.conf asterisk.adsi extensions.ael modem.conf skinny.conf asterisk.conf extensions.conf modules.conf telcordia-1.adsi cdr.conf features.conf musiconhold.conf voicemail.conf cdr_custom.conf festival.conf osp.conf vpb.conf cdr_manager.conf h323.conf oss.conf zapata.conf cdr_odbc.conf iax.conf phone.conf cdr_pgsql.conf iaxprov.conf privacy.conf cdr_tds.conf indications.conf queues.conf 这个目录下面的sip.conf bindaddr=192.168.100.144;这个填自己的ip地址。 allow=all;允许所有的解码类型。 添加下面的字段。下面的是帐户信息。 [777] type=friend username=777 secret=777 host=dynamic ; This device registers with us [888] type=friend username=888 secret= host=dynamic ; This device registers with us [333] type=friend username=333 secret= host=dynamic 然后还需要修改的文件是extensions.conf 然后才能够互通,否则可能会收到404,或者407错误。

Tekla常用设置(简)解读

1、当一张Xsteel的图纸转化为CAD的图纸时,被文字或尺寸标注遮挡处的线条时常会断开,问:怎样才能让两条线不断开? 要在绘制图纸中或转化到DXF / DWG 中显示连续线(例如穿过文本或图 纸标记画直线),可将以下变量设置为off: ? XS_USE_LINECLIP_IN_EXPORT (对于DXF / DWG 输出)。 ? XS_USE_LINECLIP (对于绘制的图纸)。 2.修改多边形形状时,系统默认的多边形的第一条边是无法调整的;要通过增加顶点移动来调整多边形的形状。 3、不要使用剪切来减短部件。由于在导出信息到 NC 文件时剪切并不总能影响部件长度,这会导致工厂错误。采用移动部件控柄或使用细部 > 接合来代替。 不要使用接合来延长部件。这会导致与连接和细部相关的错误。采用移动部件控柄来代替。 4、如何在报表中将连续的文字独立的列: A、在报表中的文本域中添加文本<,>; B、同时在输出文件时将报表的名称的后缀改为<*.csv>格式. C、打开时采用EXCEL打开即可. 5、定义轴线标签边框 要定义轴线标签边框大小,请使用工具>高级选项>图纸属性中的XS_DRAWING_GRID_LABEL_FRAME_FIXED_WIDTH变量。默认值为零,表明轴线标签边框的宽基于轴线标签的宽。要增加或减少边框的宽,请以毫米为单位输入需要的值。 XS_DRAWING_GRID_LABEL_FRAME_FIXED_WIDTH 6、滚轮鼠标 要设置滚动(不按住)滚轮时的缩放比例,使用变量 XS_ZOOM_STEP_RATIO_IN_MOUSEWHEEL_MODE。 要设置滚动并按住滚轮时的缩放比例,使用变量 XS_ZOOM_STEP_RATION_IN_SCROLL_MODE。 7、如何修改13.0系统默认的字体样式和标注样式 xs13.0的字体样式系统默认是Comic Sans MS 标注样式是Bookman Old Style 我太喜欢这些字体,我想把他们全部修改为宋体,虽然出图后也可以把他们修改为自己想要的那种字体,但感觉不是很方便,请问可以在系统下修改吗?我想一出图不经修改就可以是我想要的那种字体: 1.在这里也可以改,后面的为输出CAD转换的字体,*1.0的为修改字宽. // Examples: (remove the comment marks // to make the lines effective) // Arial Narrow = ARIALN.TTF * 1.0 // ISOCPEUR = ISOCP.SHX * 1.0 // ISOCTEUR = ISOCT.SHX * 1.0 2.在BAT文件中可以修改模型轴线的字体 rem *** Fonts --------------------------------------------------- set XS_DEFAULT_FONT=Arial Black set XS_DEFAULT_FONT_SIZE=10 set XS_TEXT_FONT=Arial Narrow rem set XS_VIEW_TITLE_FONT=Arial Narrow 8、将图形文件从XSTEEL转到CAD中的时候,图面上的字体有的时候会有位

asterisk常用命令

asterisk常用命令 Asterisk基本配置 Asterisk译为星号(*)在很多应用中被用做通配符,Astrisk做为PBX系统的完美名称,原因之一是Asterisk可以连接数目庞大的接口类型,包括: 1模拟接接口,如你的电话线或模拟电话. 2数字线路,如T-1和E-1线路 3V oip协议,如SIP和IAX 目前正式版本是IAX2,但是IAX1的所有格式都已经停掉.所以当说到IAX都是特拽IAX2 使用接口配置文件 1.Zaptel.conf:硬件接口基层配置,我们将建立一个FX0和一个FXS通道. 2.zapata.conf:硬件配置Asterisk的接口. 3.extension.conf:拨号方案文件. 4.sip.conf:配置SIP协议的文件 5.iax.conf:配置呼入和呼出IAX通道的文件 ******编辑完zaptel.conf文件,需要使用/sbin/ztcfg -vv装载配置到硬件(不须要详细输出可以省略-vv);修改信令方法需要重启.在编辑sip.conf和iax.conf文档后,分别需要装载chan_iax2.so和chan_sip.so Asterisk译为星号(*)在很多应用中被用做通配符,Astrisk做为PBX系统的完美名称,原因之一是Asterisk可以连接数目庞大的接口类型,包括: 1模拟接接口,如你的电话线或模拟电话. 2数字线路,如T-1和E-1线路 3V oip协议,如SIP和IAX 目前正式版本是IAX2,但是IAX1的所有格式都已经停掉.所以当说到IAX都是特拽IAX2 使用接口配置文件 1.Zaptel.conf:硬件接口基层配置,我们将建立一个FX0和一个FXS通道. 2.zapata.conf:硬件配置Asterisk的接口. 3.extension.conf:拨号方案文件. 4.sip.conf:配置SIP协议的文件 5.iax.conf:配置呼入和呼出IAX通道的文件 ******编辑完zaptel.conf文件,需要使用/sbin/ztcfg -vv装载配置到硬件(不须要详细输出可以省略-vv);修改信令方法需要重启.在编辑sip.conf和iax.conf文档后,分别需要装载chan_iax2.so和chan_sip.so******

asterisk目录及配置说明

asterisk 目录及配置说明 Asterisk 目录及配置文件 /etc/asterisk Asterisk 主目录,包含其它关于Asterisk 的配置文件; *zaptel.conf 这个配置文件放在/etc, 因为其它软件也可以使用Zaptel 这个硬件及其驱动, 所以不是放在/etc/asterisk 里. /usr/lib/asterisk/modules 这个目录包含所有可以加载Asterisk 模块(应用程序编辑器格式和有用通道), 在Asterisk 启运时会加载这些模块(可以编辑modules.conf). /var/lib/asterisk 比较重要的是astdb 文件与agi-bin 目录; astdb 包含Asterisk 当地数据库信息. sounds/ 所有声音提示的文件在里面,包括Asterisk 原代码中的sounds.txt 文件 mohmp3/ 如果配置了音乐保持,应用程序会在这个目录下查找mp3(用CBR从文件中去除身份标签). keys/ 使用公钥和私钥系统认证与一个由RSA 数字签名形成的一对等连接.公钥和私钥的扩展名分别为.pub 和.key firmware/ 这个目录含了很多Asterisk相兼容的设备固件,它只有iax/这个子目录,其 中有Digium的lAXy的二进制固件镜像. images/ 只有在较多的支持并且利用图解式的图像设备被发布,这个目录将会与相应的目录有更大的关联. /var/lib/asterisk/agi-bin agi-bin 包含所有脚本,可以通过许多已经建立的Asterisk 连接.系统的接口,在这里可以写自己的脚本来控制拨打流程。 ================配置文件================ /etc/asterisk/asterisk.conf 主要配置文件, 修改这个配置文件要用modprobe 装载Linux AGl 应用程序与 /etc/zaptel.conf 硬件接口的基本层

Asterisk

第32章VoIP服务器——Asterisk 可以自己用软件实现电话交换机?是的,这就是本章我们要讨论的话题。如何在Linux下实现免费的电话交换机功能。 32.1用Linux实现免费电话大餐 在架设自己的电话系统之前,我们先看看传统的电话网络是如何工作的。传统的电话网络,叫做Public Switched Telephone Network,公共交换电话网络,简称PSTN,是一种全球联网的语音通信电路交换网络,通过中继和交换设备进行通讯。不难看出,我们现在使用的IP计算机网络和PSTN颇有几分相似之处,在PSTN中呼叫一个电话号码相当于通过IP网络到达一个IP地址,在骨干PSTN网络中,也和IP协议一样使用复用机制来传递数据。 对于私有电话系统来说,也和IP计算机网络有着类似的原理。公司的电话交换机直接对外(相当于IP网络中的公网地址),外部人员只能访问到电话交换机总机,由总机控制应该将这个连接转到哪个分机上(类似于IP中的NAT),内部的分机不是合法的电话号码(192.168.x.x?),只有通过公司的电话交换机才能与外界正常通讯。 在这里,公司的电话交换机,也就是通常所说的程控交换机,也叫PBX,Private Branch(telephone) eXchange的缩写,意思是私有/专有电话交换系统,传统的PBX使用PSTN网络连接并提供语音通话服务。 随着技术的发展,出现了基于IP网络的语音传输业务,即V oice over IP,简称V oIP,人们可以通过计算机网络(通常是指Internet或Intranet)进行语音通话,而后,又出现了基于IP网络的PBX,简称IPPBX,IPPBX不需要专用的网络,可以通过Internet和V oIP实现类似于传统电话系统的功能,而且,使用IPPBX进行通信,对内没有任何费用,只有网络建设成本,对外只需要支付接入到

相关主题
文本预览
相关文档 最新文档