Asterisk命令MeetMe詳解
2010/02/02
MeetMe
概要
MeetMe 會(huì)議橋
描述
語法:MeetMe([confno][,[options][,pin]])
用途: 讓用戶進(jìn)入一個(gè)指定的MeetMe會(huì)議。如果省略了會(huì)議編號,系統(tǒng)會(huì)提示用戶選擇一個(gè)。(注意:MeetMe會(huì)議需要一個(gè)Zaptel時(shí)鐘才能工作,你可以不裝任何板卡,但是你需要安裝Zaptel)
參數(shù):options可以為空,也可以設(shè)置一個(gè)或者多個(gè)參數(shù),參數(shù)有如下一些:
'1' — 當(dāng)會(huì)議室的第一個(gè)成員進(jìn)入會(huì)議時(shí),不向用戶提示"you are currently the only person in
this conference您是當(dāng)前會(huì)議室唯一的成員" (Asterisk 1.2.11以上版本才支持)
'a' — 設(shè)為管理員
'A' — 設(shè)為標(biāo)記成員
'b' — 運(yùn)行在${MEETME_AGI_BACKGROUND}指定的AGI腳本
缺省: conf-background.agi (注意:需要會(huì)議室內(nèi)有ZAP通道才能運(yùn)行)
'c' — 加入會(huì)議時(shí)提示會(huì)議成員數(shù)量
'd' — 動(dòng)態(tài)加入會(huì)議
'D' — 動(dòng)態(tài)加入會(huì)議,提示要求輸入密碼
如果用戶不想給會(huì)議設(shè)密碼,可以直接按井
'e' — 選擇一個(gè)空會(huì)議。
'E' — 選擇一個(gè)沒密碼的空會(huì)議。
'F' — 在會(huì)議中透傳DTMF按鍵,所有成員都能收到DTMF。
'i' —提示有成員加入/離開會(huì)議with review— 需要chan_zap.so (Asterisk 1.2以上版本才支持)
'I' --提示有成員加入/離開會(huì)議 without review
'M' —當(dāng)會(huì)議室只有一個(gè)人的時(shí)候放等待音樂
'm' —旁聽狀態(tài)(只能聽,不能說)
'p' —允許用戶按井退出會(huì)議室
'P' — 無論用戶是否指定,總是提示用戶輸入會(huì)議密碼
'q' — 安靜模式 (有成員加入/離開會(huì)議不做任何提示)
'r' — 會(huì)議錄音 (錄音文件名${MEETME_RECORDINGFILE},格式 ${MEETME_RECORDINGFORMAT})。缺省文件名是:meetme-conf-rec-${CONFNO}-${UNIQUEID}
,缺省格式是wav。 — 這個(gè)參數(shù)同樣需要chan_zap.so。
's' —收到*鍵的時(shí)候播放菜單,普通成員是普通菜單,管理員是管理員菜單('send' to menu)
't' — 設(shè)為只說模式 (只說,不聽)
'T' — 設(shè)置說話人檢測 (在manager interface 和 meetme list可以看到)
'v' — 視頻模式 (目前還不支持)
'w' — 等待標(biāo)記成員進(jìn)入會(huì)議。
在標(biāo)記成員進(jìn)入會(huì)議之前,所有成員只能聽音樂。
• 'X' — 允許用戶輸入${MEETME_EXIT_CONTEXT}里面的一個(gè)有效的單個(gè)數(shù)字來退出會(huì)議。如果${MEETME_EXIT_CONTEXT}沒有定義,則從當(dāng)前的內(nèi)容里找有效數(shù)字。allow
user to exit the conference by entering a valid single digit extension
of the context specified in or the current context if that variable
is not defined. (此參數(shù)不支持Asterisk v1.2.0版本)
'x' — 當(dāng)最后一個(gè)標(biāo)記用戶退出會(huì)議室的時(shí)候,關(guān)閉會(huì)議。
參數(shù)詳解
參數(shù) 's'
's' 和 'p' 參數(shù)不能跟 'X' 參數(shù)共同使用。
普通成員: 按鍵*將聽到語音菜單"Please press 1 to mute or unmute yourself"; Asterisk
v1.2 版本現(xiàn)在支持對單獨(dú)會(huì)議的單獨(dú)成員進(jìn)行音量調(diào)整。
管理員(在加入會(huì)議的時(shí)候使用了 'a' 參數(shù)): 按鍵*將聽到語音菜單"Press 1 to mute/unmute yourself,
2 to lock/unlock this conference"
參數(shù) 'q'
最好在 Asterisk v1.2以上版本用,早期版本的SIP通道會(huì)有延遲。
參數(shù) 'r'
在開始MeetMe()錄音之前,要指定Set ${MEETME_RECORDINGFILE}的值。
否則,錄音文件將存放在/var/lib/asterisk/sounds目錄下,該目錄是存放系統(tǒng)提示音的,不適合存放錄音文件。
例如:
exten => s,1,SetVar(MEETME_RECORDINGFILE=/var/conf_recording-${EPOCH}-${USER})
exten => s,2,MeetMe(,rD) ;開設(shè)一個(gè)新會(huì)議,對會(huì)議錄音,
例子
在meetme.conf 中設(shè)定一個(gè)會(huì)議室號為101,密碼為123456的會(huì)議。
exten => 500,1,MeetMe(101||123456)
授權(quán)的會(huì)議
exten => 18,1,Answer
exten => 18,2,Wait(1)
exten => 18,3,Authenticate(5678)
exten => 18,4,MeetMe(18|p)
exten => 18,5,Playback(vm-goodbye)
exten => 18,6,Hangup
動(dòng)態(tài)會(huì)議室,用戶需要按鍵輸入要?jiǎng)?chuàng)建的會(huì)議室號
exten => 9999,1,Wait(1)
exten => 9999,2,MeetMe(|Md)
注意:如果你加入?yún)?shù)'e', 按*將選擇#會(huì)議室
如果你需要為會(huì)議室設(shè)定一個(gè)密碼,,請將 'd' 參數(shù)改為 'D' 。
動(dòng)態(tài)會(huì)議室123設(shè)為安靜模式。如果用戶foo 撥打分機(jī)號10,他將成為一個(gè)標(biāo)記用戶(’A’),foo離開會(huì)議后,會(huì)議室將被關(guān)閉,其他的撥打11的用戶也將被迫離開會(huì)議室。
exten => 10,1,MeetMe(123|Aqd)
exten => 11,1,MeetMe(123|xqd)
OEJ發(fā)表的回顧 (May 23, 2004)
你發(fā)現(xiàn)這個(gè)簡單得不能再簡單的(not-so-simple-anymore)簡單MeetMe會(huì)議橋了嗎?這可是Asterisk的一個(gè)殺手級應(yīng)用哦。它帶來豐富的功能應(yīng)用:
多種渠道,包括VoIP 和 PSTN,都能參加的多方會(huì)議
宣講模式:一個(gè)說話人,眾多的旁聽者。
管理功能:踢用戶,讓會(huì)議靜音,鎖定會(huì)議
等待其他成員的時(shí)候可以收聽等待音樂
可以預(yù)設(shè)會(huì)議
也可以動(dòng)態(tài)創(chuàng)建會(huì)議(第一個(gè)成員將被告知會(huì)議號碼)
更多豐富命令包括 :
MeetMe – 加入會(huì)議 (有時(shí)候也用于創(chuàng)建新會(huì)議)
MeetMeAdmin – 踢人、鎖定會(huì)議、讓會(huì)議靜音
MeetMeCount – 統(tǒng)計(jì)會(huì)議室內(nèi)的成員名單
在CLI 下面也可以管理MeetMe:
Meetme List all conferences
MeetMe kick 踢一個(gè)人
MeetMe kick 踢所有人
MeetMe list 列出會(huì)議室內(nèi)的所有成員
MeetMe lock 鎖定會(huì)議室,不再加人
MeetMe unlock 解鎖會(huì)議室
MeetMe mute 禁止某個(gè)人發(fā)言
MeetMe unmute 允許某個(gè)人發(fā)言
OEJ附加說明
會(huì)議橋默認(rèn)語音編碼格式是ulaw。 如果采用其他編碼,將額外占用CPU資源。
MEETMESECS參數(shù)包含了用戶參加會(huì)議中的時(shí)長(以秒為單位)。
改動(dòng)meetme.conf無需重新加載,系統(tǒng)會(huì)自動(dòng)讀取
在dial plan中,您可以通過meetmecount()和參數(shù)來限制參加會(huì)議的人數(shù)
MeetMe依賴Zaptel時(shí)鐘,您需要安裝Zaptel驅(qū)動(dòng),最好有一片Asterisk兼容的語音卡。
潛規(guī)則
MeetMe應(yīng)用需要一個(gè)時(shí)鐘才能工作。 有幾種方法可以獲得時(shí)鐘,其中Zaptel卡提供的工作時(shí)鐘是一個(gè)不錯(cuò)的選擇,如果你沒有Zaptel卡,也可以使用ztdummy
時(shí)鐘。
動(dòng)態(tài)會(huì)議 的工作方式可能跟你想得不太一樣。很明顯,動(dòng)態(tài)會(huì)議的意思就是創(chuàng)建一個(gè)并未存在的會(huì)議。所以當(dāng)用戶A創(chuàng)建了一個(gè)會(huì)議號為200的會(huì)議之后,如果用戶也來創(chuàng)建一個(gè)會(huì)議號為200的會(huì)議,那么用戶B將被直接加入用戶A的會(huì)議,而不會(huì)對用戶B提示說已經(jīng)會(huì)議號200已經(jīng)被人用了。另外,如果用戶A創(chuàng)建的這個(gè)#200會(huì)議有密碼,那么用戶B將聽到密碼無效的聲音,然后系統(tǒng)會(huì)提示用戶B重新輸入一個(gè)要?jiǎng)?chuàng)建的會(huì)議號碼。要想解決這個(gè)問題,我們能做的就是通過參數(shù)
'e' 來讓系統(tǒng)自動(dòng)分配會(huì)議號碼。
性能方面的考慮
在ISDN PRI環(huán)境下開超過10個(gè)人的MeetMe會(huì)議
我曾經(jīng)發(fā)現(xiàn)在ISDN PRI環(huán)境下超過10個(gè)人的會(huì)議回發(fā)生嘯叫。人們認(rèn)為電信運(yùn)營商已經(jīng)對ISDN-PRI這樣的純數(shù)字化環(huán)境做過回聲消除了,所以不需要再設(shè)置回聲消除。然而事實(shí)并非如此。我在配置文件
/etc/asterisk/zapata.conf下面增加了下列的參數(shù)項(xiàng),從而解決了這個(gè)問題:
echocancel=yes
echocancelwhenbridged=yes
echotraining=yes
架構(gòu)和局限
在Asterisk 1.2版本中,同時(shí)開很多個(gè)會(huì)議的時(shí)候可能會(huì)有些局限。目前大部分版本已經(jīng)升到1.4及以上,也就不存在這些問題了,不再鏊述。
關(guān)于參數(shù)'b' (AGI_BACKGROUND)
網(wǎng)友疑問 :
我看了論壇上一些老的帖子,但是還是有個(gè)疑問,是關(guān)于AGI_BACKGROUND的。如果我的機(jī)器上安裝了Asterisk兼容板卡但是會(huì)議里沒有加入Zap通道,只有SIP通道,那么SIP通道上的MEETME_AGI_BACKGROUND腳本能正常工作嗎?
回答 :
不能正常工作。下面我們分析一下工作原理:
合并輸入的語音包,輸出合并后的語音包,這些工作是在Zaptel驅(qū)動(dòng)里面做的。對于真實(shí)的Zap通道,這個(gè)工作是在驅(qū)動(dòng)層就請全部完成的。而對于非Zap通道,系統(tǒng)會(huì)創(chuàng)建一個(gè)Zap虛擬通道,然后在非Zap通道和Zap虛擬通道之間雙向拷貝語音數(shù)據(jù)。
看一下這部分源代碼(在conf_run()中),我們會(huì)發(fā)現(xiàn),conf_run() 函數(shù)要么執(zhí)行AGI腳本,要么執(zhí)行虛擬通道拷貝循環(huán),不能同時(shí)執(zhí)行兩個(gè)。所以當(dāng)你使用AGI腳本的時(shí)候,在非Zap
通道和Zap虛擬通道之間就沒有任何連接了。
擁有一塊Asterisk卡或者dummy時(shí)鐘驅(qū)動(dòng) (比如: ztdummy 或者 zaprtc) 都能使用MeetMe功能,但是這并不意味著你可以在參加會(huì)議的SIP通道上使用AGI:他們沒有執(zhí)行任何AGI的能力。你可以試下看,但是最終的結(jié)果一定是什么聲音也得不到。
還要注意的是,使用AGI將會(huì)使其他的一些內(nèi)置功能,比如說靜音、踢人和音樂等待等功能不能使用。
AGI_BACKGROUND Pros/Cons
使用AGI將會(huì)使其他的一些內(nèi)置功能,比如說不用通過命令行實(shí)現(xiàn)靜音、踢人和音樂等待等功能。
參數(shù) 'p' (按#退出) 也不能用。錄音功能也不能用。
如果你需要把會(huì)議中的某個(gè)成員踢出去,首先需要停止該成員的AGI_BACKGROUND 任務(wù)。
一旦AGI_BACKGROUND腳本停止,該成員就自動(dòng)退出會(huì)議室了。
所有的DTMF按鍵事件都被送到AGI_BACKGROUND 進(jìn)程/腳本。所以你可以讓你的.agi腳本不停地循環(huán),捕獲按鍵音,來決定怎樣處理一個(gè)特定的按鍵。
AGI_BACKGROUND 也開放了很多開發(fā)的編程機(jī)會(huì)。你可以使用進(jìn)程間通訊(sockets, signals等等)來遠(yuǎn)程控制會(huì)議室(即:
基于外部時(shí)間或用戶輸入來給會(huì)議室放音)。
從普通通話發(fā)起多方通話(邀請用戶參加會(huì)議)
下面我講一下怎樣從一個(gè)普通通話(兩方通話)發(fā)起多方通話。主要是通過MeetMe和ChannelRedirect來實(shí)現(xiàn)。
疑問: 在 Asterisk 1.4 版本中,我們是否需要用'ManagerRedirect'來替換 'ChannelRedirect'?
下面是dialplan 例子:
[default]
exten => _XXX,1,Set(DYNAMIC_FEATURES=nway-start)
exten => _XXX,n,Dial(SIP/${EXTEN})
[dynamic-nway]
exten => _XXX,1,Answer
exten => _XXX,n,Set(CONFNO=${EXTEN})
exten => _XXX,n,Set(MEETME_EXIT_CONTEXT=dynamic-nway-invite)
exten => _XXX,n,Set(DYNAMIC_FEATURES=)
exten => _XXX,n,MeetMe(${CONFNO},pdMX)
exten => _XXX,n,Hangup
[dynamic-nway-invite]
exten => 0,1,Read(DEST,dial,,i)
exten => 0,n,Set(DYNAMIC_FEATURES=nway-inv#nway-noinv)
exten => 0,n,Dial(Local/${DEST}@dynamic-nway-dest,,g)
exten => 0,n,Set(DYNAMIC_FEATURES=)
exten => 0,n,Goto(dynamic-nway,${CONFNO},1)
exten => i,1,Goto(dynamic-nway,${CONFNO},1)
[dynamic-nway-dest]
exten => _XXX,1,Dial(SIP/${EXTEN})
[macro-nway-start]
exten => s,1,Set(CONFNO=${FindFreeConf()})
exten => s,n,ChannelRedirect(${BRIDGEPEER},dynamic-nway,${CONFNO},1)
exten => s,n,Read(DEST,dial,,i)
exten => s,n,Set(DYNAMIC_FEATURES=nway-inv#nway-noinv)
exten => s,n,Dial(Local/${DEST}@dynamic-nway-dest,,g)
exten => s,n,Set(DYNAMIC_FEATURES=)
exten => s,n,Goto(dynamic-nway,${CONFNO},1)
[macro-nway-ok]
exten => s,1,ChannelRedirect(${BRIDGEPEER},dynamic-nway,${CONFNO},1)
[macro-nway-notok]
exten => s,1,SoftHangup(${BRIDGEPEER})
注意:你需要用 FindFreeConf() 函數(shù) (或者其他方式) 來獲得空閑的會(huì)議室號碼。
此外,還需要修改 features.conf,增加下面的內(nèi)容:
[applicationmap]
nway-start => *0,caller,Macro,nway-start
nway-inv => **,caller,Macro,nway-ok
nway-noinv => *#,caller,Macro,nway-notok
(譯注:事實(shí)上,F(xiàn)indFreeConf()這個(gè)函數(shù)好像需要Trunk版本支持,需要修改一下這個(gè)例子的部分內(nèi)容才能運(yùn)行。另外,實(shí)際測試中我們也發(fā)現(xiàn),兩個(gè)按鍵*0之間的間隔時(shí)間不能太長,最好是連續(xù)按鍵。)
工作原理:
普通通話情況下:
當(dāng)你和別人通話的時(shí)候,按*0 (執(zhí)行宏 nway-start)。 被叫馬上被傳遞到一個(gè)空閑的會(huì)議室,而你將聽到撥號音,等待你輸入你要邀請的電話號碼。當(dāng)被邀請方接通后,你在和這個(gè)第三方通話的過程中,可以按
** (在features.conf可以定義)加入會(huì)議,按 *# 掛掉他然后返回會(huì)議。
會(huì)議室情況下:
在會(huì)議室里面,任何用戶可以按0邀請其他用戶加入會(huì)議,其他的步驟同上。
合并會(huì)議
這些可以使用使用 Asterisk local channels 和 Asterisk manager API來實(shí)現(xiàn)(一般使用AGI 或者Call
Files) 。
下面是一個(gè)合并會(huì)議123和會(huì)議124的OriginateAction例子:
在dialplan (context = default):
exten => 7799,1,Meetme(123|qd)
exten => 7798,1,Meetme(124|qd)
在Manager API:
Action: Originate
ActionID: 12345678
Channel: local/7798
Context: default
Exten: 7799
Priority: 1
與某個(gè)成員悄悄話
在Meetme中,還有一個(gè)類似ChanSpy的悄悄話功能(密談)。會(huì)議成員可以與其他成員通過'whisper'功能來密談。
我還增加了一個(gè) 'z' 標(biāo)志:
'z' — 所有的DTMF按鍵事件將被送到manager
用戶可以通過對MeetMe系統(tǒng)中的按鍵進(jìn)行偵測,然后在決定在manager命令中如何處理。
除了標(biāo)準(zhǔn)MeetMe之外的其他選擇
MeetMe2
MeetMe2是在MeetMe基礎(chǔ)上增加了Web控制界面的一個(gè)變體。
"目的是控制會(huì)議室里面的聲音和成員。這個(gè)功能可以為你提供一個(gè)通過網(wǎng)絡(luò)來控制會(huì)議和直觀查看會(huì)議的方法。app_meetme已經(jīng)做了大量改動(dòng),將一些會(huì)議信息寫入DB,并檢查會(huì)議屬性是否已經(jīng)改變。"
Q: 我看到會(huì)議中的成員,但是我不能把他們踢出去,也不能將他們的模式從說變成可聽可說。沒有顯示任何錯(cuò)誤。
A: 在php中打開register_globals。
你也可以在php文件的頂部加入"extract($_GET);"
(也有網(wǎng)友建議使用MeetMe-Web-Control來替代MeetMe2)
app_conference
另外一個(gè)變種 app_conference,針對大容量的會(huì)議。
http://sourceforge.net/projects/appconference/
有些人認(rèn)為它比MeetMe更為強(qiáng)大,但是目前還沒有人提供詳細(xì)的比較測試數(shù)據(jù)。
遠(yuǎn)程會(huì)議主機(jī)
通過第三方會(huì)議提供商: http://www.junctionnetworks.com,IAX和SIP通道可以加入遠(yuǎn)程會(huì)議。在dialplan里面可以這樣寫:
exten => 7000,1,Dial(IAX2/conference@iax.jnctn.net)
exten => 7000,1,Dial(SIP/conference@sip.jnctn.net)
通過撥打7000,您就可以參加他們的會(huì)議。
他們提供很多種參加會(huì)議的方法,可以通過Web網(wǎng)頁來訂制,方便了會(huì)議管理和統(tǒng)計(jì)。
CTI論壇編輯
相關(guān)閱讀:
感谢您访问我们的网站,您可能还对以下资源感兴趣:
亚洲综合伊人,成人欧美一区二区三区视频不卡,欧美日韩在线高清,日韩国产午夜一区二区三区
a级**毛片,成年女人视频播放免费观看,亚洲第一区视频,日韩在线视频中文字幕
日本不卡中文字幕一区二区,精品国产一二三区,国产高清天干天天视频,天天干天天天天
亚洲高清视频在线播放,一级淫片在线观看,三级aa视频在线观看,欧美天天爽
黄色永久免费,www.sese123,91系列在线观看,美国毛片一级视频在线aa
mmmmxxxx国产在线观看,亚洲合集综合久久性色,在线国产观看,亚洲精品一级无码中文字幕
玖玖精品,国产精品1区2区3区在线播放,天堂网视频在线,欧美精品在线视频
欧美色人阁,aaaa大片,神马影院午夜剧场,91福利一区二区三区
亚洲一区二区三区高清不卡,美国毛片aa,啪啪视,天天添天天操
综合激情网站,最新中文字幕在线播放,电影伦敦战场,亚洲精品在线不卡
www淫,亚洲欧美在线视频免费,www.亚洲一区二区三区,98色花堂国产精品首页