在考虑本书每一版的序言时,我们总是希望能够邀请更多的人撰写,而非翻来覆去总是我们那几页。在第5版中,我们再次邀请Asterisk社区的一些人从他们的角度写了一些关于Asterisk的文字。
Joshua Colp(Sangoma/Digium公司高级软件开发者)
15年前,我将Asterisk下载到笔记本电脑上,并使用IAX2向Digium PBX发起了我的第一个VoIP呼叫。我屏住呼吸,期待着声音的到来,直到我的笔记本电脑终于传出了Allison的声音。那时我就知道Asterisk有一些特别之处。这点燃了我的兴趣和想象力的火花:我的笔记本电脑真的可以打电话!我意识到,只要多付出一些努力,我就能够接电话,做我想做的事情,这是多么令人着迷和兴奋—很多人至今仍有这种感觉。
如今的Asterisk与那个时候有很大的不同。过去,Asterisk专注于提供PBX所需的功能。Asterisk具有PBX所需的所有功能,并且不断加入新的功能,以推动在这一领域继续前行。但是,随着时间的推移,Asterisk已经演变成一个工具包,可以单独使用,也可以与其他项目结合使用。这会在你的脑海中引发一个思考:“我可以做这个吗?”并推动你把它坚持做下去。
很多关于Asterisk本身及其方向的决定都由这个简单的问题引起。“对用户来说这是正确的吗?”“这是人们真正需要的吗?”“这有什么坏处吗?”“他们能够以此来构建自己想要的东西吗?”这些问题结合起来有助于确保人们能够实现自己的想法。这正是如今Asterisk让我兴奋的地方—看到人们使用这些工具随心所欲地创造新的事物。
我认为,对于Asterisk而言,这种状况还将持续下去。Asterisk在继承原有功能和兼容现有用户使用方式的同时,将继续添加新的工具和功能,通过提供更大的灵活性和更多选项来帮助人们构建自己想要的东西。Asterisk将继续成为更全、更好的解决方案的一部分,其中有些甚至可能现在都没有想到。我们只是向前迈出了几步,要做的事情还有很多。
我强烈建议Asterisk的新老用户们以谦逊的态度重新审视Asterisk,以学习新添加的功能,并使用你不知道的技能构建新的且令人兴奋的东西。如果你发现Asterisk无法满足你的需求,请参与到项目中并做出贡献,以帮助其他可能尝试做同样事情的人。不仅要成为使用Asterisk的人,还应成为帮助他人实现梦想的人。
Dan Jenkins(Nimble Ape公司创始人)
我第一次涉足的开源电话领域就是Asterisk。作为一名Web开发人员,我发现Asterisk与我过去使用的(Web行业的)东西完全不同。Asterisk项目从那时以来一直在持续发展,现在,该项目融合了很多Web开发人员期望的API和技术。WebRTC和Asterisk的REST接口对于集成开发人员已构建的基于Web平台的系统至关重要。Asterisk是我最终建立起自己的事业的核心,它确实是一款了不起的软件,并且拥有一个优秀的社区,社区里的人大量使用并改进它。我很高兴成为这个社区的一员,并为未来的社区校对这本书。
Joyce Wilmot(高级Web开发者)
我于2012年开始接触Asterisk,当时我在Voicenation公司工作,这家公司为成千上万的客户提供24×7×365的实时应答服务。当时,呼叫中心的发展速度迅速超出了他们所使用的第三方软件的服务能力。由于无法为迅速扩张的呼叫中心找到灵活而经济的解决方案,Voicenation决定创建自己的呼叫中心软件。我的任务是创建这个软件,也由此开始了我的Asterisk之旅。一开始这是一项艰巨的任务(因为我之前没有IP电话经验),但很快我就被Asterisk吸引住了,因为我发现它简化了我们的设置,同时又不牺牲功能和灵活性。
九年很快过去了,历经数以千万次的来电,Asterisk仍然忠实可靠地服务着我们的呼叫中心。这是我第一次接触开源软件。Asterisk显然是一个成功的开源案例,它向我们展示了开源软件是如何激发创业精神,而创业精神又是如何反过来推动开源软件的发展和增强的。Asterisk一直在不断地发展以适应这个不断变化的电信世界,我很高兴成为这个循环的一部分,并期待能够成为社区的一分子。
Matt Florell(VICIdial的创始人)
早在2001年,我第一次接触的开源电话技术其实并不是Asterisk。我当时使用另一种软件包,我花了几个月的时间,使用一个简单的IVR为我当时的雇主记录呼叫请求。该系统并不容易使用和修改,因此除了第一个IVR项目之外,我没有做太多其他事情。两年后,我接到客户请求,要求构建一个更为复杂的电话系统,该系统需要用户通过计算机进行交互。我知道我一直使用的平台无法满足这样的项目需求,因此我考虑了商业和开源两种选择。我在那时了解到Asterisk,看起来它可能是该项目的理想平台。我买了一张T1板卡进行测试,并在拿到板卡的两个小时内对它进行了配置,它完全能够实现我花几个月时间才能完成的旧项目。此后我迷上了Asterisk。VICIdial开源呼叫中心项目也是源自该项目。迄今为止,据我们所知VICIdial集群(Asterisk系统是其一部分)已经安装超过100 000套。
Asterisk与我过去使用的大部分基于Web的开源软件包有很大的不同,在早期有很多问题和bug需要解决(有时得用非常有创造性的方式)。但是,与早期的版本相比,从我们现在使用的Asterisk 13来看,性能和稳定性都得到了明显改善。新添加的很多特性使我们能够向VICIdial程序包中添加新的功能,其中两个功能是暂停呼叫记录以及多层SIP日志。
早在2003年,当我开始使用Asterisk时,还没有真正意义上的“发行版”。你必须从最新的CVS修订版中找到一个稳定的版本,然后对其进行测试。随着时间的推移,各个分支的开发和维护变得更加稳定,世界各地的生产系统对Asterisk的使用量激增。如今,Asterisk已成为数千种不同服务的电话核心,每天用户要通过Asterisk拨打数十亿个电话。Asterisk被安装在各种各样的硬件上,从微型嵌入式系统到拥有数百台高性能计算机的服务器集群。现在,每天都有数百万的人在使用Asterisk,但他们并不知道自己正在与一款开源软件打交道。
仅在我们的客户群中,就有多家财富500强公司,以及校园、社交俱乐部、政治组织、市政应急服务机构,还有数千个不同类型的商业化运营案例。虽然购置成本低是基于Asterisk提供解决方案的一个常见原因,但是我们经常听到这样的说法:开源是一个很大的优点,而且不存在厂商锁定的可能性。我们的一个大客户甚至声称他们使用的开源电话软件相对于竞争对手而言是一个“独特的战略性优势”,因为Asterisk系统更具灵活性,他们能够不依赖外部厂商自己进行维护和管理。从我目前了解的情况来看,未来的Asterisk用户会越来越多,功能会越来越强。在未来我期待与Asterisk继续合作。
Matt Fredrickson(Sangoma/Digium公司Asterisk工程主管)
在过去的18年里,我有机会与Asterisk一起工作,见证了它从一两个人的小项目成长为拥有数百名贡献者的独立项目。令人惊讶的是,Asterisk打破了传统电信技术对使用地点的限制(只能在家、办公室和企业)。随着传统通信方式的转变,Asterisk项目仍在发挥着自己的独特优势—将旧的通信方式与新的通信方式连接起来,并拓展新通信方式的边界。本书将帮助你了解Asterisk的最新特性,以及如何在电信基础设施中更好地发挥它的作用。非常感谢Jim Van Meggelen,他为整合这一最新版本付出了很多。
这是一本为Asterisk用户所写的书。
Asterisk是一个开源的电话平台,主要基于Linux运行。Asterisk将一百多年的电话技术整合到一起,构成了一套可靠而又高度集成的电信应用。Asterisk的强大之处在于其可定制性,再加上无与伦比的标准遵从性。没有任何其他程控交换机(PBX)能够以如此多的创造性方式进行部署。
语音邮件、托管会议、呼叫队列和代理、等待音乐和呼叫暂停等应用都是软件内置的标准功能。更重要的是,Asterisk可以让封闭的、专有的PBX以难以想象的方式与其他商业技术进行集成。
对于新用户来说,Asterisk可能看起来非常可怕和复杂,这也是文档如此重要的原因。文档降低了入门难度,并帮助人们思考各种可能性。
本书由Asterisk社区成员编写。感谢O’Reilly Media的大力支持,使得本书可以顺利出版。
读者对象
本书主要面向Asterisk的初学者,但是我们假设你已经对基本的Linux管理、网络和其他相关IT知识有了一定的了解。如果你还不够熟悉的话,O’Reilly出版了很多有关此类知识的书籍,你可以尽情地探索和学习。此外,我们还假设你对电信相关知识(包括传统的交换电话和最新的IP电话)了解不多。
本书同样适合于经验丰富的Asterisk管理员。有些功能一段时间不使用就会忘记,此时我们可以将这本书当作参考手册使用。
本书所用软件
本书重点介绍Asterisk 16。但是,本书中的很多内容和信息都是与版本无关的。我们在Linux操作系统上运行和测试过Asterisk,并且提供了基于CentOS(Red Hat Enterprise Linux或RHEL)的安装说明。
排版约定
本书中使用以下排版约定:
斜体(Italic)
表示URL、电子邮件地址、文件名、文件扩展名、路径名称、目录、包名称,以及Unix实用工具、命令、模块和参数。
等宽字体(Constant width)
用于程序清单、文件内容、命令行交互、数据库命令、库名称和选项。
等宽粗体(Constant width bold)
表示应由用户直接输入的命令或其他文本。也用于代码中的强调。
等宽斜体(Constant width italic)
表示应由用户提供的值替换的文本。
[关键字和其他参数]
指示可选的关键字和参数。
{选项-1/选项-2}
表示二选一:选项-1或选项-2。
该图示表示提示或建议。
该图示表示一般性说明。
该图示表示警告或注意。
O’Reilly在线学习平台(O’Reilly Online Learning)
近40年来,O’Reilly Media致力于提供技术和商业培训、知识和卓越见解,来帮助众多公司取得成功。
我们拥有独一无二的专家和革新者组成的庞大网络,他们通过图书、文章、会议和我们的在线学习平台分享他们的知识和经验。O’Reilly的在线学习平台允许你按需访问现场培训课程、深入的学习路径、交互式编程环境,以及O’Reilly和200多家其他出版商提供的大量文本和视频资源。有关的更多信息,请访问http://oreilly.com。
如何联系我们
对于本书,如果有任何意见或疑问,请按照以下地址联系本书出版商。
美国:
O’Reilly Media,Inc.
1005 Gravenstein Highway North
Sebastopol,CA 95472
中国:
北京市西城区西直门南大街2号成铭大厦C座807室(100035)
奥莱利技术咨询(北京)有限公司
要询问技术问题或对本书提出建议,请发送电子邮件至bookquestions@oreilly.com。
本书配套网站https://oreil.ly/asterisk_tdg_5E上列出了勘误表、示例以及其他信息。
关于书籍、课程、会议和新闻的更多信息,请访问我们的网站http://www.oreilly.com。
我们在Facebook上的地址:http://facebook.com/oreilly
我们在Twitter上的地址:http://twitter.com/oreillymedia
我们在YouTube上的地址:http://www.youtube.com/oreillymedia
Jim Van Meggelen的致谢
感谢David Duffett撰写第9章,从更加全球化的视角看待这一技术。
感谢Leif Madsen、Jared Smith和Russell Bryant为本书之前的版本所做的贡献。单飞虽然很有趣,但我的确非常想念他们!
特别感谢Digium公司的Matt Fredrickson和Matt Jordan,他们慷慨地与我分享了自己的时间和知识,如果没有他们,我会迷失方向。
感谢我的编辑Jeff Bleiel,他让我按计划完成了这本书,并对本书的内容和进度做出了重要的贡献。
也要感谢O’Reilly制作部门的无名英雄们。O’Reilly的书就是在他们的手中制作完成的。
特别感谢我的技术评审团队Joyce Wilmot和Dan Jenkins,他们抽出宝贵的时间来读完本书并提供了重要的反馈。
RedHat的Thomas Cameron慷慨地与我分享了他关于Selinux的知识,并帮助我揭开了一个经常被禁用的Linux组件的神秘面纱。
Asterisk社区的每个人都应该感谢已故的Jim Dixon,是他创造了第一个开源电话硬件接口,掀起了这场革命,并将他的成果献给了社区。
最后,也是最重要的,感谢Asterisk的原作者、Digium的创始人Mark Spencer,感谢他对Asterisk、Pidgin(http://www.pidgin.im)以及开源社区所做的贡献。Asterisk是他留给世人最宝贵的一笔财富!