SIP協議

摘 要 SIP、SAP、SDP是NGN與3Tnet中涉及的重要協議。本文在介紹與分析SIP、SAP、SDP協議的基礎上,給出了一個基於三種協議組合而實現的多媒體會議應用實例。
關鍵詞 SIP SAP SDP

  1 引 言

  SIP(Session Initiation Protocol,會話初始協議)、SAP(Session Announcement Protocol,會話通告協議)、SDP(Session Description Protocol,會話描述協議)是三個與會話(Session)有關的既有聯繫又有區別的RFC協議。在本文中,我們將對這三個協議做簡單分析並給出一個利用這三個協議實現的具有一定實用價值的多媒體應用。

  2 協議分析

  2.1 SIP協議介紹與分析

  會話初始協議(SIP)是一信令協議用於初始、管理和終止分組網絡中的語音和視頻會話,具體地說就是用來生成、修改和終結一個或多個參與者之間的會話。SIP是互聯網工程任務組(IETF)多媒體數據和控制體系結構的一個組成部分,因此它與IETF的許多其他協議都有聯繫,例如RTP(實時傳輸協議)和本文提到的SAP、SDP協議。

  SIP主要提供了與會話建立和終結相關的五個方面功能,它們是:

  (1)用戶定位:用於通信的終端系統的決定;

  (2)用戶可用性:被呼叫方參與通信的意願的決定;

  (3)用戶能力:使用的媒體和媒體參數的決定;

  (4)會話建立:“振鈴”,呼叫和被呼叫方會話參數的建立;

  (5)會話管理:包括轉移和終結會話,修改會話參數,以及調用業務等。

  SIP網絡由四種類型的邏輯SIP實體組成。每一實體具有特定的功能,並且作爲客戶機(初始請求),或作爲服務器(響應請求),或作爲兩者的結合參與到SIP通信中。一個“物理設備”能夠具有多於一個邏輯SIP實體的功能性。例如,作爲代理服務器的網絡服務器可同時具備註冊服務器的功能。

  下面是四種功能實體:

  (1)用戶代理

  在SIP中,用戶代理(UA)是端點實體。用戶代理通過交換請求和響應初始和終止會話。UA作爲一應用程序,它包含用戶代理客戶機和用戶代理服務器,如下:

  · 用戶代理客戶機(UAC):客戶機應用程序,它初始SIP請求。

  · 用戶代理服務器(UAS):服務器應用程序,當接收到SIP請求時它聯繫用戶並且代表用戶返回一響應。

  在SIP網絡中具有UA功能的設備是:工作站,IP電話,電話網關,呼叫代理,自動應答服務。

  (2)代理服務器

  代理服務器是同時作爲服務器和客戶機的中間實體,其目的是代表其他客戶機生成請求。請求被內部處理或可能在翻譯之後將其傳遞到其他服務器。如果需要,代理在轉發之前可解釋和重寫請求消息。

  (3)重定向服務器

  重定向服務器接受SIP請求,並將被呼叫方的SIP地址映射成零個(如果沒有可知地址)或更多的新地址並且將它們返回客戶機。不像代理服務器,重定向服務器不傳遞請求到其他服務器。

  (4)註冊服務器

  註冊服務器是接受REGISTER請求的服務器,其目的是根據用戶在請求中規定的聯繫信息更新位置數據庫。

  SIP通過E-mail形式的地址來標明用戶地址。每一用戶通過一等級化的URL來標識,它通過諸如用戶電話號碼或主機名等元素來構造(例如:SIP:[email protected])。因爲它與E-mail地址的相似性,SIP URLs容易與用戶的E-mail地址關聯。

  SIP有兩種類型的消息,它們是:

  (1)請求:從客戶機發到服務器的消息。

  (2)響應:從服務器發到客戶機的消息。

  其中請求消息包括:

  · INVITE:初始呼叫,改變所以參數(re-INVITE)。

  · ACK:確認INVITE的最終應答。

  · BYE:終止呼叫。

  · CANCEL:撤消搜索和振玲。

  · OPTIONS:查詢另一方能力。

  · REGISTER:註冊位置服務。

  · INFO:發送會話中信息而不改變會話狀態。

  · PRACK:與ACK作用相同,但是用於臨時響應。

  · SUBSCRIBE:該方法用來向遠端端點預訂其狀態變化的通知。

  · NOTIFY:該方法發送消息以通知預訂者它所預定的狀態的變化。

  · UPDATE:允許客戶更新一個會話的參數而不影響該會話的當前狀態。

  · MESSAGE:通過在其請求體中承載即時消息內容實現即時消息。

  · REFER:其功能是指示接受方通過使用在請求中提供的聯繫地址信息聯繫第三方。

  響應消息包含數字響應代碼。SIP響應代碼集部分基於HTTP響應代碼。有兩種類型的響應,它們是:

  · 臨時響應(1XX):臨時響應被服務器用來指示進程,但是不終結SIP事物。

  · 最終響應(2XX,3XX,4XX,5XX,6XX):最終響應終止SIP事物。

  每條SIP消息由以下三部分組成:

  (1)起始行(Start Line):每個SIP消息由起始行開始。起始行傳達消息類型(在請求中是方法類型,在響應中是響應代碼)與協議版本。起始行可以是一請求行(請求)或狀態行(響應)。

  (2)SIP頭:用來傳遞消息屬性和修改消息意義。它們在語法和語義上與HTTP頭域相同(實際上有些頭就是借自HTTP),並且總是保持格式:<名字>:<值>。

  (3)消息體:用於描述被初始的會話(例如,在多媒體會話中包括音頻和視頻編碼類型,採樣率等)。消息體能夠顯示在請求與響應中。SIP清晰區別了在SIP起始行和頭中傳遞的信令信息與在SIP範圍之外的會話描述信息。可能的體類型就包括本文將要描述的SDP會話描述協議。

  2.2 SAP協議介紹與分析

  SAP的全稱是會話通告協議,其目的是爲了通知一個多播的多媒體會議或其他多播會話而將相關的會話建立信息發送給所期望的會議參與者。SAP協議本身並不建立會話,它只是將建立會話所必要的信息,例如所採取的視頻或音頻編碼方式通知給其他在一個多播組內的參與者,當參與者接收到該通知數據包後就可以啓動相應的工具並設置正確的參數向該會議的發起者建立會話了(建立會話可以使用
SIP協議)。

  通知的發起者並不知道各參與者是否收到了會話通知,也就是說每個參與者並不向通知發起者回復“我收到了通知”的確認;因此,通知發起者只能夠通過週期性地發送這個會話通知從而最大可能地使參與者收到通知。

  SAP並不是向每個參與者一一發通知數據包,它是通過多播的機制(multicast)向一個已知的多播地址和端口一次性發送一個通知數據包,該多播組內的成員如果工作正常的化就會收到該通知數據包。因此,爲了使會議的參與者都能夠接收到通知,就要確保其參加到該多播組內。

  一個通知數據報除了可以通知某會話將要發起外,還可以通知該會話取消了或該會話的某些通信參數已被修改了。當然,這需要相應機制使這幾個通知都是針對同一會話的。

  那麼SAP如何描述會話的相關信息,這就需要藉助SDP協議了。在SAP數據包的payload字段中一般情況下填充的就是SDP數據,它描述了建立會話所必要的基本信息。

  SDP將在1.3節中介紹。

  2.3 SDP協議介紹與分析

  上面介紹的兩個協議都用到了SDP,實際上SDP就是用來描述多媒體會話通告,多媒體會話邀請和其他形式的多媒體會話初始化的協議。SDP包通常包括以下信息:

  (1)會話信息

  · 會話名和目的。

  · 會話活動時間。

  由於參與會話的資源是受限制的,因此包括以下附加信息是非常有用的。

  · 會話使用的帶寬信息。

  · 會話負責人的聯繫信息。

  (2)媒體信息

  · 媒體類型,例如視頻和音頻。

  · 傳輸協議,例如RTP/UDP/IP和H.320。

  · 媒體格式,例如H.261視頻和MPEG視頻。

  · 多播地址和媒體傳輸端口(IP多播會話)。

  · 用於聯繫地址的媒體和傳輸端口的遠端地址(IP單播會話)。

  SDP描述由許多文本行組成,文本行的格式爲<類型>=<值>,<類型>是一個字母,<值>是結構化的文本串,其格式依<類型>而定。

  3 SAP、SIP、SDP組合應用實例

  在這個應用實例中,我們設計了這樣一種場景:某公司領導需要與本公司各部門負責人召開電視會議。他使用的多媒體會議系統採用了本文所描述的這種SAP、SIP、SDP組合應用技術。該公司領導首先通過一臺具有Web瀏覽功能的客戶機登陸會議服務器,註冊一個會議。在註冊的同時,他就將各部門負責人納入了本次會議的參與者之列(當然,還需要該公司領導和各部門負責人的客戶機在同一個多播組內)。然後,他在頁面上點擊一個“會議通知”按鈕,會議服務器就通過SAP協議向本次會議的各參與者(包括公司領導和部門負責人)所在客戶機發送召開會議的通知。此時,若各參與者所在客戶機是正常的連接到網絡上並且SAP通知接收器正常工作的話,它就會以聲音或圖形的方式通知該參與者,同時準備好本客戶機參加此次會議的客戶端程序。當各參與者發現會議通知後,他在已經準備好的會議客戶端程序上點擊一個“參加會議”的按鈕,客戶端就通過SIP協議將該客戶機輕鬆地加入到會議之中。當參與者到齊後,在會議主席(公司領導)的控制下,此次會議就可以正式開始了。

  各參與者客戶機上的SAP通知接收器接收到會議通知後,它會儘可能地調用客戶機上的各種資源以滿足本次會議的要求,如果實在不能夠滿足的話,它也可以以書面形式通知參與者本機所缺的資源。在整個會議的SAP、SIP交互過程中都用到了SDP協議來描述會話和媒體信息。簡要流程如附圖所示。

  4 結束語

  SAP、SIP、SDP都不是孤立的協議,只有在相互組合與協調並且與其他協議配合的情況下,才能夠發揮它們應有的強大作用。本文給出了SAP、SIP、SDP組合應用的一個實例,這樣的應用其實還很多,例如將本文的技術稍加改動也可用於樓宇的多點視頻自動監控系統中。隨着上述協議的進一步發展和普及,我們堅信SAP、SIP、SDP將會廣泛地應用於NGN(下一代網絡)、3Tnet(高性能寬帶信息網)等寬帶多媒體應用中

文摘: http://bbs.csdn.net/topics/60508319

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章