《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 通信與網(wǎng)絡(luò) > 設(shè)計應(yīng)用 > SIP協(xié)議在VoIP中的應(yīng)用
SIP協(xié)議在VoIP中的應(yīng)用
摘要: SIP協(xié)議是NGN中的重要協(xié)議,越來越得到業(yè)界的重視。本文簡單介紹了VoIP和SIP協(xié)議的含義,并從背景、功能、主要消息這幾個方面對SIP協(xié)議的工作原理進行了介紹,分析了SIP呼叫建立的流程。
關(guān)鍵詞: IPTV|VoIP SIP協(xié)議 VoIP
Abstract:
Key words :


 

  1 VoIP簡介

  當(dāng)前Internet的應(yīng)用日益廣泛,隨著骨干網(wǎng)速率的高速增長,接入網(wǎng)速率的不斷提高,Internet上的業(yè)務(wù)正從窄帶走向?qū)拵?、從非實時走向?qū)崟r,VoIP(Voice over Internet Protocol)業(yè)務(wù)就是其中的一類重要的業(yè)務(wù)。

  VoIP是通過對語音信號進行數(shù)字化編碼、壓縮處理成幀,然后轉(zhuǎn)換為IP數(shù)據(jù)包在IP網(wǎng)絡(luò)上進行傳輸,來達到在IP網(wǎng)絡(luò)上進行語音通信目的的技術(shù)。它最大的優(yōu)勢是能廣泛地利用Internet和全球IP互連的環(huán)境,非常廉價的提供語音、傳真、視頻和數(shù)據(jù)等業(yè)務(wù),如統(tǒng)一消息、虛擬電話、虛擬語音/傳真郵箱、查號業(yè)務(wù)、Internet呼叫中心、Internet呼叫管理、電視會議、電子商務(wù)、傳真存儲轉(zhuǎn)發(fā)和各種信息的存儲轉(zhuǎn)發(fā)等。

  目前在VoIP領(lǐng)域有兩個完全獨立的信令協(xié)議:國際電聯(lián)電信標準化部(International Telecommunications Union—Telecommunication Standardization Sector,ITU-T)的H.323協(xié)議簇和因特網(wǎng)工程任務(wù)組(Internet Engineering Task Force,IETF)的SIP(Session Initiation Protocol)協(xié)議。

  傳統(tǒng)的IP網(wǎng)絡(luò)主要是用來傳輸數(shù)據(jù)業(yè)務(wù),采用的是盡力而為的、無連接的數(shù)據(jù)技術(shù),因此沒有服務(wù)質(zhì)量保證,存在分組丟失、失序到達和時延抖動等情況。數(shù)據(jù)業(yè)務(wù)對此要求不高,但話音屬于實時業(yè)務(wù),對時序、時延等有嚴格的要求。因此必須采取特殊措施來保障一定的業(yè)務(wù)質(zhì)量。VoIP的關(guān)鍵技術(shù)包括信令技術(shù)、編碼技術(shù)、實時傳輸技術(shù)、服務(wù)質(zhì)量保證(QoS)技術(shù)、以及網(wǎng)絡(luò)傳輸技術(shù)等。

  2 SIP協(xié)議及其功能簡介

  2.1 會話初始協(xié)議SIP

  會話初始協(xié)議(SIP)是IETF提出的在IP網(wǎng)上進行多媒體通信的應(yīng)用層控制協(xié)議。SIP是IETF標準進程的一部分,它是在諸如SMTP(簡單郵件傳送協(xié)議)和HTTP(超文本傳送協(xié)議)基礎(chǔ)之上建立起來的。它用來建立、改變和終止基于IP網(wǎng)絡(luò)的用戶間的呼叫。為了提供電話業(yè)務(wù),它還需要結(jié)合不同的標準和協(xié)議,特別是需要確保傳輸(RTP),與當(dāng)前電話網(wǎng)絡(luò)的信令互連,能夠確保語音質(zhì)量(RSVP),能夠提供目錄(LDAP),能夠鑒權(quán)用戶(RADIUS)等等。以Internet協(xié)議(HTTP)為基礎(chǔ),遵循Internet的設(shè)計原則,基于對等工作模式。利用SIP可實現(xiàn)會話的連接、建立和釋放,并支持單播、多播和可移動性。此外,SIP如果與SDP配合使用,可以動態(tài)地調(diào)整和修改會話屬性,如通話帶寬、所傳輸?shù)拿襟w類型及編解碼格式?! ?/font>

  SIP大大優(yōu)于現(xiàn)有的一些協(xié)議,如將PSTN音頻信號轉(zhuǎn)換為IP數(shù)據(jù)包的媒體網(wǎng)關(guān)控制協(xié)議(MGCP)。因為MGCP是封閉的純語音標準,所以通過信令功能對其進行增強比較復(fù)雜,有時會導(dǎo)致消息被破壞或丟棄,從而妨礙提供商增加新的服務(wù)。而使用SIP,編程人員可以在不影響連接的情況下在消息中增加少量新信息。例如,SIP 服務(wù)提供商可以建立包含語音、視頻和聊天內(nèi)容的全新媒體。如果使用 MGCP、H.323 或SS7標準,則提供商必須等待可以支持這種新媒體的協(xié)議新版本。而如果使用SIP,盡管網(wǎng)關(guān)和設(shè)備可能無法識別該媒體,但在兩個大陸上設(shè)有分支機構(gòu)的公司可以實現(xiàn)媒體傳輸。而且,因為SIP的消息構(gòu)建方式類似于HTTP,開發(fā)人員能夠更加便捷地使用通用的編程語言(如Java)來創(chuàng)建應(yīng)用程序。對于等待了數(shù)年希望使用SS7和高級智能網(wǎng)絡(luò)(AIN)部署呼叫等待、主叫號碼識別以及其他服務(wù)的運營商,現(xiàn)在如果使用SIP,只需數(shù)月時間即可實現(xiàn)高級通信服務(wù)的部署。

  2.2 SIP協(xié)議的基本功能

  SIP被描述為用來生成、修改和終結(jié)一個或多個參與者之間的會話。這些會話包括因特網(wǎng)多媒體會議,因特網(wǎng)(或任何IP網(wǎng)絡(luò))電話呼叫和多媒體發(fā)布。會話中的成員能夠通過多播或單播聯(lián)系的網(wǎng)絡(luò)來通信。SIP支持會話描述,它允許參與者在一組兼容媒體類型上達成一致。它同時通過代理和重定向請求到用戶當(dāng)前位置來支持用戶移動性。SIP不與任何特定的會議控制協(xié)議捆綁。本質(zhì)上,SIP提供以下功能。

  名字翻譯和用戶定位:無論被呼叫方在哪里都確保呼叫達到被呼叫方。執(zhí)行任何描述信息到定位信息的映射。確保呼叫(會話)的本質(zhì)細節(jié)被支持。

  特征協(xié)商:它允許與呼叫有關(guān)的組(這可以是多方呼叫)在支持的特征上達成一致(注意:不是所有方都能夠支持相同級別的特征)。例如視頻可以或不可以被支持??傊嬖诤芏嘈枰獏f(xié)商的范圍。[Page]

  呼叫參與者管理:呼叫中參與者能夠引入其他用戶加入呼叫或取消到其他用戶的連接。此外,用戶可以被轉(zhuǎn)移或置為呼叫保持。

  呼叫特征改變:用戶應(yīng)該能夠改變呼叫過程中的呼叫特征。例如,呼叫可以被設(shè)置為“voice-only”,但是在呼叫過程中,用戶可以根據(jù)需要開啟視頻功能。也就是說一個加入呼叫的第三方為了加入該呼叫可以開啟不同的特征。

  2.3 SIP的消息整體描述

  SIP消息用于會話連接的建立及修改。SIP消息有兩種:客戶機到服務(wù)器的請求(Request),服務(wù)器到客戶機的響應(yīng)(response)。

  SIP消息包括三個部分:SIP消息由一個起始行(start-line)、一個或多個字段(field)組成的消息頭、一個標志消息頭結(jié)束的空行(CRLF)以及作為可選項的消息體(message body)組成,其中描述消息體(message body)的頭稱為實體頭(entity header)。起始行分請求行(Request-Line)和狀態(tài)行(status-line)兩種,其中請求行是請求消息的起始行,狀態(tài)行是響應(yīng)消息的起始行,起始行位于消息的最開始。消息頭分通用頭(general-header)、請求頭(request-header)、響應(yīng)頭(response-header)和實體頭(entity-header)四種。消息頭,描述消息的屬性,類似于HTTP消息頭的語法和語義,其中某些是完全照搬。消息體,消息體主要是對消息所要建立的會話的描述。典型的消息體為SDP(會話描述協(xié)議)格式,用來對所要建立的會話進行描述,例如建立一個多媒體會話的消息體中包含音頻、視頻編碼及取樣頻率等信息的描述。消息體的類型采用MIME(多目的互聯(lián)網(wǎng)郵件擴展)所定義的代碼進行標識,如SDP的類型標識為application/SDP。除了SDP,消息體也可以是其他各種類型的文本或二進制數(shù)據(jù)。

 ?。?)SIP請求消息

  INVITE方法用于邀請用戶和服務(wù)參加一個會話。在INVITE請求的消息體中可對被叫方被邀請參加的會話作以描述。如主叫方能接收的媒體類型、發(fā)出的煤體類型及其一些參數(shù)。對INVITE請求的成功響應(yīng)必須在響應(yīng)的消息體中說明被叫方愿意接收哪種媒體,或者說明被叫方發(fā)出的媒體。服務(wù)器可以自動地用200 OK響應(yīng)會議邀請。

  ACK請求用于客戶機向服務(wù)器證實它已經(jīng)收到了對INVITE請求的最終響應(yīng)。ACK只和INVITE請求一起使用。對2xx最終響應(yīng)的證實由客戶機用戶代理發(fā)出,對其它最終響應(yīng)的證實由收到響應(yīng)的第一個代理或第一個客戶機用戶代理發(fā)出。ACK請求的To、From、Call-ID、Cseq字段的值由對應(yīng)的INIVITE請求的相應(yīng)字段的值復(fù)制而來。

  OPTIONS用于向服務(wù)器查詢其能力。如果服務(wù)器認為它能與用戶聯(lián)系,則可用一個能力集響應(yīng)OPTIONS請求;OPTIONS的From、To分91包含主被叫的地址信息,對OPTIONS請求的響應(yīng)中的From、To(可能加上tag參數(shù))、Call-ID字段的值由OPTIONS請求中響應(yīng)的字段值復(fù)制得到。

  BYE用戶代理客戶機用BYE請求向服務(wù)器表明它想釋放呼叫。BYE請求可以像INVITE請求那樣被轉(zhuǎn)發(fā),可由主叫方發(fā)出也可以由被叫方發(fā)出。呼叫的一方在釋放(掛斷)呼叫前必須發(fā)出BYE請求,收到BYE請求的這方必須停止發(fā)媒體流給發(fā)出BYE請求的這方。

  CANCEL請求用于取消一個Call-ID、To、From和Cseq(僅序列號)字段值相同的正在進行的請求,但取消不了已經(jīng)完成的請求(如果服務(wù)器返回一個最終狀態(tài)響應(yīng),則認為請求己完成)。CANCEL請求中的Call- ID、To、Cseq的數(shù)字部分及From字段和原請求的對應(yīng)字段值相同,從而使CANCEL請求與它要取消的請求匹配。

  REGISTER方法用于客戶機向SIP服務(wù)器注冊列在To字段中的地址信息。

  INFO方法是對SIP協(xié)議的擴展,用于傳遞會話中產(chǎn)生的與會話相關(guān)的控制信息,如:ISUP和ISDN信令消息,以及DTMF數(shù)字等。

  其中INVITE和ACK用于建立呼叫,完成三次握手,或者用于建立以后改變會話屬性;BYE用以結(jié)束會話;OPTIONS用于查詢服務(wù)器能力;CANCEL用于取消己經(jīng)發(fā)出但未最終結(jié)束的請求;REGISTER用于客戶機向注冊服務(wù)器注冊用戶位置等消息。

  除了在建立會話時進行各種消息交互外,SIP終端還可以在會話過程中,發(fā)出消息改變或添加會話的某些屬性。例如,用戶在進行語音通話的過程中,想增加視頻通信,他可以在不中斷通話的情況下,發(fā)送新的INVITE消息,打開雙方的視頻媒體,使通話變成可視電話。這為用戶的使用帶來很大的靈活性。

 ?。?)SIP響應(yīng)消息

  SIP協(xié)議中用三位整數(shù)的狀態(tài)碼(status code)和原因值(reason code)來表示對請求做出回答,狀態(tài)碼用于機器識別操作,原因短語(reason-phrase)是對狀態(tài)碼的簡單文字描述,用于人工識別操作。狀態(tài)碼的第一個數(shù)字定義響應(yīng)的類別,在SIP/2. 0中第一個數(shù)字有6個值,定義如下:[Page]

  lxx——暫時響應(yīng),表示請求已經(jīng)收到,正繼續(xù)處理請求。
  2xx——成功地響應(yīng),表示行動己經(jīng)成功地收到,理解和接收。
  3xx——重定位響應(yīng),表示為完成呼叫請求,還必須采取進一步的動作。
  4xx——客戶機錯誤,屬于請求失敗響應(yīng),表示請求有語法錯誤或不能被服務(wù)器執(zhí)行??蛻魴C需要修改請求,然后再重發(fā)請求。
  5xx——服務(wù)器錯誤,屬于服務(wù)器失敗響應(yīng),表示服務(wù)器出錯,不能執(zhí)行合法請求。
  6xx——全局失敗響應(yīng),表示任何服務(wù)器都不能執(zhí)行請求。

  3 SIP的呼叫建立

  3.1 SIP的直接呼叫

 ?。?)首先,主叫向被叫發(fā)出INVITE請求。INVITE請求的作用是發(fā)起并建立呼叫,邀請被叫加入主叫建立的呼叫。

 ?。?)被叫收到請求后對主叫做出響應(yīng)。接受請求方對請求的響應(yīng)分為臨時響應(yīng)(狀態(tài)碼為1xx)和最終相應(yīng)(狀態(tài)碼為2xx)。主叫只對最終相應(yīng)做出回應(yīng)。被叫做出的臨時相應(yīng)有100Trying(嘗試連接),180 Ringing(被叫振鈴或進入受到請求狀態(tài)),182 Queued(被叫可能有多個呼叫要處理,所以主叫請求需要排隊等待);被叫做出的最終響應(yīng)是200 OK,表示被叫接受并開始處理呼叫請求。

 ?。?)為了向被叫證實主叫收到了最終響應(yīng),主叫收到響應(yīng)后發(fā)送ACK請求。被叫收到主叫的ACK請求,標志呼叫建立階段結(jié)束。

 ?。?)主叫或被叫在呼叫建立后發(fā)起后續(xù)請求。后續(xù)請求可由參加呼叫的任一方發(fā)起??砂l(fā)起INVITE請求,進行交互操作,并對當(dāng)前呼叫進行修改;也可發(fā)起B(yǎng)YE請求終止當(dāng)前呼叫。

  3.2 SIP在系統(tǒng)中的呼出流程

  當(dāng)基本呼叫進程分析呼叫信息,它會發(fā)送請求路由消息給路由管理模塊,如果路由管理模塊發(fā)現(xiàn)是SIP路由,它會返回SIP地址給基本呼叫進程,基本呼叫進程會將SIP地址添加到SETUP消息中發(fā)給SIP模塊,當(dāng)SIP模塊收到從基本呼叫進程發(fā)來的SETUP消息,它將分配呼叫資源,呼叫ID,然后向進程發(fā)送消息。

  3.3 SIP在系統(tǒng)中的呼入流程

  當(dāng)SIP模塊從呼叫進程收到了INVITE消息,它將分配呼叫資源并且將呼叫ID和呼叫資源綁定,返回100消息給進程,發(fā)送SETUP消息給基本呼叫進程。

  3.4 SIP在系統(tǒng)中的放音流程

  如果有該SIP用戶注冊有放音服務(wù),連接管理模塊將會發(fā)送放音命令給SIP—UA模塊,SIP—UA會向進程發(fā)送INVITE,在對方返回200OK后,SIP模塊會發(fā)送放音命令回應(yīng)給連接管理模塊,然后進入放音階段。

  4 結(jié)論與展望

  SIP協(xié)議作為NGN通信的核心協(xié)議將有著極大的市場潛力和應(yīng)用前景。協(xié)議是通信的基礎(chǔ),尤其是在3G和VoIP中,SIP的靈活性和可擴展性都將得到體現(xiàn)并受到人們的歡迎??梢灶A(yù)見在不遠的將來,尤其是一些大的運營商,其中心平臺都會以SIP為核心。

  SIP能夠連接使用任何IP網(wǎng)絡(luò)(有線LAN和 WAN、公共Internet骨干網(wǎng)、移動2.5G、3G和Wi-Fi)和任何IP設(shè)備(電話、PC、PDA、移動手持設(shè)備)的用戶,從而出現(xiàn)了眾多利潤豐厚的新商機,改進了企業(yè)和用戶的通信方式。基于SIP的應(yīng)用(如VoIP、多媒體會議、push-to-talk(按鍵通話)、定位服務(wù)、在線信息和IM)即使單獨使用,也會為服務(wù)提供商、ISV、網(wǎng)絡(luò)設(shè)備供應(yīng)商和開發(fā)商提供許多新的商機。不過,SIP 的根本價值在于它能夠?qū)⑦@些功能組合起來,形成各種更大規(guī)模的無縫通信服務(wù)。

  使用SIP,服務(wù)提供商及其合作伙伴可以訂制和提供基于SIP的組合服務(wù),使用戶可以在單個通信會話中使用會議、Web控制、在線信息、IM等服務(wù)。實際上,服務(wù)提供商可以創(chuàng)建一個滿足多個最終用戶需求的靈活應(yīng)用程序組合,而不是安裝和支持依賴于終端設(shè)備有限特定功能或類型的單一分散的應(yīng)用程序。通過在單一、開放的標準SIP應(yīng)用架構(gòu)下合并基于IP的通信服務(wù),服務(wù)提供商可以大大降低為用戶設(shè)計和部署基于IP的新的創(chuàng)新性托管服務(wù)的成本。它是SIP可擴展性促進本行業(yè)和市場發(fā)展的強大動力,是我們所有人的希望所在。但是,作為一種不能加密的協(xié)議,SIP協(xié)議的安全性也變得十分復(fù)雜,這也是我們在未來不容忽略的一個問題。

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。