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

维基教科书,自由的教学读本

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

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

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

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

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


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


Asterisk维基站

(TODO:这里有点让人困惑。首先,我没有找到Asterisk Wiki,和Asterisk相关的Wiki只有wiki.asterisk.org。其次,James Thompson就是voip-info.org的创办人,James Thompson在voip-info.org之前还创办了另外一个Wiki吗,搞不清楚。) http://www.voip-info.org 是社区维护的一个知识库,其中包含大量的有用信息,有时候这些信息还有自相矛盾点,但不失为一个大宝藏,其中除了Asterisk还有其他voip相关的内容。Asterisk相关文档到目前为止构成了voip-info的很大一部分,可能比其他任何地方的Asterisk信息加起来还多,所以voip-info是一个很受欢迎的Asterisk知识库。

一个重要的新维基站是Asterisk的官方Wiki,位于http://wiki.asterisk.org。虽然内容还没有voip-info.org全,但这个Wiki会得到更正式的支持,其中的信息可能会更及时、更准确些。

IRC频道[编辑]

Asterisk社区在irc.freenode.net上有聊天频道。两个最活跃的频道是#asterisk和#asterisk-dev。为了防止垃圾信息的打扰,这两个频道都需要注册才能加入。


Asterisk用户组[编辑]

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


Asterisk文档计划[编辑]

Asterisk文档计划由Leif Madsen和Jared Smith创建,也得到了社区其他人的帮助。

Asterisk文档计划的目标是提供一个Asterisk相关的结构化的文字作品。相较于Wiki的灵活和即兴,文档计划更热衷于一种集中的方式来介绍Asterisk相关主题。

Asterisk文档计划可以在http://www.asteriskdocs.org免费获取。


商业分析[编辑]

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

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


结束语[编辑]

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