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,然後接下來,誰知道你將會用它創造出什麼奇蹟。