1、電話(huà)會(huì )議稱(chēng)之為Conference call。簡(jiǎn)單來(lái)說(shuō),一般的多方通話(huà)都可以稱(chēng)之為電話(huà)會(huì )議,而一般的2方通話(huà)我們是一般的呼叫。如果參與人數大于2人以上,我們稱(chēng)之為電話(huà)會(huì )議。一般的電話(huà)會(huì )議可能至少是3人以上或者更多人數。電話(huà)會(huì )議的好處就是可以直接創(chuàng )建一個(gè)虛擬會(huì )議室,相關(guān)人員可以快速便捷地對某一個(gè)事件進(jìn)行專(zhuān)門(mén)的討論,會(huì )議結束則自行解散電話(huà)會(huì )議。早期的電話(huà)會(huì )議只能通過(guò)PSTN或者SIP來(lái)發(fā)起,功能比較簡(jiǎn)單易用。現在很多的電話(huà)會(huì )議功能引入了視頻會(huì )議和其他的app介入。本講座中我們僅涉及基于語(yǔ)音的電話(huà)會(huì )議。

2、電話(huà)會(huì )議可以已經(jīng)使用在很多場(chǎng)景中。我們常見(jiàn)的就是在IPPBX創(chuàng )建一個(gè)會(huì )議室,邀請相關(guān)人員進(jìn)入會(huì )議室,會(huì )議室人員對某個(gè)特定的話(huà)題進(jìn)行討論發(fā)言。或者,會(huì )議人員呼叫某個(gè)電話(huà)號碼,然后根據IVR引導,進(jìn)入電話(huà)會(huì )議系統。電話(huà)會(huì )議可以使用的場(chǎng)景包括:
- 公司業(yè)務(wù)人員,技術(shù)人員和客戶(hù)的溝通培訓
- 公司,教育機構和客戶(hù)溝通
- 企業(yè)內部人員和其他部門(mén)人員通過(guò)電話(huà)系統的溝通
3、啟用電話(huà)會(huì )議相對比較簡(jiǎn)單,可以方便地支持普通的PSTN線(xiàn)路和手機等設備,設置也相對比較簡(jiǎn)單靈活,而且穩定性相對比較好,一般它不會(huì )收到網(wǎng)絡(luò )環(huán)境和終端的影響。設置電話(huà)會(huì )議包括以下幾個(gè)要素:
- 創(chuàng )建電話(huà)會(huì )議室
- 管理員邀請會(huì )議人員
- 管理員可以踢出會(huì )議人員,可以禁言,可以設置會(huì )議密碼
- 會(huì )議人員可以通過(guò)電話(huà)邀請電話(huà)呼入會(huì )議室的方式加入到電話(huà)會(huì )議
- 會(huì )議室可以對進(jìn)入會(huì )議室的人員播放語(yǔ)音提示等
- 現在讓我們看看如何在freepbx 環(huán)境下創(chuàng )建電話(huà)會(huì )議以及電話(huà)會(huì )議的參數設置。

- Conference Number
- 創(chuàng )建一個(gè)會(huì )議室號碼,會(huì )議代表可以撥打此號碼進(jìn)入電話(huà)會(huì )議
- Conference Name
- 會(huì )議名稱(chēng),用來(lái)區別于其他的會(huì )議室名稱(chēng)。
- User PIN 要求電話(huà)會(huì )議代表進(jìn)入會(huì )議室時(shí)輸入密碼驗證。這是一個(gè)可選設置。
- Admin PIN 會(huì )議管理員密碼。此選項是可選的,如果使用了 'leader wait' ,則需要管理員輸入密碼驗證管理員身份。
Join Message 當會(huì )議代表進(jìn)入會(huì )議室前,對代表播放的語(yǔ)音提示。如果加入其他的錄音文件,請使用 "System Recordings" 菜單中的選項。
Leader Wait 等待時(shí)間,直到會(huì )議主持人或者管理員進(jìn)入到會(huì )議室。
Talker Optimization
開(kāi)啟會(huì )議發(fā)言人優(yōu)化設置。當開(kāi)啟此設置以后,Asterisk將把不發(fā)言的代表設置為靜音狀態(tài),通過(guò)這樣的優(yōu)化方式,沒(méi)有語(yǔ)音解碼處理,并且收到的語(yǔ)音不會(huì )被處理,這樣節省了數據傳輸帶寬,并且減少了背景噪音。
Talker Detection 設置發(fā)言人檢測的話(huà),asterisk將通過(guò)AMI 發(fā)送一個(gè)事件,來(lái)確認此通道是否正在進(jìn)行語(yǔ)音通話(huà)。發(fā)言人狀態(tài)可以通過(guò)CLI 命令下的meetme 命令來(lái)查看。
Quiet Mode
退出模式 (不播放進(jìn)入/離開(kāi)語(yǔ)音提示)
User Count
播報會(huì )議室總人數
User Join/Leave
播報用戶(hù)加入或者離開(kāi)狀態(tài)。如果開(kāi)啟此選項,所有會(huì )議代表在進(jìn)入會(huì )議室之前都將需要報告用戶(hù)名稱(chēng),并且系統會(huì )播報他們的名稱(chēng)。
Music on Hold
當會(huì )議室只有一個(gè)用戶(hù)時(shí),開(kāi)啟音樂(lè )等待功能。
Music on Hold Class
對進(jìn)入會(huì )議的代表播放語(yǔ)音,等待會(huì )議開(kāi)始。如果需要選擇不同的音樂(lè )等待時(shí),選擇 "inherit"。
Allow Menu
當系統收到“*”時(shí),當前用戶(hù)菜單狀態(tài)。
Record Conference
對電話(huà)會(huì )議進(jìn)行錄音
Maximum Participants
最多參加會(huì )議人數。
Mute on Join
進(jìn)入會(huì )議室時(shí)對每個(gè)用戶(hù)靜音。請注意,如果沒(méi)有設置 'Leader Wait' 到yes 狀態(tài),用戶(hù)必須開(kāi)啟 'Allow Menu' ,并且設置為 Yes,取消自己靜音設置。
如果開(kāi)啟Meetme 菜單或者按 *鍵訪(fǎng)問(wèn)菜單
4、現在讓我們重點(diǎn)探討一下電話(huà)會(huì )議的系統性能的問(wèn)題。如果熟悉Asterisk的用戶(hù)可能知道,早期的電話(huà)會(huì )議功能是基于meetme 模塊來(lái)實(shí)現的,時(shí)鐘支持來(lái)自語(yǔ)音卡dahdi模塊。meetme也一直使用在很多呼叫中心,電話(huà)會(huì )議等應用場(chǎng)景中,而且其非常穩定性也非常不錯。就筆者知道的幾個(gè)國內早期使用Asterisk開(kāi)發(fā)電話(huà)會(huì )議系統的公司在電話(huà)會(huì )議市場(chǎng)都有非常不錯的表現,而且也在一些比較大型的公司中使用。但是因為時(shí)鐘源使用dahdi 模塊的關(guān)系,采樣率只能支持到8kHz(PSTN采樣率),因此meetme的拓展就受到了很多局限。在A(yíng)sterisk-1.6以后逐漸使用了ConfBridge來(lái)替換meetme模塊。ConfBridge則支持了更多的靈活性包括用戶(hù)屬性設置,菜單支持等,并且提供了多種采樣率的支持。
稍微熟悉VOIP通信領(lǐng)域的讀者可能知道知道,只要是會(huì )議功能,無(wú)論是語(yǔ)音電話(huà)會(huì )議還是目前最熱門(mén)的視頻會(huì )議,混音是一個(gè)非常消耗系統資源的處理流程,也是一個(gè)技術(shù)難點(diǎn)。因為混音需要大量的CPU和內存資源,采樣率的高低和采樣周期可以直接影響系統的性能。因此,讀者在優(yōu)化電話(huà)會(huì )議系統時(shí)需要注意以下幾個(gè)方面的因素:
- 用戶(hù)應該盡量讓系統平均分配系統中斷,這樣可以保持每個(gè)CPU的core都能充分工作。筆者經(jīng)常看到很多即使是生產(chǎn)系統,系統的CPU中斷完全沒(méi)有被充分平衡地利用起來(lái),這樣就沒(méi)有完全發(fā)揮CPU的處理能力。
- 盡量從默認設置開(kāi)始測試,通過(guò)不同的采樣周期和采樣率組合測試系統的穩定性。通過(guò)不同的組合,可能導致不同的延時(shí)。讀者要注意,低延時(shí)是電話(huà)會(huì )議一個(gè)非常重要的指標。在rfc6366中關(guān)于延遲的方面也做了規定,編碼延時(shí)必須低于30ms,低于10ms是一個(gè)期望值。
- 修改代碼測試更大的支持能力(#define MAX_DATALEN 8096)。當然,這需要用戶(hù)承擔一定的風(fēng)險。
- 開(kāi)啟dsp_drop_silence 選項,如果某些會(huì )議人員不發(fā)言,則不會(huì )對其進(jìn)行混音。
設置mixing_interval 控制CPU資源和語(yǔ)音質(zhì)量。設置此值較低,則會(huì )獲得比較好的語(yǔ)音質(zhì)量,但是會(huì )消耗大量的CPU;反之亦然,設置此值比較高,語(yǔ)音質(zhì)量較低,消耗相對比較少的CPU資源。關(guān)于此值得設置帶來(lái)的不同結果,讀者可以參考資料中的鏈接做進(jìn)一步的研究。
盡量讓所有會(huì )議人員使用同一采樣率,避免增加系統的處理流程。
盡量讓Asterisk取得比較高的運行優(yōu)先級。
盡量減少各種處理流程的延時(shí), 需要注意的延時(shí)要素包括:采樣率的延時(shí),壓縮耗時(shí)延時(shí),傳輸延時(shí),編碼解壓延時(shí),3D語(yǔ)音延時(shí)處理,Buffering 處理延時(shí)等。
如果讀者希望進(jìn)一步提高或優(yōu)化Asterisk平臺底層性能的話(huà),可以考慮換編譯器,例如Intel發(fā)布的編譯器。筆者沒(méi)有更多關(guān)注Intel的編譯器,Intel官方曾經(jīng)使用Intel編譯器做過(guò)一些多核狀態(tài)下的測試,官方的測試結果可以證明,Intel的編譯器可以幫助系統提高性能。



在本章節中,筆者介紹了開(kāi)源IPPBX電話(huà)會(huì )議的功能,包括電話(huà)會(huì )議的基本概念,電話(huà)會(huì )議的使用場(chǎng)景和如何設置電話(huà)會(huì )議,最后重點(diǎn)介紹了如何優(yōu)化電話(huà)會(huì )議系統和其主要的幾個(gè)影響電話(huà)會(huì )議性能的參數。總結今天的講座,使用開(kāi)源freepbx可以成功設置一臺穩定管理功能豐富的企業(yè)電話(huà)會(huì )議系統,完全可以滿(mǎn)足企業(yè)中小型IPPBX 電話(huà)會(huì )議的功能要求。另外,如果需要優(yōu)化系統的性能的話(huà),筆者同時(shí)提供了多種解決方法和思路,希望讀者可以通過(guò)這些方法來(lái)進(jìn)一步優(yōu)化和開(kāi)發(fā)性能更加穩定的電話(huà)會(huì )議系統和IPPBX系統。
參考資料:
https://tools.ietf.org/html/rfc6366
http://ml.stat.purdue.edu/docs/modelvoip.ejs.2010.pdf
http://www.en.voipforo.com/codec/codecs-g711-alaw.php
http://research.edm.uhasselt.be/jori/thesis/onlinethesis/chapter3.html
https://pdfs.semanticscholar.org/10ea/4654d1fd60c97a5216b1ee1d0df5375dc806.pdf

關(guān)注微信公眾號:asterisk-cn,獲得有價(jià)值的行業(yè)分享。訪(fǎng)問(wèn)5060社區-開(kāi)源IPPBX論壇獲得技術(shù)幫助:www.ippbx.org.cn, wiki: www.freepbx.org.cn
融合通信商業(yè)解決方案首選產(chǎn)品:www.hiastar.com