在 OpenVZ 環境下安裝 Asterisk 於 Ubuntu 系統。
安裝相依性套件
apt-get install build-essential libncurses-dev libxml2-dev
下載 Asterisk & Dahdi 原始檔
下載位址:
cd /usr/src wget http://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/dahdi-linux-complete-current.tar.gz wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-1.6.2.20.tar.gz wget http://downloads.asterisk.org/pub/telephony/asterisk/releases/asterisk-addons-1.6.2.4.tar.gz
*解決 meetme 問題*
1. 在 HN 編譯安裝 Dahdi 套件
cd /usr/src wget http://downloads.asterisk.org/pub/telephony/dahdi-linux/dahdi-linux-current.tar.gz tar xzf dahdi-linux-current.tar.gz cd dahdi-linux-* make make install make config
編輯 /etc/dahdi/modules.conf,註解所有的裝置驅動。
啟動 dahdi 服務,並檢查 /dev/dahdi/pseudo 是否存在
service dahdi start ls -l /dev/dahdi
[root@openvz dahdi-linux-complete-2.5.0.2+2.5.0.2]# ls -l /dev/dahdi/
total 0
crw-rw---- 1 root root 196, 254 Nov 2 04:23 channel
crw-rw---- 1 root root 196, 0 Nov 2 04:23 ctl
crw-rw---- 1 root root 196, 255 Nov 2 04:23 pseudo
crw-rw---- 1 root root 196, 253 Nov 2 04:23 timer
2. 在 Container,不用編譯 dahdi,但要複製原始檔的 user.h 及 dahdi_config.h 到系統目錄 /usr/include/dahdi。
cd /usr/src tar xzf dahdi-linux-complete-current.tar.gz mkdir /usr/include/dahdi cd dahdi-linux-complete-2.5.0.2+2.5.0.2 cp linux/include/dahdi/user.h /usr/include/dahdi/ cp linux/include/dahdi/dahdi_config.h /usr/include/dahdi/
編譯 Asterisk
cd /usr/src tar xzf asterisk-1.6.2.20.tar.gz cd asterisk-1.6.2.20
[選用]若需要使用 iLBC codec 時,請執行以下的步驟,否則跳過此步驟。
參閱此篇。
選擇編譯模組項
./configure make menuselect
MeetMe支援(選用):
Applications > app_meemt (如果不能選擇,檢查上述的 meemt 問題)iLBC 支援(選用):
Codec Translators -> codec_ilbc其他語音檔:
Extras Sound Packages -> EXTRA-SOUNDS-EN-GSM最後按 x 儲存後離開。
開始編譯
make make install make samples
Asterisk 安裝完成。
繼續安裝 asterisk-addons
cd /usr/src tar xzf asterisk-addons-1.6.2.4.tar.gz cd asterisk-addons-1.6.2.4 ./configure make menuselect
[選用] 如果要編譯 mysql 的模組,必需先安裝以下套件。
套件安裝過程會要求設定 mysql 的管理者密碼。
apt-get install mysql-server mysql-client mysql-admin libmysqlclient15-dev
Applications
-> app_addon_sql_mysql ;連接 MySQL
-> app_saycountplCall Detail Recording
-> cdr_addon_mysql ;CDR 使用 MySQL
Channel Drivers
-> chan_mobile ;藍牙手機連接(optional)
-> chan_ooh323 ;H.323 protocol 支援(optional)Format Interpreters
-> format_mp3 ;MP3 檔案格式支援(optional)
Resource Modules
-> res_config_mysql ; Asterisk Realtime Mode
Save & Exit
繼續編譯
make make install make samples
安裝完成。
addgroup --system asterisk adduser --system --ingroup asterisk --home /var/lib/asterisk --no-create-home asterisk
編輯 /etc/init.d/asterisk
# 刪除註解 AST_USER="asterisk" AST_GROUP="asterisk"
設定相關目錄
chown -R asterisk:asterisk /var/run/asterisk chown -R asterisk:asterisk /etc/asterisk chown -R asterisk:asterisk /var/log/asterisk chown -R asterisk:asterisk /var/spool/asterisk chown -R asterisk:asterisk /var/lib/asterisk chown -R asterisk:asterisk /dev/dahdi adduser asterisk audio (增加 asterisk 到 group audio)
*解決 meetme 問題*
1. 編輯 vi /usr/sbin/safe_asterisk,註解這行
#TTY=9
2. 請先回到 OpenVZ Hardware Node,然後執行以下指令
vzctl set 102 --devnodes dahdi/pseudo:rw --save
注意:
- 102 是 container ID
- 這會使 container 建立裝置檔 /dev/dahdi/pseudo, /lib/udev/devices/dahdi/pseudo。
- 如果出現錯誤 Incorrect device name:
1. 檢查模組 dahdi 是否運行
2. 檢查目錄 /dec/dahdi/pseudo 是否存在。
3. 設定 container 裝置檔的權限
vzctl exec 102 chown -R asterisk /dev/dahdi/pseudo /lib/udev/devices/dahdi/pseudo vzctl exec 102 chgrp -R asterisk /dev/dahdi/pseudo /lib/udev/devices/dahdi/pseudo
回到 container,啟動 Asterisk 服務試試
/etc/init.d/asterisk start 或 service asterisk start