您當(dāng)前的位置是:  首頁 > 新聞 > 國(guó)內(nèi) >
 首頁 > 新聞 > 國(guó)內(nèi) >

SIP系列講座-基于SIP的電話會(huì)議技術(shù)探討

2017-12-20 11:46:08   作者: james.zhu    來源:asterisk   評(píng)論:0  點(diǎn)擊:


  電話會(huì)議是企業(yè)通信中必不可少的功能之一,目前市場(chǎng)上已經(jīng)有很多非常成熟的電話會(huì)議系統(tǒng)或者基于云的解決方案。有的可能是傳統(tǒng)的PSTN方式結(jié)合IP(SIP/H323)方式,有的是完全是純SIP的的技術(shù)架構(gòu)。為了結(jié)合我們的SIP系列講座內(nèi)容,我們今天專門介紹一下基于SIP的電話會(huì)議的核心要素,電話會(huì)議的創(chuàng)建移除,會(huì)議用戶管理的流程和不同電話會(huì)議服務(wù)器部署方式的討論。
  1、互聯(lián)網(wǎng)的發(fā)展越來越開放,越來越靈活,傳統(tǒng)的PSTN網(wǎng)絡(luò)已經(jīng)很難適應(yīng)互聯(lián)網(wǎng)發(fā)展的要求,同時(shí)運(yùn)營(yíng)商的業(yè)務(wù)能力也逐漸往互聯(lián)網(wǎng)的方向發(fā)展。特別是IMS或者SIP trunk的投入也越來越大。在電話會(huì)議的部署方面,SIP具有以下幾個(gè)獨(dú)特的優(yōu)勢(shì),所以,使得越來越多的電話會(huì)議系統(tǒng)通過SIP來獲得支持:
  • SIP具有更豐富的支持能力,并且具有更多的開放性,而傳統(tǒng)的PSTN網(wǎng)絡(luò)無法獲得這樣的優(yōu)勢(shì)。
  • SIP具有更廣泛的支持和更好的開放性,終端開發(fā)和網(wǎng)絡(luò)技術(shù)人員(SDK/API/瀏覽器)可以輕易部署和開發(fā)需要的終端產(chǎn)品。
  • SIP終端通?梢苑浅l`活地進(jìn)行配置和參數(shù)的調(diào)整,包括音視頻支持,語音增益的調(diào)整。
  • 不同的會(huì)議產(chǎn)品廠家通過一定的配置都可以互相兼容,解決了很多傳統(tǒng)會(huì)議系統(tǒng)的兼容性問題。
  • 基于SIP的電話會(huì)議可以輕松擴(kuò)容,支持了更多的管理功能。
  2、SIP電話會(huì)議系統(tǒng)可以通過很多方式方式來實(shí)現(xiàn)。幾種實(shí)現(xiàn)方式在后續(xù)章節(jié)中有所描述。我們現(xiàn)在主要討論的是服務(wù)器端的方式來實(shí)現(xiàn)電話會(huì)議系統(tǒng);诜⻊(wù)器端的電話會(huì)議系統(tǒng)具有以下幾個(gè)方面的功能支持(如圖所示)。
  具體可實(shí)現(xiàn)的功能包括:
  Conference服務(wù)器可以運(yùn)行多個(gè)Focus 電話會(huì)議室,每個(gè)Focus 具有不同的ID,并且支持多個(gè)Focus。Focus具有以下幾個(gè)主要特性:
  • Focus是一個(gè)Conference-Aware的用戶代理。根據(jù)RFC4353的規(guī)定,F(xiàn)ocus事實(shí)上是在會(huì)議中扮演著一個(gè)邏輯角色。
  • 有唯一的SIP URL。
  • 可以托管/運(yùn)行一個(gè)獨(dú)立的會(huì)議服務(wù)。
  • 維持SIP會(huì)議代表的信令關(guān)系。
  • 支持會(huì)議控制管理。
  • 可以支持媒體轉(zhuǎn)發(fā)支持混音功能。
  • 可以邀請(qǐng)/移除會(huì)議代表。
  這里讀者一定要注意,在會(huì)議UA中,SIP電話會(huì)議支持兩種UA:
  • Conference-Unaware UA。簡(jiǎn)單來說,Unware UA可以支持電話會(huì)議但是基本上忽略了SIP的其他攜帶信息,它可以支持會(huì)議撥入和被邀請(qǐng)功能,Unware UA僅要求支持RFC3261。這里讀者可以簡(jiǎn)單理解為非SIP功能終端。具體Unware UA的定義請(qǐng)參閱 RFC4579。
  • Conference-Aware UA。它必須支持SIP會(huì)議的isfocus 參數(shù)。另外,它必須支持RFC3261,應(yīng)該支持REFER,SIP事件。Aware UA可以支持對(duì)SIP頭的渲染,并且應(yīng)該支持conference package。具體的關(guān)于Aware UA的定義請(qǐng)參閱 RFC4579 3.4 部分。從真正意義上來說,這種UA才是SIP會(huì)議UA。
  3、現(xiàn)在我們看看如何實(shí)現(xiàn)創(chuàng)建第一個(gè)電話會(huì)議,會(huì)議主持人啟動(dòng)會(huì)議的流程,并且訂閱會(huì)議代表狀態(tài)消息。通過以下示例大家可以看到,會(huì)議發(fā)起人首先需要對(duì)Conference Factory來發(fā)起一個(gè)INVITE,然后Factory開始創(chuàng)建一個(gè)Focus,然后Factory 返回一個(gè)302臨時(shí)信息,并且攜帶了一個(gè)會(huì)議的ID號(hào)碼。發(fā)起人再次對(duì)Focus發(fā)起一個(gè)INVITE,F(xiàn)ocus回復(fù)一個(gè)200 OK。確認(rèn)創(chuàng)建了會(huì)議Focus以后,會(huì)議發(fā)起人可以對(duì)Focus發(fā)起一個(gè)訂閱消息,這樣可以通過訂閱消息來獲悉其他會(huì)議代表的參會(huì)狀態(tài)。發(fā)起人創(chuàng)建Focus大概經(jīng)過12個(gè)步驟來實(shí)現(xiàn)整個(gè)發(fā)起會(huì)議的流程。
  UA支持了isfocus 參數(shù),攜帶了Conf-ID。
  4、創(chuàng)建Focus 會(huì)議室以后,發(fā)起人可以通過呼叫方式或者REFER的方式對(duì)第一個(gè)參加會(huì)議的代表發(fā)出邀請(qǐng)。這里,發(fā)起人通過REFER對(duì)參加會(huì)議的代表發(fā)出邀請(qǐng),然后Focus對(duì)會(huì)議代表發(fā)出邀請(qǐng),會(huì)議代表回復(fù)200 OK,F(xiàn)ocus確認(rèn)代表身份,會(huì)議代表進(jìn)入到會(huì)議室。Focus通過提示消息通知會(huì)議發(fā)起人已經(jīng)有代表進(jìn)入了會(huì)議室。
  5、會(huì)議發(fā)起人的REFER消息,通過Focus對(duì)代表發(fā)出會(huì)議邀請(qǐng)。Focus對(duì)會(huì)議代表發(fā)送到INVITE消息。
  6、電話會(huì)議發(fā)起人可以使用REFER,對(duì)聯(lián)系人列表發(fā)起會(huì)議邀請(qǐng),F(xiàn)ocus則會(huì)根據(jù)列表的聯(lián)系方式和URL發(fā)送到會(huì)議代表地址。這里,F(xiàn)ocus可能需要第三方應(yīng)用軟件來批量發(fā)送消息地址。
  7、如果會(huì)議管理人員需要移除或踢出一個(gè)會(huì)議代表的話,可以通過REFER 頭對(duì)Focus發(fā)送一個(gè)refer-to消息,通知Focus移除Refer-to的代表。Focus對(duì)需要被移除的代表發(fā)送一個(gè)Bye消息,會(huì)議代表被移除后,然后Focus對(duì)會(huì)議發(fā)起人發(fā)送一個(gè)NOTIFY消息。
  8、在RFC4579的規(guī)定中,如果會(huì)議發(fā)起人離開會(huì)議,F(xiàn)actory會(huì)自動(dòng)刪除這個(gè)會(huì)議。Focus對(duì)所有會(huì)議代表發(fā)送Bye信息,表示會(huì)議結(jié)束。會(huì)議被自動(dòng)刪除。讀者可以查閱RFC4579 5.12獲得更多詳情。
  9、SIP電話會(huì)議的架構(gòu)有很多中類型,我們?cè)诒菊鹿?jié)的討論中僅介紹了以中心服務(wù)器來處理的方式。其他幾種類型(點(diǎn)對(duì)點(diǎn)處理方式,全網(wǎng)部署,廣播模式)筆者沒有做太多討論,用戶可以查閱網(wǎng)絡(luò)的一些文章進(jìn)一步進(jìn)行研究。Kundan Singh在多年前對(duì)各種會(huì)議架構(gòu)進(jìn)行了討論,也發(fā)布了相關(guān)的測(cè)試數(shù)據(jù),這些數(shù)據(jù)包括編碼轉(zhuǎn)換的模式處理,帶寬要求,CPU負(fù)載,內(nèi)存使用狀態(tài),會(huì)議室數(shù)量,會(huì)議代表人數(shù)和擴(kuò)容能力支持。當(dāng)然,以什么樣的方式部署電話會(huì)議系統(tǒng)取決于很多方面的因素,特別是在當(dāng)前互聯(lián)網(wǎng)如此發(fā)達(dá),帶寬足夠,終端多樣化的今天,各種方式都有其優(yōu)勢(shì)和劣勢(shì)。用戶需要根據(jù)自己的需求(成本,部署方式,使用習(xí)慣,功能,可維護(hù)性等)做進(jìn)一步分析。
  在本章節(jié)的討論中,我們首先介紹了SIP 電話會(huì)議的基本架構(gòu)和核心的概念,同時(shí)介紹了電話會(huì)議發(fā)起的流程,電話會(huì)議邀請(qǐng)的流程和邀請(qǐng)多個(gè)會(huì)議代表的方式,最后我們討論了如何移除會(huì)議代表,以及會(huì)議刪除的方式。另外,增加了一些關(guān)于會(huì)議架構(gòu)模式的討論,也包括了各種架構(gòu)模式的優(yōu)缺點(diǎn)和性能問題。我們基本把電話會(huì)議的構(gòu)建流程做了比較全面的討論,這里,我們沒有涉及具體的語音電話還是視頻會(huì)議的討論,事實(shí)上,很多會(huì)議解決方案已經(jīng)層出不窮,業(yè)務(wù)模式也多種多樣,用戶可以自己體驗(yàn)。
  參考資料:
  Multiparty Conference Signalling using SIP
  Kundan Singh, Centralized Conferencing using SIP
  Stockholm SIP Conferencing
  https://tools.ietf.org/html/rfc4353
  https://tools.ietf.org/html/rfc4579
  關(guān)注微信公眾號(hào):asterisk-cn,獲得有價(jià)值的行業(yè)分享。訪問5060社區(qū)-開源IPPBX論壇獲得技術(shù)幫助:www.ippbx.org.cn
【免責(zé)聲明】本文僅代表作者本人觀點(diǎn),與CTI論壇無關(guān)。CTI論壇對(duì)文中陳述、觀點(diǎn)判斷保持中立,不對(duì)所包含內(nèi)容的準(zhǔn)確性、可靠性或完整性提供任何明示或暗示的保證。請(qǐng)讀者僅作參考,并請(qǐng)自行承擔(dān)全部責(zé)任。

專題