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