Install Asterisk on OpenVZ

    在 OpenVZ 環境下安裝 Asterisk 於 Ubuntu 系統。

    重點心得:

    • 啟動服務時,如果有裝 FreePBX,必須先單獨啟動 Asterisk 服務,再執行 amportal start,否則會產生兩個 asterisk 程序。
    • 關閉服務時,可執行 amportal stop 即可。

    系統環境

    • openvz kernel:2.6.18-274.3.1.el5.028stab094.3, HN: CentOS 5
    • Container Linux OS:Ubuntu 11
    • Asterisk 1.6.2.20
    • Dahdi 2.5.0.2

    安裝開始

    安裝相依性套件

    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]在 HN 編譯安裝 Dahdi 套件

    yum install ovzkernel-devel
    cd /usr/src
    wget http://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/dahdi-linux-complete-current.tar.gz
    tar xzf dahdi-linux-complete-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,但要複製 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/
    
    在 Container 編譯 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_saycountpl

    Call 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 
    

    安裝完成。

    設定 Asterisk 的權限
    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"
    

    Asterisk 1.8.x 注意

    編輯 /etc/default/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
    

    注意:

    - 如果要安裝 FreePBX 時,才需要修改這個,否則會使 amportal start 無法正常啟動 asterisk。

    - 一旦修改了這,當 Asterisk 啟動後,asterisk 錯誤訊息會出現在 console 的前景。

    2. [HN]請先回到 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. [HN]設定 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
    

    注意:

    - 如果沒有安裝 FreePBX,必須手動修改 asterisk 服務啟動檔,加上自動變更目錄 /dev/dahdi 的權限為 asterisk,否則會使 meetme 無法正常運作。

    - 這個目錄 /dev/dahdi 會在 HN 重啟系統後,恢復成 root 權限。

    啟動 Asterisk 服務試試

    /etc/init.d/asterisk start
    或
    service asterisk startall Asterisk 1.4/1.6/1.8 on Debian#Install Asterisk 1.4/1.6/1.8 on Debian#

    FAQ

    Q:為何啟動 asterisk 及 amportal 時,系統訊息會出現在前景

    A:這是因為修改了 safe_asterisk 的關係。

    標籤 (Edit tags)
    • No tags
    您必須 登入 才能發佈評論。
    Powered by MindTouch Core