AppKonference

    版本為 10:23, 20 Feb 2025

    到這個版本。

    返回到 版本存檔.

    查閱目前版本

    軟體介紹

    Asterisk 電話會議模組,功用與 Meetme 相同

    特色:

    • 不需 Zap Channel 的 timing source。
    • 支援靜音偵測(VAD),節省網路頻寬。
       

    官方下載:http://sourceforge.net/projects/appkonference/files/
    系統環境:Elastix 1.6-12 (Asterisk 1.4.26.1 + FreePBX 2.5.22)

    Compiling app_konference

    cd /usr/src
    wget http://downloads.sourceforge.net/project/appkonference/appkonference/1.5/appkonference-1.5.tar.gz?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fappkonference%2Ffiles%2F&ts=1284727946&use_mirror=nchc
    tar -xzf appkonference-1.5.tar.gz 
    cd appkonference
    cd konference/
    make
    make install
    asterisk -r
    CLI> module load app_konference.so
    CLI> konference  version
    app_konference release 1.5
    

    設定 Asterisk

    vi /etc/asterisk/manager_custom.conf
    最下方加入這幾行
    
    [asterikast]
    secret = asterikast
    deny=0.0.0.0/0.0.0.0
    permit=127.0.0.1
    read = system,call,log,verbose,command,agent,user,config
    write = system,call,log,verbose,command,agent,user,config
    

    Elastix UI > PBX > PBX Configuration > Unembedded freePBX > Tools > Custom Destination

    Custom Destination = konference,s,1
    Description = konference-dynamic

    Elastix UI > PBX > PBX Configuration > Misc Application

    Description = konference
    Feature Code = 9991
    Feature Status = Enabled
    Destination = Custom Destination:konference-dynamic

    Elastix UI > PBX > Tools > File Editor > File: extensions_custom.conf
    最底下加上這幾行

     [konference]
    exten => s,1,answer()
    exten => s,n,Set(FLAGS=RiaM)
    exten => s,n,Set(uid1=${CUT(UNIQUEID,.,1)})
    exten => s,n,Set(uid2=${CUT(UNIQUEID,.,2)})
    exten => s,n,Set(uid=${uid1}${uid2})
    exten => s,n,noop(${FLAGS:0:1})
    exten => s,n,noop(${FLAGS:1:1})
    exten => s,n,noop(${FLAGS:2:1})
    exten => s,n,noop(${FLAGS:3:1})
    exten => s,n,wait(2)
    exten => s,n(getconfno),read(conference,enter-conf-call-number)
    ;*******************We don't care what they enter we will just create it on the fly*******************
    exten => s,n,Set(i=0)
    exten => s,n,While($[${i} < ${LEN(${FLAGS})}])
    exten => s,n,ExecIF($["${FLAGS:${i}:1}" = "i"]|Set|announcenorev=1)
    exten => s,n,Set(i=${MATH(${i}+1,int)})
    exten => s,n,EndWhile()
    exten => s,n,GotoIF($["${announcenorev}" = "1"]?recordannouncenorev)
    exten => s,n(enterconf),konference(${conference},${FLAGS})
    exten => s,n,goto(getconfno)
    
    exten => s,n(recordannouncenorev),playback(pls-rcrd-name-at-tone)
    exten => s,n,System(mkdir -p /tmp/${conference})
    exten => s,n,Record(/tmp/${conference}/${uid}:wav)
    exten => s,n,goto(enterconf)
    
    exten => recorder,1,answer()
    exten => recorder,2,playback(conference)
    exten => recorder,3,saydigits(${conference})
    exten => recorder,4,playback(is-now-being-recorded)
    exten => recorder,5,Record(${RECORDINGFILE}:wav||43200)
    
    exten => enterconf,1,answer();
    exten => enterconf,2,konference(${conference},q)

    重新載入設定

    # asterisk -rx "dialplan reload"

    // 操作流程

    1. 主持人及參加人員使用任何一支分機撥 9991。
    2. 系統提示:請輸入會議室編號,手機輸入任一組編號,例如 111555。
    3. 系統提示:請於 Beep 聲後輸入錄音檔編號,輸入結束請按#號。
    4. 進入會議室並開始會議通話。

    Notes:

    * 啟動會議室功能的簡碼 9991,可以修改成其他號碼。
    * 會議室編號不須事先做設定,第一位成員進入會議室後及完成會議室的開設。
    * 同個會議室的所有成員必須輸入相同的會議室編號。
    * 啟動/關閉會議錄音,可以修改 FLAGS 變數,將 i 刪除表示關閉錄音功能。
    * 錄音檔儲存位置,可以修改這兩行:
        exten => s,n,System(mkdir -p /tmp/${conference})
        exten => s,n,Record(/tmp/${conference}/${uid}:wav)
        預設路徑:/tmp/會議室編號/uid亂數.wav

    安裝 Asterikast

    // 安裝 Perl 模組

    perl -MCPAN -e shell
    capn> install Math::Round
    capn> install File::Touch 
    cpan> reload
    cpan> quit

    // Create DB and importing the data

    mysql -u root -p
    mysql> CREATE DATABASE conference;
    mysql> GRANT ALL PRIVILEGES ON conference.* TO asteriskuser@localhost;
    mysql> exit
    cd /usr/src/appkonference/asterikast/
    cd sql/
    mysql -u root -p conference < asterikastConferenceManager.db 

    修正 Table 的錯誤

    mysql -u root -p conference
    mysql> ALTER TABLE conference ADD uniqueid VARCHAR(32); 

    // 網頁檔案

    cd /usr/src/appkonference/asterikast/
    cp -r www/ /var/www/html/konference
    chown -R asterisk:asterisk /var/www/html/konference/
    cp listener.pl /usr/local/bin/
    dos2unix /usr/local/bin/listener.pl
    vi /usr/local/bin/listener.pl
    my $user = "asterikast";
    my $secret = "asterikast";
    my $mysql_password = "" ;密碼可以從檔案 /etc/amportal.conf 查到
    
    cd /var/www/html/konference/
    vi config.php.inc
    $db_engine="mysql";
    $mysql_username="asteriskuser";
    $mysql_password="password" ;密碼可以從檔案 /etc/amportal.conf 查到
    $mysql_db="conference";

    // 複製音效檔案

    cd /usr/src/appkonference
    cd asterikast/audio/
    cp join.wav leave.wav /var/lib/asterisk/sounds
    cd /var/lib/asterisk/sounds
    chown asterisk:asterisk join.wav leave.wav 

    // 啟動監聽器

    # listener.pl
     Application is not running, now starting
    # ps -ef | grep listener.pl
    root     23243     1  0 10:36 pts/2    00:00:00 /usr/bin/perl /usr/local/bin/listener.pl 
    

    // 關閉監聽器

    # killall listener.pl
    # rm /var/run/listener.pid 
    

    Asterikast 網頁預覽

    asterikast.png

    Powered by MindTouch Core