Asterisk權威指南/第三章 安裝Asterisk
在這一章我們將詳細介紹如何從原始碼安裝Asterisk。很多人迴避這種方法,說它太難了,又耗時間。我們在這裏想證明的是從原始碼安裝Asterisk其實沒那麼難。更重要的是,我們想為你提供一個最好的Asterisk安裝,以便學習。
在本書中,我們將幫助你從空白開始構建起一個功能健全的Asterisk。在本章你將為你的Asterisk系統搭建一個基礎平台。從原始碼安裝有很多種方法,這裏將向你介紹的方法我們已經用了很多年了。
作為這個過程的一部分,我們還會介紹如何在Linux作業系統上安裝依賴軟件包,這些依賴軟件包會在本書的其他部分涉及到(比如數據庫集成)。我們提供了在CentOS(基於Redhat)和Ubuntu(基於Debian)上的具體安裝指令,我們相信這兩個系統是覆蓋面最廣的。我們將保持這些指令儘可能地也適用於其他Linux發行版。
儘管我們選擇了CentOS和Ubuntu,但Asterisk本身是不特定於任何Linux發行版的。Asterisk甚至可以安裝到Solaris,BSD,或者OS X上,如果你喜歡的話。但我們在這裏不會討論這些,畢竟Asterisk還是主要開發用於Linux平台的。
註:Asterisk軟件包。也可以通過軟件包管理程序(yum或apt-get)安裝Asterisk,你有興趣的話可以試一下。但是預構建的軟件包可能不是最新的,所以要用最新的版本我們還是建議從原始碼安裝。
你在本章看到的一些命令可能會分成多行,並且標明了它們所適用的發行版。沒有標明的命令可以同時適用於兩個發行版上。
基於Asterisk的項目
編輯很多項目是以Asterisk作為它們的基礎平台的。其中一些,像Trixbox,很流行,以至於被人們當成了Asterisk產品本身。這些項目一般是在Asterisk的基礎上添加一個Web管理界面、一個複雜的數據庫和一些受限制的配置修改規則。
我們選擇不介紹這些項目,是出於以下原因:
- 這本書應該儘可能地專注於Asterisk本身。
- 已經有一些介紹那些項目的書了。
- 我們相信,如果你按照我們教你的方式學習Asterisk,這些知識在你選擇使用那些項目的時候一樣很有用。
- 對我們來說,Asterisk的強大在於它不會試圖去替你解決問題。那些項目就很好地說明了我們可以用Asterisk做什麼,它們真的做得很棒。但是,如果你想建立一個自己的Asterisk系統(Asterisk的真正意義所在),那些項目會對你構成限制,因為它們的目的是簡化你建造一個系統的過程,而不是幫你發覺Asterisk的潛能。
一些有名的項目包括(我們建議你去看一下):
- AsteriskNOW
http://www.asterisk.org/asterisknow - Trixbox
http://www.trixbox.org - Elastix
http://www.elastix.org - PBX in a Flash
http://www.pbxinaflash.net
快速安裝
編輯如果你想儘快把Asterisk跑起來,可以按順序執行下面的shell命令。我們建議你至少把本章讀一遍,以便更好地理解整個過程。 這些命令假設你已經按照「作業系統安裝」一節的內容把作業系統安裝好了。 1. 執行系統更新並重啟
CentOS:
yum update -y && reboot
CentOS 64-bit:
yum remove *.i386 && yum update -y && reboot
Ubuntu:
sudo apt-get update && sudo apt-get upgrade && sudo reboot
2. 同步時間,並且安裝網絡時間協議(NTP)伺服器:
CentOS:
yum install -y ntp && ntpdate pool.ntp.org && chkconfig ntpd \
on && service ntpd start
CentOS 64-bit:
yum install -y ntp && ntpdate pool.ntp.org && chkconfig ntpd \
on && service ntpd start
Ubuntu:
sudo apt-get install ntp
Ubuntu還需要一些額外的配置,見「啟用NTP精確係統時間」。
3. (只對CentOS)添加一個新的系統用戶
CentOS (32 and 64 bit):
adduser asteriskpbx && passwd asteriskpbx && yum install \
sudo && visudo
詳見「添加系統用戶」。 對Ubuntu來說,我們假設在安裝過程中創建的用戶是asteriskpbx。
4. 安裝依賴軟件包
CentOS:
sudo yum install gcc gcc-c++ make wget subversion \
libxml2-devel ncurses-devel openssl-devel \
vim-enhanced
CentOS 64-bit:
sudo yum install gcc.x86_64 gcc-c++.x86_64 \
make.x86_64 wget.x86_64 subversion.x86_64 \
libxml2-devel.x86_64 ncurses-devel.x86_64 \
openssl-devel.x86_64 vim-enhanced.x86_64
Ubuntu:
sudo apt-get install build-essential subversion \
libncurses5-dev libssl-dev libxml2-dev vim-nox
5. 創建你的目錄結構
$ mkdir -p ~/src/asterisk-complete/asterisk
$ cd ~/src/asterisk-complete/asterisk
6. 從Subversion檢出最新代碼 【備註: 該代碼及步驟目前已經無法使用. 正確的書目請參考官方頁面http://www.asteriskdocs.org/en/3rd_Edition/asterisk-book-html-chunk/Installing_id292446.html】
$ svn co http://svn.asterisk.org/svn/asterisk/branches/1.8
或者,檢出特定標籤
$ svn co http://svn.asterisk.org/svn/asterisk/tags/1.8.1
7. 構建並安裝軟件
$ cd ~/src/asterisk-complete/asterisk/1.8/
$ ./configure
$ make
$ sudo make install
$ sudo make config
8. 從menuselect安裝額外的語音提示
$ cd ~/src/asterisk-complete/asterisk/1.8/
$ make menuselect
$ sudo make install
9. 修改Asterisk安裝目錄的權限
$ sudo chown -R asteriskpbx:asteriskpbx /usr/lib/asterisk/
$ sudo chown -R asteriskpbx:asteriskpbx /var/lib/asterisk/
$ sudo chown -R asteriskpbx:asteriskpbx /var/spool/asterisk/
$ sudo chown -R asteriskpbx:asteriskpbx /var/log/asterisk/
$ sudo chown -R asteriskpbx:asteriskpbx /var/run/asterisk/
$ sudo chown asteriskpbx:asteriskpbx /usr/sbin/asterisk
10. (只對CentOS)禁用SELinux
$ sudo vim /etc/selinux/config
把SELINUX的值從enforcing修改成disabled,然後重啟。
11. 創建/etc/asterisk目錄,並且把indications.conf示例文件拷進去
$ sudo mkdir -p /etc/asterisk
$ sudo chown asteriskpbx:asteriskpbx /etc/asterisk
$ cd /etc/asterisk/
$ cp ~/src/asterisk-complete/asterisk/1.8/configs/indications.conf.sample \
./indications.conf
12. 把asterisk.conf拷到/etc/asterisk,修改runuser和rungroup的值為asteriskpbx
$ cp ~/src/asterisk-complete/asterisk/1.8/configs/asterisk.conf.sample \
/etc/asterisk/asterisk.conf
$ vim /etc/asterisk/asterisk.conf
詳細信息請看「indications.conf和asterisk.conf」一節。
13. 創建modules.conf。設定為自動裝載模塊,並且禁用額外模塊
$ cat >> /etc/asterisk/modules.conf
; The modules.conf file, used to define which modules Asterisk should load (or
; not load).
;
[modules]
autoload=yes
; Resource modules currently not needed
noload => res_speech.so
noload => res_phoneprov.so
noload => res_ael_share.so
noload => res_clialiases.so
noload => res_adsi.so
; PBX modules currently not needed
noload => pbx_ael.so
noload => pbx_dundi.so
; Channel modules currently not needed
noload => chan_oss.so
noload => chan_mgcp.so
noload => chan_skinny.so
noload => chan_phone.so
noload => chan_agent.so
noload => chan_unistim.so
noload => chan_alsa.so
; Application modules currently not needed
noload => app_nbscat.so
noload => app_amd.so
noload => app_minivm.so
noload => app_zapateller.so
noload => app_ices.so
noload => app_sendtext.so
noload => app_speech_utils.so
noload => app_mp3.so
noload => app_flash.so
noload => app_getcpeid.so
noload => app_setcallerid.so
noload => app_adsiprog.so
noload => app_forkcdr.so
noload => app_sms.so
noload => app_morsecode.so
noload => app_followme.so
noload => app_url.so
noload => app_alarmreceiver.so
noload => app_disa.so
noload => app_dahdiras.so
noload => app_senddtmf.so
noload => app_sayunixtime.so
noload => app_test.so
noload => app_externalivr.so
noload => app_image.so
noload => app_dictate.so
noload => app_festival.so
Ctrl+D
14. 配置musiconhold.conf
$ cat >> musiconhold.conf
; musiconhold.conf
[default]
mode=files
directory=moh
Ctrl+D
15. 現在可以開始配置信道和撥號計劃了。
安裝作業系統
編輯因為Asterisk需要獲取CPU的優先權,所以有必要將Asterisk安裝在一個沒有任何圖形界面的伺服器上,比如X Window系統(Gnome,KDE等等)。CentOS和Ubuntu都有用作伺服器的無圖形用戶界面的發行版。我們將在下文中指導這兩個系統上的作業系統安裝。
CenetOS伺服器
編輯CentOS全稱「社區企業作業系統(Community Enterprise Operating System),」它是基於Red Hat企業版Linux(RHEL)開發的。更多關於CentOS是什麼以及它的歷史的信息,可以在http://www.centos.org获取。
你需要從CentOS網站http://mirror.centos.org/centos/5/isos/下載一個ISO。對應32位系統和64位系統分別選擇i386或x86_64。然後你會看到一個鏡像列表,選擇其中一個鏡像,你就會看到可供下載的文件列表。可能你想選擇列表中的第一個ISO文件,那你就需要下載它,我們將用yum命令下載其他額外的軟件。
一旦你下載好了ISO文件,把它刻錄到CD或DVD上,然後開始安裝。如果你是要把系統安裝在虛擬機上(我們不推薦這麼做,但用這種方式能很好地測試Asterisk),你應該直接掛載這個ISO文件並安裝。
基本系統安裝
編輯系統一從光盤啟動,就選擇linux一行並按下回車。
此時會出現字符安裝界面。你會被詢問是否檢測該光盤,教程中假設你已經做過檢查了,因此可以跳過這一步。
CentOS歡迎你進入安裝,按回車繼續。
選擇語言和鍵盤。如果你在北美,你可以選擇默認。
如果你預先格式化了你的硬盤驅動器, 你將被詢問是否初始化驅動,這將擦去所有數據。選擇Yes。
安裝程序會問你是否想要刪除現在的分區方案並創建一個新的。選擇Remove all partitions on selected drivesand create default layout。如果有更好的選項,選擇它。在驅動窗口,檢驗是否選擇了正確的磁盤驅動。(按Tab鍵可以循環依次選擇屏幕上的各選項。)一旦選擇好了驅動窗口,你就可以滾動向上或向下(假設你有多個驅動)選擇你想安裝的驅動。按空格鍵切換選擇。核對選擇的驅動是否正確,按Tab鍵直至OK按鈕高亮,然後按回車。