基SIP系統(tǒng)模型的構(gòu)建與其信令過程的驗(yàn)證_第1頁
基SIP系統(tǒng)模型的構(gòu)建與其信令過程的驗(yàn)證_第2頁
基SIP系統(tǒng)模型的構(gòu)建與其信令過程的驗(yàn)證_第3頁
基SIP系統(tǒng)模型的構(gòu)建與其信令過程的驗(yàn)證_第4頁
基SIP系統(tǒng)模型的構(gòu)建與其信令過程的驗(yàn)證_第5頁
已閱讀5頁,還剩44頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、基SIP系統(tǒng)模型的構(gòu)建與其信令過程的驗(yàn)證作 者 姓 名:李賀明指 導(dǎo) 教 師:趙麗紅 副教授單 位 名 稱:信息科學(xué)與工程學(xué)院專 業(yè) 名 稱:通信工程?hào)| 北 大 學(xué)2006年6月Constructing the SIP system model and making the confirmation of signalling processby Li He MingSupervisor: Professor Zhao Li HongNortheastern UniversityJune 200641東北大學(xué)畢業(yè)設(shè)計(jì)(論文)摘要畢業(yè)設(shè)計(jì)(論文)任務(wù)書畢業(yè)設(shè)計(jì)(論文)題目:SIP系統(tǒng)模型的構(gòu)建與

2、其信令過程的驗(yàn)證基本內(nèi)容:在論文中將進(jìn)行以下內(nèi)容1 詳細(xì)了解SIP 協(xié)議內(nèi)容2 理解osip和exosip協(xié)議棧的編譯方法3 對(duì)VC+6.0程序開發(fā)環(huán)境加以了解4 分析系統(tǒng)框架和功能模塊5 設(shè)計(jì)SIP用戶注冊(cè)程序6 對(duì)SIP系統(tǒng)進(jìn)行測(cè)試在設(shè)計(jì)的過程中,把重點(diǎn)要放在對(duì)協(xié)議的理解上面來,要對(duì)SIP協(xié)議的應(yīng)用進(jìn)行掌握。通過VC+進(jìn)行SIP注冊(cè)的程序設(shè)計(jì),來完成SIP系統(tǒng)的軟件設(shè)計(jì),并將對(duì)系統(tǒng)進(jìn)行測(cè)試。畢業(yè)設(shè)計(jì)(論文)專題部分:題目:基本內(nèi)容:學(xué)生接受畢業(yè)設(shè)計(jì)(論文)題目日期第周指導(dǎo)教師簽字:年月日SIP系統(tǒng)模型的構(gòu)建與其信令過程的驗(yàn)證隨著Internet的不斷發(fā)展,它的許多應(yīng)用都需要建立和管理一個(gè)會(huì)

3、話,會(huì)話在這里的含義是在參與者之間數(shù)據(jù)的交換。其應(yīng)用實(shí)現(xiàn)往往是很復(fù)雜的:參與者可能是在代理間移動(dòng),他們可能有多個(gè)名字,他們中間的通訊可能是基于不同的媒介(比如文本,多媒體,視頻,音頻等),有時(shí)候是多種媒介一起交互等。人們創(chuàng)造了無數(shù)種通訊協(xié)議應(yīng)用于實(shí)時(shí)的多媒體會(huì)話數(shù)據(jù)比如聲音、影像和文本。為了更方便的建立一個(gè)會(huì)話,本文選擇了會(huì)話初始協(xié)議(SIP,Session Invitation Protocol)來建立通信系統(tǒng)。建立一個(gè)完善的SIP系統(tǒng)是一項(xiàng)非常復(fù)雜的工作,本文在做了大量的調(diào)研工作基礎(chǔ)上,選擇了一個(gè)正確的程序開發(fā)工具和SIP協(xié)議棧,組建一組SIP服務(wù)器和客戶端,完成SIP系統(tǒng)中的用戶通過IP

4、網(wǎng)絡(luò)向服務(wù)器進(jìn)行注冊(cè)的任務(wù)。本文通過設(shè)計(jì)一組SIP服務(wù)器和客戶端,對(duì)它們之間的通信信令進(jìn)行了采集和分析,通過與實(shí)際結(jié)果的對(duì)照來證明信令傳輸過程是正確的。本文首先介紹了SIP協(xié)議和開發(fā)工具的應(yīng)用方法,在概述了SIP特點(diǎn)之后,提出了本系統(tǒng)的總體設(shè)計(jì),然后介紹了系統(tǒng)的具體實(shí)現(xiàn)過程,最后分析了驗(yàn)證結(jié)果。本分析系統(tǒng)是在Visual C+6.0平臺(tái)下設(shè)計(jì)實(shí)現(xiàn)的。通過抓包工具對(duì)整個(gè)通信過程進(jìn)行檢測(cè)和分析,從而明確SIP系統(tǒng)通信的原理和信令傳輸方法。通過對(duì)服務(wù)器和和客戶端的設(shè)置來熟悉基本的IP網(wǎng)絡(luò)特點(diǎn),以此來觀察和分析IP特性在SIP系統(tǒng)中的應(yīng)用。關(guān)鍵詞:會(huì)話初始化協(xié)議,用戶代理,代理服務(wù)器,SIP信令,協(xié)議

5、棧東北大學(xué)畢業(yè)設(shè)計(jì)(論文)ABSTRACTConstructing the SIP system model and making the confirmation of signalling processAlong with the Internet unceasing development, its many applications all need to establish and to manage a conversation, converses in here meaning is the data exchange between participants. Consid

6、ered the actual situation of the participants, these applications realizations are usually very complex: participants possibly move between the proxies, they possibly have many names, their middle communication possibly is based on the different medium (for instance text, multimedia, video frequency

7、, audio frequency and so on), some times are the many kinds of media hand over together and so on. The people created the innumerable kind of communications protocol to apply to the real-time multimedia conversation data for instance sound, the image and the text.For a more convenient establishment

8、conversation, I chose the Session Invitation Protocol (SIP, Session Invitation Protocol) to establish my own communications system. Establishes a perfect SIP system is an extremely complex work, but my duty is completes in the SIP system the user to carry on the registration through the IP network t

9、o the server the duty. In order to complete this task, I must set up a group of SIP server and the customer end, again is chooses a correct procedure development kit and the SIP agreement stack, I has done the massive investigation and study work for this.This article through designing a group of SI

10、P server and the client, the correspondence letter command carries on gathering and the analysis to them between, through with the real result comparison proved the letter command transmits the process is correct. This article first introduced the SIP theory knowledge and the development kit applica

11、tion method, after has outlined the SIP characteristic, proposed this system design, then introduced the system concrete realization process, finally has analyzed the confirmation result.This analysis system is designed and realized under the Visual C+6.0 platform. Through grasps a package of tool t

12、o carry on the examination and the analysis to the entire course of communications, thus is clear about the SIP system communication the principle and the letter command transmits the method. Through to the server and with the customer end establishment familiar basic IP network characteristic, obse

13、rves and analyzes the IP characteristic by this in the SIP system application.Key words:Session Invitation Protocol, User Agent Register Server, SIP Signalling, protocol stack東北大學(xué)畢業(yè)設(shè)計(jì)(論文)目錄目錄任務(wù)書I中文摘要IIAbstractIII第1章 緒論11.1設(shè)計(jì)背景11.2設(shè)計(jì)目的21.3 論文概要2第2章 SIP理論基礎(chǔ)和開發(fā)工具32.1 SIP理論基礎(chǔ)32.1.1 SIP介紹32.1.2 SIP基本組成42

14、.1.3 SIP消息格式62.1.4 SIP運(yùn)作模式102.1.5 SIP未來發(fā)展問題112.2程序開發(fā)工具122.2.1 Visual C+ 6.0具體特點(diǎn)122.2.2 MFC類庫132.2.3 Osip2和EXosip協(xié)議棧的分析14第3章 SIP系統(tǒng)的定義和框架分析183.1 系統(tǒng)的定義183.2 可行性分析193.2.1 SIP 服務(wù)器實(shí)現(xiàn)方案193.2.2 SIP客戶端實(shí)現(xiàn)方案213.3 系統(tǒng)框架設(shè)計(jì)和分析223.3.1系統(tǒng)總體結(jié)構(gòu)設(shè)計(jì)223.3.2程序設(shè)計(jì)流程233.3.3主界面設(shè)計(jì)243.3.4協(xié)議棧的編譯253.3.5 SIP包分析26第4章 局域網(wǎng)SIP用戶注冊(cè)的實(shí)現(xiàn)284

15、.1 程序設(shè)計(jì)介紹284.1.1重要文件介紹284.1.2 關(guān)鍵程序分析284.2實(shí)現(xiàn)系統(tǒng)功能配置304.2.1開發(fā)工具配置304.2.2程序抓包流程30第5章 系統(tǒng)功能的實(shí)現(xiàn)和結(jié)果分析335.1工程配置框圖335.1.1工程配置原理335.1.2 工程配置方法345.2程序執(zhí)行界面36結(jié) 論40參考文獻(xiàn)41致 謝42東北大學(xué)畢業(yè)設(shè)計(jì)(論文)第1章 緒論第1章 緒論1.1設(shè)計(jì)背景隨著傳統(tǒng)電信網(wǎng)絡(luò)和計(jì)算機(jī)網(wǎng)絡(luò)的逐漸融合,出現(xiàn)了采用分組交換技術(shù)替代傳統(tǒng)電路交換技術(shù)傳送話音業(yè)務(wù)的IP電話,IP電話的出現(xiàn)不可避免地給傳統(tǒng)電信市場(chǎng)帶來了強(qiáng)大沖擊,大多長(zhǎng)途電信運(yùn)營(yíng)商都開始關(guān)注IP電話的發(fā)展。IP電話有著誘

16、人的市場(chǎng)前景,美國(guó)一家市場(chǎng)調(diào)研公司Killen Associates預(yù)測(cè)到2003年IP電話業(yè)務(wù)年收入將達(dá)10億美元,很多傳統(tǒng)電信公司、ISP和新一代電信公司都開始提供或試驗(yàn)IP電話業(yè)務(wù)。中國(guó)信息產(chǎn)業(yè)部已于1999年4月正式批準(zhǔn)了中國(guó)電信、聯(lián)通、吉通三家公司進(jìn)行IP電話業(yè)務(wù)運(yùn)行試驗(yàn)。目前國(guó)際上的IP電話標(biāo)準(zhǔn)主要有ITU-T H.323協(xié)議和IETF1(Internet Engineering Task Force)MGCP協(xié)議和SIP(Session Invitation Protocol)協(xié)議。本設(shè)計(jì)專注SIP協(xié)議。會(huì)話初始協(xié)議的開發(fā)目的是用來幫助提供跨越因特網(wǎng)的高級(jí)電話業(yè)務(wù)。因特網(wǎng)電話(I

17、P電話)正在向一種正式的商業(yè)電話模式演進(jìn),會(huì)話初始協(xié)議就是用來確保這種演進(jìn)實(shí)現(xiàn)而需要的下一代網(wǎng)絡(luò)(NGN,Next Generation Network)系列協(xié)議中重要的一員。目前業(yè)界對(duì)SIP 的支持越來越廣泛。全球大的運(yùn)營(yíng)商都轉(zhuǎn)向支持SIP 方式, 在北美和歐洲, 多數(shù)新的方案都選用SIP , 國(guó)內(nèi)的服務(wù)商考慮組建新網(wǎng)絡(luò)的時(shí)候, 也開始采用SIP 。SIP 可以提供PC 作為一個(gè)軟客戶,以這樣的方式入網(wǎng),可以通過IP 電話,終端識(shí)別器的方式,也可以通過網(wǎng)關(guān)的方式。還可以提供多媒體服務(wù)IP 電話、呼叫中心等個(gè)性化服務(wù)。會(huì)話初始協(xié)議是因特網(wǎng)工程特別工作組(IETF)標(biāo)準(zhǔn)進(jìn)程的一部分,它是在簡(jiǎn)單郵

18、件傳送協(xié)議(SMTP)和超文本傳送協(xié)議(HTTP)基礎(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)等等。會(huì)話初始協(xié)議被描述為用來生成、修改和終結(jié)一個(gè)或多個(gè)參與者之間的會(huì)話。這些會(huì)話包括因特網(wǎng)多媒體會(huì)議、因特網(wǎng)(或任何IP網(wǎng)絡(luò))電話呼叫和多媒體發(fā)布。會(huì)話中的成員能夠通過多播或單播聯(lián)系的網(wǎng)絡(luò)來通信。會(huì)話初始協(xié)議支持會(huì)話描述,它允許參與者在一組兼容媒體類型上達(dá)成一致。它同時(shí)通過代理和重定向請(qǐng)求到用

19、戶當(dāng)前位置來支持用戶移動(dòng)性。會(huì)話初始協(xié)議不與任何特定的會(huì)議控制協(xié)議捆綁。SIP軟電話是基于因特網(wǎng)開發(fā)的電話軟件,可以通過呼叫對(duì)方IP地址達(dá)到語音通信的目的,目前的研究還不算完善。由于SIP是基于純文本的信令協(xié)議,可以管理不同接入網(wǎng)絡(luò)上的會(huì)晤。會(huì)晤可以是終端設(shè)備之間任何類型的通信,如視頻會(huì)晤、即時(shí)信息處理或協(xié)作會(huì)晤等。該協(xié)議不會(huì)定義或限制可使用的業(yè)務(wù),傳輸、服務(wù)質(zhì)量、計(jì)費(fèi)、安全性等問題都由基本核心網(wǎng)絡(luò)和其它協(xié)議處。所以會(huì)話初始協(xié)議目前倍受青睞,走在了研究領(lǐng)域的前沿。1.2設(shè)計(jì)目的本設(shè)計(jì)主要研究用計(jì)算機(jī)語言簡(jiǎn)單編程設(shè)計(jì)SIP服務(wù)器和注冊(cè)流程,以及通過兩臺(tái)聯(lián)網(wǎng)的計(jì)算機(jī)對(duì)其信令傳輸過程進(jìn)行驗(yàn)證。所用的

20、計(jì)算機(jī)編程語言為Visual C+6.0。該設(shè)計(jì)是基于SIP信令流程的,與SIP信令有所不同,僅僅實(shí)現(xiàn)了SIP通信信令,忽略了語音通信。通過設(shè)計(jì)SIP軟電話了解了SIP電話的設(shè)計(jì)理念,以及用計(jì)算機(jī)編程語言實(shí)現(xiàn)計(jì)算機(jī)之間的通信。通過信令流程驗(yàn)證過程了解了計(jì)算機(jī)之間通過SIP協(xié)議進(jìn)行通信的過程。1.3 論文概要SIP已經(jīng)發(fā)展好幾年了,但仍然沒有普及應(yīng)用,一方面由于SIP設(shè)備開發(fā)利潤(rùn)的限制,另一方面大家對(duì)SIP不是很具體的了解。本文主要針對(duì)SIP開發(fā)者,介紹了SIP的理論知識(shí)和Visual C+6.0程序開發(fā)工具的具體應(yīng)用,以及相關(guān)軟件的配置和應(yīng)用等,并編寫了相關(guān)程序。論文分為六章內(nèi)容:第一章簡(jiǎn)要介

21、紹課題研究的目的和重要意義;第二章講述與本文有關(guān)的初級(jí)知識(shí),理論基礎(chǔ)以及程序開發(fā)工具;第三章介紹了設(shè)計(jì)的系統(tǒng)定義和自己對(duì)系統(tǒng)的分析;第四章主要講述了自己在實(shí)現(xiàn)局域內(nèi)SIP注冊(cè)所做的工作;最后一章介紹的是整個(gè)系統(tǒng)實(shí)現(xiàn)的過程和系統(tǒng)驗(yàn)證工作。東北大學(xué)畢業(yè)設(shè)計(jì)(論文)第2章 SIP理論基礎(chǔ)和開發(fā)工具第2章 SIP理論基礎(chǔ)和開發(fā)工具2.1 SIP理論基礎(chǔ)SIP(會(huì)話初始協(xié)議)的開發(fā)目的是用來幫助提供跨越因特網(wǎng)的高級(jí)電話業(yè)務(wù)。因特網(wǎng)電話(IP電話)正在向一種正式的商業(yè)電話模式演進(jìn),SIP就是用來確保這種演進(jìn)實(shí)現(xiàn)而需要的NGN(下一代網(wǎng)絡(luò))系列協(xié)議中重要的一員。SIP是IETF1標(biāo)準(zhǔn)進(jìn)程的一部分,它是在SM

22、TP(簡(jiǎn)單郵件傳送協(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)等等。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)前位置來支持

23、用戶移動(dòng)性。SIP不與任何特定的會(huì)議控制協(xié)議捆綁。2.1.1 SIP介紹會(huì)話初始化協(xié)議(SIP)的第一個(gè)版本即SIPv1是使用會(huì)話描述協(xié)議(SDP)描述會(huì)話,同時(shí)使用UDP進(jìn)行傳輸,是基于文本的。1996年2月22日,SIPv1和簡(jiǎn)單會(huì)話邀請(qǐng)協(xié)議(SCIP,Simple Conference Invitation Protocol)兩個(gè)協(xié)議合并為SIPv2,即現(xiàn)在所說的SIP。SIP提供以下功能: (1)名字翻譯和用戶定位無論被呼叫方在哪里都確保呼叫達(dá)到被叫方。執(zhí)行任何描述信息到定位信息的映射。確保呼叫(會(huì)話)的本質(zhì)細(xì)節(jié)被支持。 (2)特征協(xié)商它允許與呼叫有關(guān)的組(可以是多方呼叫)在支持的特征

24、上達(dá)成一致(注意:不是所有方都能夠支持相同級(jí)別的特征)。例如視頻可以或不可以被支持。總之,存在很多需要協(xié)商的范圍。 (3)呼叫參與者管理呼叫中參與者能夠引入其它用戶加入呼叫或取消到其它用戶的連接。此外,用戶可以被轉(zhuǎn)移或置為呼叫保持。(4)呼叫特征改變用戶應(yīng)該能夠改變呼叫過程中的呼叫特征。例如,一呼叫可以被設(shè)置為“voice-only”,但是在呼叫過程中,用戶可以開啟視頻功能。也就是說一個(gè)加入呼叫的第三方為了加入該呼叫可以開啟不同的特征。2.1.2 SIP基本組成SIP協(xié)議雖然是主要為IP網(wǎng)絡(luò)設(shè)計(jì)的,但它并不關(guān)心承載網(wǎng)絡(luò),可以在ATM、幀中繼等承載網(wǎng)中工作,可以運(yùn)行于TCP、UDP、SMTP等各

25、種傳輸層協(xié)議之上。SIP用戶通過類似于e-mail地址的URL標(biāo)識(shí),例如sip:myname,通過這種方式可以用一個(gè)統(tǒng)一名字標(biāo)識(shí)不同的終端和通信方式。SIP主要由于4種元素組成:用戶代理、代理服務(wù)器、重定向服務(wù)器以及注冊(cè)服務(wù)器。(1)用戶代理(User Agent)用戶代理是用于用戶與用戶之間交互的SIP實(shí)體,它通常有一個(gè)與用戶連接的接口??煞謨蓚€(gè)部分:用戶客戶端(UAC),負(fù)責(zé)發(fā)起呼叫;用戶服務(wù)端(UAS),負(fù)責(zé)接受呼叫并做出響應(yīng)。兩者并不是絕對(duì)的。例如,Bob想要在他的計(jì)算機(jī)上通過Internet打電話給Jack,他運(yùn)行了一個(gè)包含SIP用戶代理的應(yīng)用程序,Bob通過接口和UA交互。一旦Bo

26、b按了呼叫Jack的接口按鈕,UA就觸發(fā)相應(yīng)的SIP消息建立呼叫請(qǐng)求。Bob的UA此時(shí)扮演的就是UAC。Jack的計(jì)算機(jī)上也有一個(gè)SIP用戶代理,當(dāng)這個(gè)代理收到Bob用戶代理發(fā)來的請(qǐng)求時(shí),可能給出兩個(gè)按鈕給Jack選擇:接受請(qǐng)求和拒絕請(qǐng)求。當(dāng)Jack作出接受請(qǐng)求時(shí)按下接受請(qǐng)求按鈕,Jack的用戶代理根據(jù)作出的選擇給Bob的用戶代理回送消息。Jack的UA此時(shí)扮演的就是UAS。用戶和SIP之間的所有交互都是通過UA作為中介來完成的。(2)代理服務(wù)器(Proxy Server)代理服務(wù)器負(fù)責(zé)接收用戶代理發(fā)來的請(qǐng)求,根據(jù)網(wǎng)絡(luò)策略將請(qǐng)求發(fā)給相應(yīng)的服務(wù)器,并根據(jù)收到的應(yīng)答對(duì)用戶代理做出響應(yīng)??煞譃楸A艉?/p>

27、叫狀態(tài)代理、保留狀態(tài)代理和不保留狀態(tài)代理。如表2.1所示。表2.1 代理服務(wù)器分類保留呼叫狀態(tài)代理保留為后述事務(wù)發(fā)送的SIP消息的詳細(xì)路徑,這些代理存儲(chǔ)從會(huì)話建立時(shí)刻起到會(huì)話結(jié)束為止所有狀態(tài)信息。保留狀態(tài)代理存儲(chǔ)與一個(gè)給定事務(wù)相關(guān)的狀態(tài)信息直到事務(wù)結(jié)束,它不需要位于那些為后述事務(wù)發(fā)送的SIP的路徑中不保留狀態(tài)代理收到一個(gè)請(qǐng)求時(shí),就發(fā)向下一跳,立即刪除與之相關(guān)的所有狀態(tài)信息;收到應(yīng)答時(shí),根據(jù)Via標(biāo)題頭分析路徑發(fā)往下一跳,它并不為之維持狀態(tài). 上例中Bob只發(fā)出一個(gè)呼叫請(qǐng)求,但是可能會(huì)有很多Proxy為他建立呼叫請(qǐng)求,設(shè)Jack是Hust電信系ITEC的一名研究生,Hust有一個(gè)代理服務(wù)器,電信

28、系也有一個(gè)代理服務(wù)器,當(dāng)Bob的請(qǐng)求:Jack,到達(dá)Hust時(shí),Hust的代理服務(wù)器將代表Bob的UA自動(dòng)向Jack發(fā)出請(qǐng)求,當(dāng)請(qǐng)求到達(dá)電信系服務(wù)器時(shí),電信的代理服務(wù)器將自動(dòng)向ITEC發(fā)出Jack請(qǐng)求。(3)重定向服務(wù)器(Redirect Server)重定向服務(wù)器用于在需要時(shí)將用戶新的位置返回給呼叫方。呼叫方可根據(jù)得到新位置重新呼叫。如上例設(shè)Hust有一個(gè)重定向服務(wù)器,它知道Jack工作時(shí)在Jack6,休息時(shí)在Jack19它就將這兩個(gè)地址返回給Bob的UA,UA根據(jù)返回的地址同時(shí)向這兩個(gè)地址發(fā)送請(qǐng)求。重定向服務(wù)器也可以返回知道Jack更多地址的的服

29、務(wù)器。(4)注冊(cè)服務(wù)器(Register)注冊(cè)服務(wù)器用于接收和處理用戶端的注冊(cè)請(qǐng)求,完成用戶地址的注冊(cè)。SIP提供了一個(gè)搜索機(jī)制,如果一個(gè)用戶期望建立和其它用戶會(huì)話,SIP必須查找能夠找到對(duì)方用戶正在使用的當(dāng)前主機(jī)。如Jack想要?jiǎng)e人能夠找到他就必須向服務(wù)注冊(cè)可以找到他的一個(gè)或幾個(gè)地址。2.1.3 SIP消息格式SIP消息采用的是文本格式編碼,雖然在傳輸時(shí)占用的帶寬比二進(jìn)制更寬,但是采用文本更容易讓人閱讀,所以便于調(diào)試,而且采用文本協(xié)議更靈活更易于以后新功能的擴(kuò)展。(1)SIP消息SIP消息有兩種:請(qǐng)求消息和響應(yīng)消息一個(gè)SIP消息由一個(gè)起始行、一個(gè)或幾個(gè)字段組成的消息頭、一個(gè)空行以及可選的消息

30、體組成。起始行分為請(qǐng)求行和狀態(tài)行兩種,分別對(duì)應(yīng)請(qǐng)求消息和響應(yīng)消息的起始行。(2)常用標(biāo)題頭標(biāo)題頭提供了有關(guān)于請(qǐng)求或應(yīng)答的信息和關(guān)于這些消息所包含的消息體的信息。呼叫標(biāo)識(shí)(Call-ID)代表了一種在兩個(gè)或多個(gè)用戶之間共享SIP信令的關(guān)系,它標(biāo)識(shí)了一個(gè)特定的邀請(qǐng)和這個(gè)邀請(qǐng)相關(guān)的所有后續(xù)事務(wù)。一個(gè)多媒體會(huì)議可產(chǎn)生多個(gè)Call-ID不同的呼叫。下面簡(jiǎn)要說明一下From、To、Contact和Cseq這四個(gè)標(biāo)題頭含義。.From:表示了請(qǐng)求的來源地。這個(gè)可能和對(duì)話的來源不同,被叫方到呼叫方的請(qǐng)求會(huì)在From頭域中使用被叫方的地址。.To:定義了邏輯上的請(qǐng)求的接受者。它通常還包含目的方的公用地址,在整個(gè)

31、會(huì)話過程中,To頭域不能被更改。.聯(lián)系(Contact):提供了一個(gè)URI,這個(gè)URI的含義取決玩是在請(qǐng)求還是在應(yīng)答中。根據(jù)Contact標(biāo)題頭可以直接找到用戶的URL,它們?cè)诼酚傻谝粋€(gè)INVITE請(qǐng)求后就不再需要存放在信令中,這個(gè)特性非常重要。如Bob知道了Jack在19工作,他在ACK中就不需要再經(jīng)過了。.命令序列標(biāo)題頭(Cseq):包含一個(gè)數(shù)字序列號(hào)和請(qǐng)求的方法。數(shù)字部分用于在同一會(huì)話中對(duì)不同的請(qǐng)求進(jìn)行排序。如Bob發(fā)送一個(gè)INVITE消息給Jack:Cseq: 1 INVIITE如果他想重新發(fā)一個(gè),可以寫成如下:Cseq: 2 INVITE。在ACK和CANCEL

32、請(qǐng)求中應(yīng)該有與對(duì)應(yīng)的INVITE同樣的Cseq。.Max-Forwards: 必須在任何一個(gè)SIP請(qǐng)求中使用,來限制中間轉(zhuǎn)發(fā)請(qǐng)求到下一個(gè)節(jié)點(diǎn)的proxy or gateway的個(gè)數(shù)。每當(dāng)服務(wù)器轉(zhuǎn)發(fā)一次這個(gè)數(shù)字就減一。路由(Route):用于強(qiáng)制一個(gè)請(qǐng)求經(jīng)過一個(gè)proxy路由列表。Via:用來描述請(qǐng)求當(dāng)前經(jīng)歷的路徑的,并且標(biāo)志了應(yīng)答所應(yīng)當(dāng)經(jīng)過的路徑。(3)對(duì)SDP的要求 詳細(xì)介紹見表2.2所示。表2.2 SDP描述內(nèi)容1.協(xié)議版本v = 02.會(huì)話源o = 3 連接數(shù)據(jù)c = 4.時(shí)間描述t = 5.媒體級(jí)描述m = 6.屬性a = :(4)請(qǐng)求應(yīng)答包括請(qǐng)求和應(yīng)答兩個(gè)部分,下面先介紹一下請(qǐng)求方法

33、。SIP核心規(guī)范了6種請(qǐng)求方法,分別是:INVITE、 ACK 、BYE、 CANCEL、 REGISTER 、OPTIONS。.請(qǐng)求(INVITE)用于邀請(qǐng)用戶或服務(wù)參加一個(gè)會(huì)話。在INVITE請(qǐng)求的消息體中可對(duì)被叫方被邀請(qǐng)參加的會(huì)話加以描述,如主叫方能支持的媒體類型、發(fā)出的媒體及與其相應(yīng)的一些參數(shù);對(duì)INVITE請(qǐng)求的成功響應(yīng)必須有在響應(yīng)的消息體中說明被叫方愿意接收哪種媒體或者說明被叫方發(fā)出的媒體。假如Bob的用戶代理用SDP描述會(huì)話如下:v = 0o = Bob 12345678 84571644 IN IPv4 23s = I miss you I want to

34、 talk to youc = IN IPv4 23t = 0 0 m = audio 12345 RTP/AVP 0 Jack的用戶代理收到Bob 的INVITE邀請(qǐng)加入會(huì)話.根據(jù)會(huì)話描述,UA知道這是由Bob發(fā)起的,他想要在IP是23 ,UDP端口12345接受Jack聲音的實(shí)時(shí)傳輸協(xié)議(RTP)的數(shù)據(jù)包,并且知道它可以接收PCM編碼聲音。UA通知Jack并發(fā)出“180振鈴”給Bob的UA。當(dāng)Jack決定接聽時(shí),UA發(fā)送個(gè)最終應(yīng)答“200OK” 給Bob。.確認(rèn)(ACK)ACK請(qǐng)求用于客戶機(jī)向服務(wù)器證實(shí)它已經(jīng)收到了對(duì)INVITE請(qǐng)求的最終響應(yīng)。當(dāng)

35、客戶機(jī)沒有收到臨時(shí)應(yīng)答和最終應(yīng)答時(shí)就不斷重發(fā)INVITE請(qǐng)求(或者放棄INVITE請(qǐng)求),因?yàn)樗荒艽_定Jack是否收到請(qǐng)求或者消息在途中丟失了。只有請(qǐng)求客戶端才有權(quán)利發(fā)送ACK。.再見(BYE)用戶代理客戶機(jī)用BYE請(qǐng)求向服務(wù)器表明它想釋放呼叫??梢杂芍鹘蟹桨l(fā)出也可以由被叫方發(fā)出。呼叫的一方在釋放呼叫前必須發(fā)出BYE請(qǐng)求,收到BYE請(qǐng)求的這方必須停止發(fā)送媒體流給發(fā)出BYE請(qǐng)求的一方。.取消(CANCEL)用于取消一個(gè)Call-ID,To,From,和Cseq字段相同的下在進(jìn)行的請(qǐng)求,但是取消不了已經(jīng)完成的請(qǐng)求。如果電話很長(zhǎng)時(shí)間沒有人接聽,Bob決定取消請(qǐng)求,他就會(huì)發(fā)一個(gè)Cancel請(qǐng)求。Ja

36、ck 的UA收到請(qǐng)求后停止振鈴,會(huì)話沒有建立成功,發(fā)送一個(gè)ACK請(qǐng)求給Bob的UA。同樣也要三次握手:請(qǐng)求-取消事務(wù)-ACK。.注冊(cè)(REGISTER)用于客戶機(jī)向SIP服務(wù)器注冊(cè)列在To字段中的地址信息。用戶發(fā)送一個(gè)REGISTER請(qǐng)求給服務(wù)器通知他們當(dāng)前所在地。如Jack可以向Hust服務(wù)器的注冊(cè)員指示所有進(jìn)入到Hust的請(qǐng)求都可以在Sip:jack,或者重定為jack。這樣所有找Jack的請(qǐng)方便到一些可能的地方找到他。.選項(xiàng)(OPTIONS)用于向服務(wù)器查詢其能力。如果服務(wù)器認(rèn)為它能與用戶聯(lián)系,則可用一個(gè)能力集響應(yīng)OPTIONS請(qǐng)求;對(duì)于代理和重定向服務(wù)器只要轉(zhuǎn)發(fā)此請(qǐng)求,不用顯示其能力。

37、應(yīng)答當(dāng)服務(wù)器收到請(qǐng)求時(shí)就會(huì)作出一個(gè)應(yīng)答6,每個(gè)應(yīng)答都有一個(gè)代表事務(wù)狀態(tài)的編碼。狀態(tài)碼大小是100699,其中1XX是臨時(shí)應(yīng)答,其他的都是最終應(yīng)答。詳細(xì)介紹見表2.3。表2.3 應(yīng)答編碼及對(duì)應(yīng)狀態(tài)1XX(Informational)請(qǐng)求已經(jīng)收到、繼續(xù)處理請(qǐng)求2XX(Uccess)行動(dòng)已經(jīng)成功地收到,理解和接受3XX(Redirection)為完成呼叫請(qǐng)求,還須采取進(jìn)一步的動(dòng)作4XX(Client Error)請(qǐng)求有語法錯(cuò)誤或不能被服務(wù)器執(zhí)行,客戶機(jī)需修改請(qǐng)求5XX(Server Error)服務(wù)器出錯(cuò),不能執(zhí)行合法請(qǐng)求6XX(Global Failure)任務(wù)服務(wù)器都不能執(zhí)行請(qǐng)求(5)事務(wù). I

38、NVITE事務(wù)INVITE請(qǐng)求包含了一個(gè)三方的握手:客戶端事務(wù)發(fā)送一個(gè)INVITE,服務(wù)端事務(wù)返回一個(gè)應(yīng)答,客戶端事務(wù)發(fā)送一個(gè)ACK。采用逐跳的機(jī)制,保證每一個(gè)信令被成功向下一跳傳送。當(dāng)然不保存狀態(tài)機(jī)不能完成此任務(wù)。在傳輸中可以采用的不是同一個(gè)協(xié)議,服務(wù)器與服務(wù)器之間可能有點(diǎn)是UDP有的是TCP。在用戶端和Proxy中都要設(shè)立定時(shí)器,以備重發(fā)。發(fā)送一個(gè)INVITE請(qǐng)求發(fā)送一個(gè)請(qǐng)求必須保證TU是用INVITE請(qǐng)求來初始化一個(gè)新的客戶端事務(wù)。客戶端事務(wù)必須把請(qǐng)求發(fā)送到通訊層來進(jìn)行發(fā)送。SIP采用一種機(jī)制保證每一個(gè)INVITE請(qǐng)求成功的發(fā)往下一跳,路徑上Proxy有義務(wù)把INVITE向下一個(gè)Prox

39、y或終端UA發(fā)送。在可靠的傳輸協(xié)議上Proxy不需要做其它的事了;如果在不可靠的協(xié)議中,Proxy在收不到應(yīng)答時(shí)將每隔T重發(fā)請(qǐng)求,重發(fā)的時(shí)間間隔加倍。在無狀態(tài)的Proxy中不能完成此任務(wù)。當(dāng)Proxy收到請(qǐng)求時(shí),總會(huì)產(chǎn)生一個(gè)“100trying”應(yīng)答,防止請(qǐng)求端不斷重發(fā)請(qǐng)求。而請(qǐng)求的用戶代理可能產(chǎn)生任何的臨時(shí)響應(yīng),如“ 180ringing”。 應(yīng)答INVITE請(qǐng)求SIP不能保證臨時(shí)應(yīng)答都能夠到達(dá)呼叫者的UA,即使丟失了也不重傳。但對(duì)于最終應(yīng)答,不論是成功還是非成功應(yīng)答,SIP都是采用逐跳傳送,在不可靠的傳輸U(kuò)DP上傳輸時(shí),要不斷重傳請(qǐng)求,直到收到ACK。當(dāng)然在可靠的傳輸協(xié)議中也需要ACK應(yīng)答

40、,因?yàn)镾IP是三次握手協(xié)議。.非INVITE請(qǐng)求非INVITE事務(wù)并不使用ACK。他們只是簡(jiǎn)單的請(qǐng)求應(yīng)答的交互。對(duì)于非可靠的傳輸來說,請(qǐng)求是間隔T1倍增地傳輸。如果只收到了一個(gè)臨時(shí)應(yīng)答,到達(dá)到T2時(shí)如果沒有收到最終應(yīng)答,重傳繼續(xù)。這與INVITE事務(wù)不同,這樣做的目的是確保收到一個(gè)最終應(yīng)答。2.1.4 SIP運(yùn)作模式SIP 的呼叫建立如圖2.18所示,開始的時(shí)候caller 會(huì)送出SIPINVITE的訊息給callee,callee收到之后,會(huì)馬上響應(yīng)一個(gè)100 Ringing的訊息通知caller,說明目前callee 已經(jīng)收到INVITE 訊息且正在處理中,如果callee 愿意與call

41、er 通話,便會(huì)送出200 OK的response,最后caller 再送出ACK,此時(shí)便可以開始進(jìn)行會(huì)議。當(dāng)其中一方想結(jié)束通訊時(shí),便會(huì)送出BYE 的訊息來通知對(duì)方,對(duì)方響應(yīng)200 OK 便可以結(jié)束目前進(jìn)行會(huì)議。 Client (Caller/UA) Server(Callee/UAS)INVITE100:Trying180:Ringing200:OKACKBye200:OKRTP圖2.1 SIP 呼叫流程2.1.5 SIP未來發(fā)展問題目前來看,SIP協(xié)議并沒有在電信領(lǐng)域大規(guī)模應(yīng)用的先例,很多問題影響了SIP的未來發(fā)展方向。通過學(xué)習(xí)SIP協(xié)議和H323協(xié)議,我發(fā)現(xiàn)SIP還有很多問題急需解決,主

42、要包括以下幾點(diǎn):(1)SIP終端的智能性過強(qiáng),可能會(huì)給網(wǎng)絡(luò)帶來很多的安全問題。(2)用戶終端可以繞開運(yùn)營(yíng)商的管理直接向被叫用戶發(fā)起呼叫。(3)SIP網(wǎng)絡(luò)結(jié)構(gòu)采用平面化形式,運(yùn)營(yíng)商不便進(jìn)行管理和收費(fèi)。(4)與H323想比,SIP不具備點(diǎn)到點(diǎn)的會(huì)話控制能力,如控制一方成為主席或點(diǎn)名一方發(fā)言等。(5)SIP規(guī)范還不是很健全,很多信令規(guī)范存在安全隱患,一旦用戶不按規(guī)定進(jìn)行操作,或惡意對(duì)會(huì)議進(jìn)行破壞的話,系統(tǒng)不能采取相對(duì)有效的措施等。以上幾點(diǎn)是我自己總結(jié)出來的,有問題就要解決問題。整體來看,SIP的發(fā)展前景還是很好的,而且,SIP協(xié)議的規(guī)范和應(yīng)用也在不斷的進(jìn)行發(fā)展,以后SIP還可能應(yīng)用到其他領(lǐng)域,讓我們

43、拭目以待吧。2.2程序開發(fā)工具M(jìn)icrosoft Visual C+是運(yùn)行于Windows平臺(tái)上的交互式可視化繼承開發(fā)環(huán)境。它是Microsoft Visual Studio家族的成員之一。Visual C+之所以稱為集成開發(fā)環(huán)境,是因?yàn)樗绦虻拇a編輯、編譯、連接和調(diào)試等功能于一體,給編程人員提供了一個(gè)完整而方便的開發(fā)環(huán)境,并提供許多有效的協(xié)助開發(fā)工具,如SourceSafe等。Visual C+的AppWizard可以為大部分類型的應(yīng)用程序提供框架代碼,用戶無需書寫代碼,只需要簡(jiǎn)單的單擊幾個(gè)按鈕就可以生成簡(jiǎn)單的可以運(yùn)行的程序框架。與其他的可視化開發(fā)環(huán)境比較,除了共同的優(yōu)點(diǎn)之外,Visua

44、l C+還具有許多優(yōu)勢(shì)。雖然使用Visual C+設(shè)計(jì)一些非常簡(jiǎn)單的程序時(shí),可能體現(xiàn)不出其優(yōu)勢(shì),甚至還很麻煩,需要書寫很多的代碼,但當(dāng)用戶需要完成更靈活的、特定的界面時(shí),使用Visual C+則更加方便,它可以讓用戶“隨心所欲”。由于Visual C+基于C+語言,并且來自Windows操作系統(tǒng)本身的開發(fā)者M(jìn)icrosoft公司,因此,在眾多的可視化集成開發(fā)環(huán)境中,它是開發(fā)Windows應(yīng)用程序的最佳選擇。Osip2是一個(gè)開放源代碼的sip協(xié)議棧,是開源代碼中不多使用C語言寫的協(xié)議棧之一,它具有短小簡(jiǎn)潔的特點(diǎn),專注于sip底層解析使得它的效率比較高。eXosip是Osip2的一個(gè)擴(kuò)展協(xié)議集,它

45、部分封裝了Osip2協(xié)議棧,使得它更容易被使用。2.2.1 Visual C+ 6.0具體特點(diǎn)15Visual C+ 6.0是微軟公司在多年使用、不斷改進(jìn)的基礎(chǔ)上推出的用于支持Win95以上的平臺(tái)應(yīng)用程序(Applications)、服務(wù)(Service)和控件(Control)的開放環(huán)境。Visual C+ 6.0是一個(gè)典型的集成開發(fā)環(huán)境IDE(Integrated Develop Enviroment),它集編輯、編譯、鏈接和調(diào)試等功能于一體,是一系列開發(fā)工具的組合。具有以下特點(diǎn):開放環(huán)境Visual Studio由一套繼承工具組成,用于開發(fā)WVIN 32(in95/98或Windows

46、NT)環(huán)境下運(yùn)行的應(yīng)用程序。提供功能強(qiáng)大的向?qū)Чぞ撸∕FC AppWizard、Class Wizard)。Developer Studio 的項(xiàng)目工作區(qū)的形式組織元件、項(xiàng)目及項(xiàng)目等配置。MFC類庫支持多線程應(yīng)用程序開發(fā)。具有Windows Socket和Mapi支持,可以與網(wǎng)絡(luò)及Email連接。最快的繼承數(shù)據(jù)庫訪問,允許用戶適應(yīng)強(qiáng)有力的數(shù)據(jù)庫應(yīng)用程序。具有強(qiáng)有力的Internet支持,對(duì)OLE提供強(qiáng)有力支持。2.2.2 MFC類庫對(duì)于任何一種操作系統(tǒng),如果想在其上進(jìn)行應(yīng)用程序開發(fā),那么就必須了解它所提供的API(Application Program Interface,應(yīng)用程序接口)。如果

47、說以前的標(biāo)準(zhǔn)Windows API函數(shù)庫是用于編寫Windows應(yīng)用程序的C函數(shù)庫,那么MFC(Microsoft Foundation Class)則是用于編寫Windows應(yīng)用程序的C+類庫。本文在程序設(shè)計(jì)時(shí)選擇了C+語言,用到了MFC類庫。MFC完整的封裝Windows API函數(shù),而且包括具有共性的應(yīng)用程序操作,如打印、狀態(tài)條和工具欄等。MFC庫具有與C語言為基礎(chǔ)的Windows API開發(fā)的的Windows應(yīng)用程序共存的能力。在同一程序中,用戶可以同時(shí)使用MFC中的類和Windows API函數(shù),為混合編程提供了方便。MFC提供了自動(dòng)消息處理功能。MFC庫將自動(dòng)處理每一條Window

48、s消息,并且每一條Windows消息都被直接映射到一個(gè)進(jìn)行相應(yīng)處理的成員函數(shù)。MFC提供了面向?qū)ο蟮腤indows應(yīng)用程序接口,與傳統(tǒng)的Windows API相比較,它具有以下一些明顯的優(yōu)勢(shì):.有效簡(jiǎn)化了編寫Windows應(yīng)用程序的難度。與C語言API具有相當(dāng)?shù)膱?zhí)行速度,使經(jīng)常使用的代碼量最小化。有能夠直接調(diào)用任何一個(gè)API函數(shù)的能力。比C語言的Windows API更易使用。更容易使用一些強(qiáng)大的復(fù)雜功能的抽象概念,如ActiveX、打印、工具欄和狀態(tài)欄等。2.2.3 Osip2和EXosip協(xié)議棧的分析(1)SIP協(xié)議棧的介紹Osip2是一個(gè)開放源代碼的sip協(xié)議棧,是開源代碼中不多使用C語

49、言寫的協(xié)議棧之一,它具有短小簡(jiǎn)潔的特點(diǎn),專注于sip底層解析使得它的效率比較高。但缺點(diǎn)也很明顯,首先就是可用性差,沒有很好的api封裝,使得上層應(yīng)用在調(diào)用協(xié)議棧時(shí)很破碎;其次,只做到了transaction層次的協(xié)議過程解析,缺少call、session、dialog等過程的解析,這也增加了使用的難度;再次,缺少線程并發(fā)處理的機(jī)制,使得它的處理能力有限。eXosip是Osip2的一個(gè)擴(kuò)展協(xié)議集,它部分封裝了Osip2協(xié)議棧,使得它更容易被使用。eXosip增加了call、dialog、registration、subscription等過程的解析,使得實(shí)用性更強(qiáng)。但是eXosip局限于UA的實(shí)

50、現(xiàn),使得它用于registrar、sip server等應(yīng)用時(shí)極其不容易。另外,它并沒有增加線程并發(fā)處理的機(jī)制。而且只實(shí)現(xiàn)了音頻支持,缺少對(duì)視頻和其它數(shù)據(jù)格式的支持。綜合來說,Osip2加上eXosip協(xié)議棧仍然是個(gè)實(shí)現(xiàn)Sip協(xié)議不錯(cuò)的選擇。當(dāng)然需要根據(jù)不同的需求來增加更多的內(nèi)容。(2)SIP協(xié)議棧的組成協(xié)議棧大致可以分為三部分:sip協(xié)議的語法分析、sip協(xié)議的過程分析和協(xié)議??蚣?。下面以osip 為例加以闡述。.ip協(xié)議的語法分析主要是osipparser2部分,目前支持RFC3261和RFC3265定義的sip協(xié)議消息,包括INVITE、ACK、OPTIONS、CANCEL、BYE、SU

51、BSCRIBE、NOTIFY、MESSAGE、REFER和INFO。不支持RFC3262定義的PRACK。遵循RFC3264關(guān)于SDP的offer/answer模式。帶有SDP的語法分析。支持MD5加解密算法。支持Authorization、www_authenticate和proxy_authenticate。.ip協(xié)議的過程分析主要是osip2部分,基于RFC3261、RFC3264和RFC3265的sip協(xié)議描述過程,圍繞transaction這一層來實(shí)現(xiàn)sip的解析。Transaction是指一個(gè)發(fā)送方和接收方的交互過程,由請(qǐng)求和應(yīng)答組成。請(qǐng)求分為Invite類型和Non-Invite

52、類型。應(yīng)答分為響應(yīng)型的應(yīng)答和確認(rèn)型的應(yīng)答。響應(yīng)型的應(yīng)答是指這個(gè)應(yīng)答僅代表對(duì)方收到請(qǐng)求。請(qǐng)求經(jīng)過處理后都必須返回確認(rèn)型的應(yīng)答。響應(yīng)型的應(yīng)答有1xx,確認(rèn)型的應(yīng)答包括2xx、3xx、4xx、5xx和6xx。一個(gè)transaction由一個(gè)請(qǐng)求和一個(gè)或多個(gè)響應(yīng)型應(yīng)答、一個(gè)確認(rèn)型應(yīng)答組成。Transaction根據(jù)請(qǐng)求的不同和發(fā)送/接收的不同可以分為四類:ict、nict、ist和nist。.Ict是指Invite client transaction,就是會(huì)話邀請(qǐng)的發(fā)起方。.Nict是指Non-Invite client transaction,是指非邀請(qǐng)會(huì)話的發(fā)起方。.Ist是指Invite se

53、rver tranaction,是指會(huì)話邀請(qǐng)的接收方。.Nist是指Non-Invite server transaction,是指非邀請(qǐng)會(huì)話的接收方。每種類型的transaction都有自己相應(yīng)的狀態(tài)機(jī),Osip2協(xié)議棧根據(jù)狀態(tài)機(jī)來處理所有的sip事件,所以這部分就是整個(gè)協(xié)議棧的核心。但是因?yàn)镺sip2只做到transaction這一層,所以它可以忽略掉call、registration等應(yīng)用的復(fù)雜性,顯得相當(dāng)簡(jiǎn)單,這就使得需要使用它的應(yīng)用必須要自己處理應(yīng)用的邏輯。必須注意的一點(diǎn)是,transaction的資源在Osip里是由協(xié)議棧負(fù)責(zé)釋放的,但是在Osip2里改成由使用的應(yīng)用負(fù)責(zé)釋放。.議

54、??蚣芸蚣懿⒉皇侵复a的某一部分,而是指它的構(gòu)成形式。主要有三部分:底層套接字接收/發(fā)送,模塊間通信管道,上層調(diào)用api接口。Osip2并不實(shí)現(xiàn)底層套接字的接收/發(fā)送,由eXosip實(shí)現(xiàn),現(xiàn)在只支持UDP的鏈路連接。模塊間的通信管道包括:transaction的消息管道、jevent的消息管道。Transaction的消息管道是驅(qū)動(dòng)其狀態(tài)機(jī)的部件,通過不斷的接收來自底層套接字的遠(yuǎn)端信令,或者來自上層調(diào)用的指令,根據(jù)上述的狀態(tài)機(jī)制來驅(qū)動(dòng)這個(gè)transaction的運(yùn)轉(zhuǎn)。Jevent的消息管道是eXosip實(shí)現(xiàn)的,用于匯報(bào)底層事件,使得調(diào)用程序能處理感興趣的事件。上層調(diào)用的api接口大致有兩類:sip協(xié)議的調(diào)用接口和sdp協(xié)議的調(diào)用接口。EXosip封裝了大部分的sip協(xié)議調(diào)用接口,一般來說都不需要直接調(diào)用osip2的接口函數(shù)。接口函數(shù)很多,在這里就不詳述了,函數(shù)定義請(qǐng)參照源代碼部分的注釋。(3)Osip的應(yīng)用在使用oSIP前必須先初始化oSIP,主要調(diào)用函數(shù)osip_global_init()和osip_init(),具體操作代碼如下:/osip_t *osip; / initialise internal element first if (0!=os

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論