官方下載: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"
// 操作流程
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
//