1. 程式人生 > >原始碼編譯方式安裝Asterisk

原始碼編譯方式安裝Asterisk

宣告:本文由本人翻譯自Asterisk wiki,如有不妥歡迎指正。

一種流行的安裝Asterisk方式是自己下載原始碼並編譯。這比使用包管理器或使用基於Asterisklinux發行版要複雜,它允許你自己決定如何構造Asterisk和構造哪些Asterisk模組。

在這一節中,你將學習到如何下載並編譯Asterisk原始碼,以及如何安裝Asterisk

1. 下載

在一個典型的系統中,你將需要下載以下三個元件:

· Asterisk

· DAHDI

· libpri

libpri庫允許AsteriskISDN連線互動(我們將在450.8章節“ISDN PRIBRI連線簡介中介紹更多關於

ISDN連線的內容)。雖然這個庫並不總是必要的,但我們還是建議你安裝。

DAHDI庫允許Asterisk與模擬和數字電話以及電話線互動,包括公共電話交換網(Public Switched Telephone Network,簡稱PSTN)。即使你現在暫時不需要連線模擬或數字電話,但也應該在新的系統中安裝DAHDI

DAHDI

DAHDIDigium Asterisk Hardware Device Interface簡寫,即Digium公司的Asterisk硬體裝置介面,它集成了一些模擬和數字電話卡的驅動和應用程式,以及其他Digium公司的產品。DAHDI驅動程式獨立於Asterisk,並可以被其他應用使用。

DAHDI先前被叫做Zaptel,是由Zapata電話系統專案演進而來。

DAHDI原始碼可以分別下載兩個單獨的元件(dahdi-linuxDAHDI的驅動程式,dahdi-toolsDAHDI的應用程式)。也可以下載dahdi-linux-complete完整包,它包含了linux驅動和應用程式兩個部分。

貼士:為什麼DAHDI要分割為兩個不同的元件?

DAHDI被分割為兩個元件(linux驅動和應用),是為了讓第三方可以把DAHDI驅動移植到像FreeBSD這樣的其他作業系統,這樣我們就會有dahdi-linuxdahdi-freebsd等。

最新版本的libpriDAHDIAsterisk

下載地址:

2. 系統環境要求

為了順利編譯和安裝Asterisk,你需要在系統中安裝一個C編譯器和一些系統庫。

2.1 編譯器

編譯器是一個使原始碼(Asterisk的原始碼是用C語言編寫的)變成可執行程式的程式。雖然任何C語言編譯器都可以編譯Asterisk原始碼,但是我們強烈建議你使用GCC編譯器。它不僅是LinuxUnix系統下最流行的免費C語言編譯器,也是Asterisk開發者使用的編譯器。

如果GCC編譯器還沒有安裝到你的機器上,你只需使用相應的軟體包管理系統安裝即可。你還需要安裝GCCC++部分,某些Asterisk模組將會用到它。

2.2 系統庫

除了C語言編譯器,還需要安裝一些系統庫。這些被Asterisk依賴的庫必須在編譯Asterisk之前安裝好。在大多數作業系統中,你需要安裝庫和與之相應的開發包。

貼士:開發庫

對於大多數作業系統,開發包名以-dev或者-devel結尾。例如,在Red Hat Linux系統中,你需要安裝“openssl”“openssl-devel”兩個包。

你需要安裝的庫清單:

· OpenSSL

· ncurses

· newt

· libxml2

· Kernel headers(編譯DAHDI驅動用到)

我們建議你在編譯和安裝libpriDAHDIAsterisk之前,使用作業系統的軟體包管理系統來安裝這些庫。

貼士:找到正確的庫

如果你安裝Asterisk1.6.1.0或者更新的版本,在contrib/scripts子目錄下配備了一個名為install_prereq.shshell指令碼。如果執行 install_prereq test,它將輸入在你的作業系統上安裝必須系統庫所需要執行的命令,如果執行 install_prereq install,它將自動嘗試下載並安裝這些必須系統庫。

3. 解壓縮原始碼檔案

你下載到的libpriDAHDIAsterisk原始碼副檔名通常為.tar.gz.tgz。這些檔案被親切的稱作tar包。這個名字來自Unix下的tartap archive磁帶歸檔的簡稱)應用。Tar包是為了便於複製而將一些檔案組合為一個檔案,然後通常使用像GZip一樣的工具進行壓縮。

我們使用tar命令從tar包中提取原始碼。下面假設你使用Linux系統,並已經下載了libpriDAHDIAsterisktar包儲存在/usr/local/src目錄下(你可能需要用root賬戶登陸以使這個目錄可寫)。版本號我們使用XYZ來替代,我們假設你會使用下載下來的tar包中的版本號。另外請注意,我們在這裡展示的命令可能與您的系統命令提示符下的不一樣,不過不用擔心,這些命令應該差不多。

首先,我們切換到下載原始碼的目錄下:

# cd /usr/local/src

然後,使用tar命令逐一從tar包中提取原始碼,使用tar命令的-zxvf引數來告訴它我們要做什麼。Z引數表示先解壓縮再繼續,x引數表示從tar包中提取檔案,v引數表示輸出詳細(在每個檔案提取的時候打印出檔名),f引數表示我們要從一個tar包檔案中提取檔案,而不是從磁帶中。

# tar -zxvf libpri-1.X.Y.tar.gz

# tar -zxvf dahdi-linux-complete-2.X.Y+2.X.Y.tar.gz

# tar -zxvf asterisk-1.8.X.Y.tar.gz

現在,你應當注意到,系統為每一個tar包建立了一個子目錄,每個子目錄中都包含了從相應tar包中提取的檔案。我們接下來就可以編譯並且安裝這些元件了。

4. 編譯和安裝DAHDI

(未完待續。。。)