Was this page helpful?

AppKonference

    軟體介紹

    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,GotoIf($["foo${conference}"="foo"]?getconfno)
    exten => s,n,Set(i=0)
    exten => s,n,While($[${i} < ${LEN(${FLAGS})}])
    exten => s,n,ExecIF($["${FLAGS:${i}:1}" = "i"]|Set|monitor=1)
    exten => s,n,Set(i=${MATH(${i}+1,int)})
    exten => s,n,EndWhile()
    exten => s,n,GotoIF($["${monitor}" = "1"]?recorder,1)
    exten => s,n(enterconf),konference(${conference},${FLAGS})
    
    exten => recorder,1,answer()
    exten => recorder,n,Set(recordingfile=${conference}-${STRFTIME(${EPOCH},,%Y%m%d-%H%M%S)})
    exten => recorder,n,playback(conference)
    exten => recorder,n,saydigits(${conference})
    exten => recorder,n,playback(is-now-being-recorded)
    exten => recorder,n,Monitor(wav,${recordingfile},m)
    exten => recorder,n,goto(enterconf,1)
    
    exten => enterconf,1,answer();
    exten => enterconf,2,konference(${conference},q)
    

    重新載入設定

    # asterisk -rx "dialplan reload"

    // 操作流程

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

    Notes:

    * 啟動會議室功能的簡碼 9991,可以修改成其他號碼。
    * 會議室編號不須事先做設定,第一位成員進入會議室後即完成會議室的開設。
    * 同個會議室的所有成員必須輸入相同的會議室編號。
    * 啟動/關閉會議錄音,可以修改 FLAGS 變數,將 i 刪除表示關閉錄音功能。
    * 錄音檔儲存位置,在 /var/spool/asterisk/monitor,檔名為 conferenceNO.-Timestamp。

    安裝 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 [email protected];
    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

    Was this page helpful?
    標籤 (Edit tags)
    • No tags

    文件 1

    文件大小日期附件上傳者 
     asterikast.png
    Asterikast
    6.59 KB17:05, 18 Sep 2010alang動作
    查看第6個(總6個)評論: 查看所有
    这个东西怎么打开阿
    發佈時間 18:05, 8 Jan 2011 ()
    在centos下怎么配置那?
    發佈時間 18:10, 8 Jan 2011 ()
    hi, alang,非常感謝你提供這份appkonference 的詳細的配置檔案。最我依照你的檔案,用appkonference1.7在asterisk1.8.4 作配置。配置完成后發現用SIP客戶端撥打9991老打不通,調試過后發現Elastix UI > PBX > PBX Configuration > Unembedded freePBX > Tools > Custom Destination中的“Custom Destination = konference,s,1”與extensions_custom.conf中的“[konference-new]”有些不一致,“konference,s,1”識別不出撥號方案中的“[konference-new]”;
    當把“[konference-new]”修改成“[konference]”后,就能撥通了。
    發佈時間 15:29, 22 Jun 2011 ()
    不過在輸入會議室編號時,會自動掛斷,不知為什么?請問輸入完會議室編號編號時,是要按#還是* 的呢,或者是要其他的操作?
    發佈時間 15:37, 22 Jun 2011 ()
    謝謝指正,文章已經修正了。
    可能在 1.8 需要作一些調整。
    歡迎你將問題張貼到我們的郵件論壇 [email protected]
    發佈時間 16:37, 22 Jun 2011 ()
    fputs($fp,"Action: Command\r\n");
    237 fputs($fp,"Command: konference mutechannel $channel\r\n\r\n");
    238 fputs($fp,"action: logoff\r\n");
    239 fputs($fp,"\r\n");
    240 sleep(2);
    241 fclose($fp);

    每个command我都需要在后面加上sleep(2) 和 fclose 才可以执行成功,否则不成功且报错 ERROR[21266] utils.c: fwrite() returned error: Broken pipe
    發佈時間 13:00, 13 Feb 2012 ()
    查看第6個(總6個)評論: 查看所有
    您必須 登入 才能發佈評論。
    Powered by MindTouch Core