SIP協(xié)議在VoIP中的應(yīng)用

相關(guān)專題: 5G

摘 要 SIP協(xié)議是NGN中的重要協(xié)議,越來越得到業(yè)界的重視。本文簡單介紹了VoIP和SIP協(xié)議的含義,并從背景、功能、主要消息這幾個(gè)方面對(duì)SIP協(xié)議的工作原理進(jìn)行了介紹,分析了SIP呼叫建立的流程。

關(guān)鍵詞 VoIP SIP 消息

1 VoIP簡介

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

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

目前在VoIP領(lǐng)域有兩個(gè)完全獨(dú)立的信令協(xié)議:國際電聯(lián)電信標(biāo)準(zhǔ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ì)量保證,存在分組丟失、失序到達(dá)和時(shí)延抖動(dòng)等情況。數(shù)據(jù)業(yè)務(wù)對(duì)此要求不高,但話音屬于實(shí)時(shí)業(yè)務(wù),對(duì)時(shí)序、時(shí)延等有嚴(yán)格的要求。因此必須采取特殊措施來保障一定的業(yè)務(wù)質(zhì)量。VoIP的關(guān)鍵技術(shù)包括信令技術(shù)、編碼技術(shù)、實(shí)時(shí)傳輸技術(shù)、服務(wù)質(zhì)量保證(QoS)技術(shù)、以及網(wǎng)絡(luò)傳輸技術(shù)等。

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

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

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

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

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

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

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

特征協(xié)商:它允許與呼叫有關(guān)的組(這可以是多方呼叫)在支持的特征上達(dá)成一致(注意:不是所有方都能夠支持相同級(jí)別的特征)。例如視頻可以或不可以被支持。總之,存在很多需要協(xié)商的范圍。

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

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

2.3 SIP的消息整體描述

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

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

(1)SIP請(qǐng)求消息

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

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

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

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

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

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

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

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

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

(2)SIP響應(yīng)消息

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

lxx——暫時(shí)響應(yīng),表示請(qǐng)求已經(jīng)收到,正繼續(xù)處理請(qǐng)求。

  2xx——成功地響應(yīng),表示行動(dòng)己經(jīng)成功地收到,理解和接收。

  3xx——重定位響應(yīng),表示為完成呼叫請(qǐng)求,還必須采取進(jìn)一步的動(dòng)作。

  4xx——客戶機(jī)錯(cuò)誤,屬于請(qǐng)求失敗響應(yīng),表示請(qǐng)求有語法錯(cuò)誤或不能被服務(wù)器執(zhí)行?蛻魴C(jī)需要修改請(qǐng)求,然后再重發(fā)請(qǐng)求。

  5xx——服務(wù)器錯(cuò)誤,屬于服務(wù)器失敗響應(yīng),表示服務(wù)器出錯(cuò),不能執(zhí)行合法請(qǐng)求。

  6xx——全局失敗響應(yīng),表示任何服務(wù)器都不能執(zhí)行請(qǐng)求。

3 SIP的呼叫建立

3.1 SIP的直接呼叫

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

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

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

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

SIP直接呼叫流程如圖1所示。

SIP用戶適配器在測(cè)試所用交換系統(tǒng)中結(jié)構(gòu)如圖2所示。

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

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

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

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

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

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

4 結(jié)論與展望

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

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

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

由于本網(wǎng)頁不支持圖片與公式效果,如有需要請(qǐng)參閱雜志。

作者:盧茵 黃本雄 來源:中國新通信(原《中國數(shù)據(jù)通信》3月)


微信掃描分享本文到朋友圈
掃碼關(guān)注5G通信官方公眾號(hào),免費(fèi)領(lǐng)取以下5G精品資料
  • 1、回復(fù)“YD5GAI”免費(fèi)領(lǐng)取《中國移動(dòng):5G網(wǎng)絡(luò)AI應(yīng)用典型場(chǎng)景技術(shù)解決方案白皮書
  • 2、回復(fù)“5G6G”免費(fèi)領(lǐng)取《5G_6G毫米波測(cè)試技術(shù)白皮書-2022_03-21
  • 3、回復(fù)“YD6G”免費(fèi)領(lǐng)取《中國移動(dòng):6G至簡無線接入網(wǎng)白皮書
  • 4、回復(fù)“LTBPS”免費(fèi)領(lǐng)取《《中國聯(lián)通5G終端白皮書》
  • 5、回復(fù)“ZGDX”免費(fèi)領(lǐng)取《中國電信5GNTN技術(shù)白皮書
  • 6、回復(fù)“TXSB”免費(fèi)領(lǐng)取《通信設(shè)備安裝工程施工工藝圖解
  • 7、回復(fù)“YDSL”免費(fèi)領(lǐng)取《中國移動(dòng)算力并網(wǎng)白皮書
  • 8、回復(fù)“5GX3”免費(fèi)領(lǐng)取《R1623501-g605G的系統(tǒng)架構(gòu)1
  • 本周熱點(diǎn)本月熱點(diǎn)

     

      最熱通信招聘

      最新招聘信息