csdn技術(shù)中心 sip sap及sdp協(xié)議組合應用的研究
SIP SAP及SDP協(xié)議組合應用的研究
摘 要 SIP、SAP、SDP是NGN與3Tnet中涉及的重要協(xié)議。本文在介紹與分析SIP、SAP、SDP協(xié)議的基礎上,給出了一個(gè)基于三種協(xié)議組合而實(shí)現的多媒體會(huì )議應用實(shí)例。
關(guān)鍵詞 SIP SAP SDP
1 引 言
SIP(Session Initiation Protocol,會(huì )話(huà)初始協(xié)議)、SAP(Session Announcement Protocol,會(huì )話(huà)通告協(xié)議)、SDP(Session Description Protocol,會(huì )話(huà)描述協(xié)議)是三個(gè)與會(huì )話(huà)(Session)有關(guān)的既有聯(lián)系又有區別的RFC協(xié)議。在本文中,我們將對這三個(gè)協(xié)議做簡(jiǎn)單分析并給出一個(gè)利用這三個(gè)協(xié)議實(shí)現的具有一定實(shí)用價(jià)值的多媒體應用。
2 協(xié)議分析
2.1 SIP協(xié)議介紹與分析
會(huì )話(huà)初始協(xié)議(SIP)是一信令協(xié)議用于初始、管理和終止分組網(wǎng)絡(luò )中的語(yǔ)音和視頻會(huì )話(huà),具體地說(shuō)就是用來(lái)生成、修改和終結一個(gè)或多個(gè)參與者之間的會(huì )話(huà)。SIP是互聯(lián)網(wǎng)工程任務(wù)組(IETF)多媒體數據和控制體系結構的一個(gè)組成部分,因此它與IETF的許多其他協(xié)議都有聯(lián)系,例如RTP(實(shí)時(shí)傳輸協(xié)議)和本文提到的SAP、SDP協(xié)議。
SIP主要提供了與會(huì )話(huà)建立和終結相關(guān)的五個(gè)方面功能,它們是:
?。?)用戶(hù)定位:用于通信的終端系統的決定;
?。?)用戶(hù)可用性:被呼叫方參與通信的意愿的決定;
?。?)用戶(hù)能力:使用的媒體和媒體參數的決定;
?。?)會(huì )話(huà)建立:“振鈴”,呼叫和被呼叫方會(huì )話(huà)參數的建立;
?。?)會(huì )話(huà)管理:包括轉移和終結會(huì )話(huà),修改會(huì )話(huà)參數,以及調用業(yè)務(wù)等。
SIP網(wǎng)絡(luò )由四種類(lèi)型的邏輯SIP實(shí)體組成。每一實(shí)體具有特定的功能,并且作為客戶(hù)機(初始請求),或作為服務(wù)器(響應請求),或作為兩者的結合參與到SIP通信中。一個(gè)“物理設備”能夠具有多于一個(gè)邏輯SIP實(shí)體的功能性。例如,作為代理服務(wù)器的網(wǎng)絡(luò )服務(wù)器可同時(shí)具備注冊服務(wù)器的功能。
下面是四種功能實(shí)體:
?。?)用戶(hù)代理
在SIP中,用戶(hù)代理(UA)是端點(diǎn)實(shí)體。用戶(hù)代理通過(guò)交換請求和響應初始和終止會(huì )話(huà)。UA作為一應用程序,它包含用戶(hù)代理客戶(hù)機和用戶(hù)代理服務(wù)器,如下:
· 用戶(hù)代理客戶(hù)機(UAC):客戶(hù)機應用程序,它初始SIP請求。
· 用戶(hù)代理服務(wù)器(UAS):服務(wù)器應用程序,當接收到SIP請求時(shí)它聯(lián)系用戶(hù)并且代表用戶(hù)返回一響應。
在SIP網(wǎng)絡(luò )中具有UA功能的設備是:工作站,IP電話(huà),電話(huà)網(wǎng)關(guān),呼叫代理,自動(dòng)應答服務(wù)。
?。?)代理服務(wù)器
代理服務(wù)器是同時(shí)作為服務(wù)器和客戶(hù)機的中間實(shí)體,其目的是代表其他客戶(hù)機生成請求。請求被內部處理或可能在翻譯之后將其傳遞到其他服務(wù)器。如果需要,代理在轉發(fā)之前可解釋和重寫(xiě)請求消息。
?。?)重定向服務(wù)器
重定向服務(wù)器接受SIP請求,并將被呼叫方的SIP地址映射成零個(gè)(如果沒(méi)有可知地址)或更多的新地址并且將它們返回客戶(hù)機。不像代理服務(wù)器,重定向服務(wù)器不傳遞請求到其他服務(wù)器。
?。?)注冊服務(wù)器
注冊服務(wù)器是接受REGISTER請求的服務(wù)器,其目的是根據用戶(hù)在請求中規定的聯(lián)系信息更新位置數據庫。
SIP通過(guò)E-mail形式的地址來(lái)標明用戶(hù)地址。每一用戶(hù)通過(guò)一等級化的URL來(lái)標識,它通過(guò)諸如用戶(hù)電話(huà)號碼或主機名等元素來(lái)構造(例如:SIP:user@company.com)。因為它與E-mail地址的相似性,SIP URLs容易與用戶(hù)的E-mail地址關(guān)聯(lián)。
SIP有兩種類(lèi)型的消息,它們是:
?。?)請求:從客戶(hù)機發(fā)到服務(wù)器的消息。
?。?)響應:從服務(wù)器發(fā)到客戶(hù)機的消息。
其中請求消息包括:
· INVITE:初始呼叫,改變所以參數(re-INVITE)。
· ACK:確認INVITE的最終應答。
· BYE:終止呼叫。
· CANCEL:撤消搜索和振玲。
· OPTIONS:查詢(xún)另一方能力。
· REGISTER:注冊位置服務(wù)。
· INFO:發(fā)送會(huì )話(huà)中信息而不改變會(huì )話(huà)狀態(tài)。
· PRACK:與ACK作用相同,但是用于臨時(shí)響應。
· SUBSCRIBE:該方法用來(lái)向遠端端點(diǎn)預訂其狀態(tài)變化的通知。
· NOTIFY:該方法發(fā)送消息以通知預訂者它所預定的狀態(tài)的變化。
· UPDATE:允許客戶(hù)更新一個(gè)會(huì )話(huà)的參數而不影響該會(huì )話(huà)的當前狀態(tài)。
· MESSAGE:通過(guò)在其請求體中承載即時(shí)消息內容實(shí)現即時(shí)消息。
· REFER:其功能是指示接受方通過(guò)使用在請求中提供的聯(lián)系地址信息聯(lián)系第三方。
響應消息包含數字響應代碼。SIP響應代碼集部分基于HTTP響應代碼。有兩種類(lèi)型的響應,它們是:
· 臨時(shí)響應(1XX):臨時(shí)響應被服務(wù)器用來(lái)指示進(jìn)程,但是不終結SIP事物。
· 最終響應(2XX,3XX,4XX,5XX,6XX):最終響應終止SIP事物。
每條SIP消息由以下三部分組成:
?。?)起始行(Start Line):每個(gè)SIP消息由起始行開(kāi)始。起始行傳達消息類(lèi)型(在請求中是方法類(lèi)型,在響應中是響應代碼)與協(xié)議版本。起始行可以是一請求行(請求)或狀態(tài)行(響應)。
?。?)SIP頭:用來(lái)傳遞消息屬性和修改消息意義。它們在語(yǔ)法和語(yǔ)義上與HTTP頭域相同(實(shí)際上有些頭就是借自HTTP),并且總是保持格式:<名字>:<值>。
?。?)消息體:用于描述被初始的會(huì )話(huà)(例如,在多媒體會(huì )話(huà)中包括音頻和視頻編碼類(lèi)型,采樣率等)。消息體能夠顯示在請求與響應中。SIP清晰區別了在SIP起始行和頭中傳遞的信令信息與在SIP范圍之外的會(huì )話(huà)描述信息??赡艿捏w類(lèi)型就包括本文將要描述的SDP會(huì )話(huà)描述協(xié)議。
2.2 SAP協(xié)議介紹與分析
SAP的全稱(chēng)是會(huì )話(huà)通告協(xié)議,其目的是為了通知一個(gè)多播的多媒體會(huì )議或其他多播會(huì )話(huà)而將相關(guān)的會(huì )話(huà)建立信息發(fā)送給所期望的會(huì )議參與者。SAP協(xié)議本身并不建立會(huì )話(huà),它只是將建立會(huì )話(huà)所必要的信息,例如所采取的視頻或音頻編碼方式通知給其他在一個(gè)多播組內的參與者,當參與者接收到該通知數據包后就可以啟動(dòng)相應的工具并設置正確的參數向該會(huì )議的發(fā)起者建立會(huì )話(huà)了(建立會(huì )話(huà)可以使用SIP協(xié)議)。
通知的發(fā)起者并不知道各參與者是否收到了會(huì )話(huà)通知,也就是說(shuō)每個(gè)參與者并不向通知發(fā)起者回復“我收到了通知”的確認;因此,通知發(fā)起者只能夠通過(guò)周期性地發(fā)送這個(gè)會(huì )話(huà)通知從而最大可能地使參與者收到通知。
SAP并不是向每個(gè)參與者一一發(fā)通知數據包,它是通過(guò)多播的機制(multicast)向一個(gè)已知的多播地址和端口一次性發(fā)送一個(gè)通知數據包,該多播組內的成員如果工作正常的化就會(huì )收到該通知數據包。因此,為了使會(huì )議的參與者都能夠接收到通知,就要確保其參加到該多播組內。
一個(gè)通知數據報除了可以通知某會(huì )話(huà)將要發(fā)起外,還可以通知該會(huì )話(huà)取消了或該會(huì )話(huà)的某些通信參數已被修改了。當然,這需要相應機制使這幾個(gè)通知都是針對同一會(huì )話(huà)的。
那么SAP如何描述會(huì )話(huà)的相關(guān)信息,這就需要借助SDP協(xié)議了。在SAP數據包的payload字段中一般情況下填充的就是SDP數據,它描述了建立會(huì )話(huà)所必要的基本信息。
SDP將在1.3節中介紹。
2.3 SDP協(xié)議介紹與分析
上面介紹的兩個(gè)協(xié)議都用到了SDP,實(shí)際上SDP就是用來(lái)描述多媒體會(huì )話(huà)通告,多媒體會(huì )話(huà)邀請和其他形式的多媒體會(huì )話(huà)初始化的協(xié)議。SDP包通常包括以下信息:
?。?)會(huì )話(huà)信息
· 會(huì )話(huà)名和目的。
· 會(huì )話(huà)活動(dòng)時(shí)間。
由于參與會(huì )話(huà)的資源是受限制的,因此包括以下附加信息是非常有用的。
· 會(huì )話(huà)使用的帶寬信息。
· 會(huì )話(huà)負責人的聯(lián)系信息。
?。?)媒體信息
· 媒體類(lèi)型,例如視頻和音頻。
· 傳輸協(xié)議,例如RTP/UDP/IP和H.320。
· 媒體格式,例如H.261視頻和MPEG視頻。
· 多播地址和媒體傳輸端口(IP多播會(huì )話(huà))。
· 用于聯(lián)系地址的媒體和傳輸端口的遠端地址(IP單播會(huì )話(huà))。
SDP描述由許多文本行組成,文本行的格式為<類(lèi)型>=<值>,<類(lèi)型>是一個(gè)字母,<值>是結構化的文本串,其格式依<類(lèi)型>而定。
3 SAP、SIP、SDP組合應用實(shí)例
在這個(gè)應用實(shí)例中,我們設計了這樣一種場(chǎng)景:某公司領(lǐng)導需要與本公司各部門(mén)負責人召開(kāi)電視會(huì )議。他使用的多媒體會(huì )議系統采用了本文所描述的這種SAP、SIP、SDP組合應用技術(shù)。該公司領(lǐng)導首先通過(guò)一臺具有Web瀏覽功能的客戶(hù)機登陸會(huì )議服務(wù)器,注冊一個(gè)會(huì )議。在注冊的同時(shí),他就將各部門(mén)負責人納入了本次會(huì )議的參與者之列(當然,還需要該公司領(lǐng)導和各部門(mén)負責人的客戶(hù)機在同一個(gè)多播組內)。然后,他在頁(yè)面上點(diǎn)擊一個(gè)“會(huì )議通知”按鈕,會(huì )議服務(wù)器就通過(guò)SAP協(xié)議向本次會(huì )議的各參與者(包括公司領(lǐng)導和部門(mén)負責人)所在客戶(hù)機發(fā)送召開(kāi)會(huì )議的通知。此時(shí),若各參與者所在客戶(hù)機是正常的連接到網(wǎng)絡(luò )上并且SAP通知接收器正常工作的話(huà),它就會(huì )以聲音或圖形的方式通知該參與者,同時(shí)準備好本客戶(hù)機參加此次會(huì )議的客戶(hù)端程序。當各參與者發(fā)現會(huì )議通知后,他在已經(jīng)準備好的會(huì )議客戶(hù)端程序上點(diǎn)擊一個(gè)“參加會(huì )議”的按鈕,客戶(hù)端就通過(guò)SIP協(xié)議將該客戶(hù)機輕松地加入到會(huì )議之中。當參與者到齊后,在會(huì )議主席(公司領(lǐng)導)的控制下,此次會(huì )議就可以正式開(kāi)始了。
各參與者客戶(hù)機上的SAP通知接收器接收到會(huì )議通知后,它會(huì )盡可能地調用客戶(hù)機上的各種資源以滿(mǎn)足本次會(huì )議的要求,如果實(shí)在不能夠滿(mǎn)足的話(huà),它也可以以書(shū)面形式通知參與者本機所缺的資源。在整個(gè)會(huì )議的SAP、SIP交互過(guò)程中都用到了SDP協(xié)議來(lái)描述會(huì )話(huà)和媒體信息。簡(jiǎn)要流程如附圖所示。
4 結束語(yǔ)
SAP、SIP、SDP都不是孤立的協(xié)議,只有在相互組合與協(xié)調并且與其他協(xié)議配合的情況下,才能夠發(fā)揮它們應有的強大作用。本文給出了SAP、SIP、SDP組合應用的一個(gè)實(shí)例,這樣的應用其實(shí)還很多,例如將本文的技術(shù)稍加改動(dòng)也可用于樓宇的多點(diǎn)視頻自動(dòng)監控系統中。隨著(zhù)上述協(xié)議的進(jìn)一步發(fā)展和普及,我們堅信SAP、SIP、SDP將會(huì )廣泛地應用于NGN(下一代網(wǎng)絡(luò ))、3Tnet(高性能寬帶信息網(wǎng))等寬帶多媒體應用中。
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請
點(diǎn)擊舉報。