版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
最近在學(xué)習SIP協(xié)議的相關(guān)知識,于是上網(wǎng)搜集了部分內(nèi)容,主要包括SIP協(xié)議的概要介紹,SIP所
涉及到得相關(guān)協(xié)議,SIP開源軟件介紹,SIP基礎(chǔ)編程范例。
SIP協(xié)議全方位概要介紹
轉(zhuǎn)載自:出處:中國電信
摘要:SIP協(xié)議是NGN中的重要協(xié)議,越來越得到業(yè)界的重視。本文通過SIP協(xié)議的背景、功能、
網(wǎng)絡(luò)元素、實現(xiàn)機制、以及SIP消息的組成等幾個方面對SIP協(xié)議做了全方位的概要性介紹,以使
讀者對SIP有初步的概念和認識。
一、SIP協(xié)議的背景和功能
SIP(會話初始協(xié)議)的開發(fā)目的是用來幫助提供跨越因特網(wǎng)的高級電話業(yè)務(wù)。因特網(wǎng)電話(IP
電話)正在向一種正式的商業(yè)電話模式演進,SIP就是用來確保這種演進實現(xiàn)而需要的NGN(下一
代網(wǎng)絡(luò))系列協(xié)議中重要的一員。
SIP是IETF標準進程的一部分,它是在諸如SMTP(簡單郵件傳送協(xié)議)和HTTP(超文本傳送
協(xié)議)基礎(chǔ)之上建立起來的。它用來建立,改變和終止基于IP網(wǎng)絡(luò)的用戶間的呼叫。為了提供電話
業(yè)務(wù)它還需要結(jié)合不同的標準和協(xié)議:特別是需要確保傳輸(RTP),與當前電話網(wǎng)絡(luò)的信令互連,
能夠確保語音質(zhì)量(RSVP),能夠提供目錄(LDAP),能夠鑒權(quán)用戶(RADIUS)等等。
SIP被描述為用來生成,修改和終結(jié)一個或多個參與者之間的會話。這些會話包括因特網(wǎng)多媒體
會議,因特網(wǎng)(或任何IP網(wǎng)絡(luò))電話呼叫和多媒體發(fā)布。會話中的成員能夠通過多播或單播聯(lián)系的
網(wǎng)絡(luò)來通信。SIP支持會話描述,它允許參與者在一組兼容媒體類型上達成一致。它同時通過代理和
重定向請求到用戶當前位置來支持用戶移動性。SIP不與任何特定的會議控制協(xié)議捆綁。
本質(zhì)上,SIP提供以下功能:
名字翻譯和用戶定位:無論被呼叫方在哪里都確保呼叫達到被叫方。執(zhí)行任何描述信息到定位信
息的映射。確保呼叫(會話)的本質(zhì)細節(jié)被支持。
特征協(xié)商:它允許與呼叫有關(guān)的組(這可以是多方呼叫)在支持的特征上達成一致(注意:不是
所有方都能夠支持相同級別的特征)。例如視頻可以或不可以被支持。總之,存在很多需要協(xié)商的范
圍。
呼叫參與者管理:呼叫中參與者能夠引入其它用戶加入呼叫或取消到其它用戶的連接。此外,用
戶可以被轉(zhuǎn)移或置為呼叫保持。
呼叫特征改變:用戶應(yīng)該能夠改變呼叫過程中的呼叫特征。例如,一呼叫可以被設(shè)置為
''voice-only",但是在呼叫過程中,用戶可以需要開啟視頻功能。也就是說一個加入呼叫的第三方為
了加入該呼叫可以開啟不同的特征。
二、SIP網(wǎng)絡(luò)元素
SIP中有兩個要素。SIP用戶代理和SIP網(wǎng)絡(luò)服務(wù)器。用戶代理是呼叫的終端系統(tǒng)元素,而SIP
服務(wù)器是處理與多個呼叫相關(guān)聯(lián)信令的網(wǎng)絡(luò)設(shè)備。
用戶代理本身具有一客戶機元素(用戶代理客戶機UAC)和一服務(wù)器元素(用戶代理服務(wù)器UAS)。
客戶機元素初始呼叫而服務(wù)器元素應(yīng)答呼叫。這允許點到點的呼叫通過客戶機-服務(wù)器協(xié)議來完成。
SIP服務(wù)器元素提供多種類型的服務(wù)器。有三種服務(wù)器形式存在于網(wǎng)絡(luò)中--SIP有狀態(tài)代理服務(wù)
器,SIP無狀態(tài)代理服務(wù)器和SIP重定向服務(wù)器。由于呼叫者未必知道被呼叫方的IP地址或主機名,
SIP服務(wù)器的主要功能是提供名字解析和用戶定位??梢垣@得的是email形式的地址或與被呼叫方關(guān)
聯(lián)的電話號碼。使用該信息,呼叫者的用戶代理能夠確定特定服務(wù)器來解析地址信息--這可能涉及網(wǎng)
絡(luò)中很多服務(wù)器。
SIP代理服務(wù)器接收請求,決定將這些請求傳送到何處,并且將它們傳送到下一服務(wù)器(使用下
一跳路由原理)。在網(wǎng)絡(luò)中可以有多跳。
有狀態(tài)和無狀態(tài)代理服務(wù)器的區(qū)別是有狀態(tài)代理服務(wù)器記住它接收的入請求,以及回送的響應(yīng)和
它轉(zhuǎn)送的出請求。無狀態(tài)代理服務(wù)器一旦轉(zhuǎn)送請求后就忘記所有的信息。這允許有狀態(tài)代理服務(wù)器生
成請求以并行地嘗試多個可能的用戶位置并且送回最好的響應(yīng)。無狀態(tài)代理服務(wù)器可能是最快的,并
且是SIP結(jié)構(gòu)的骨干。有狀態(tài)代理服務(wù)器可能是離用戶代理最近的本地設(shè)備,它控制用戶域并且是應(yīng)
用服務(wù)的主要平臺。
重定向服務(wù)器接收請求,但不是將這些請求傳遞給下一服務(wù)器而是向呼叫者發(fā)送響應(yīng)以指示被呼
叫用戶的地址。這使得呼叫者可以直接聯(lián)系在下一服務(wù)器上被呼叫方的地址。
三、SIP協(xié)議的實現(xiàn)機制
SIP是一個分層結(jié)構(gòu)的協(xié)議,這意味著它的行為根據(jù)一組平等獨立的處理階段來描述,每一階段
之間只是松耦合。協(xié)議分層描述是為了表達,從而允許功能的描述可在一個部分跨越幾個元素。它不
指定任何方式的實現(xiàn)。當我們說某元素包含某層,我們是指它順從該層定義的規(guī)則集。
不是協(xié)議規(guī)定的每個元素都包含各層。而且,由SIP規(guī)定的元素是邏輯元素,不是物理元素。一
個物理實現(xiàn)可以選擇作為不同的邏輯元素,甚至可能在一個個事務(wù)的基礎(chǔ)上。
SIP的最底層是語法和編碼。它的編碼使用增強Backus-Nayr形式語法(BNF)來規(guī)定。
第二層是傳輸層。它定義了網(wǎng)絡(luò)上一個客戶機如何發(fā)送請求和接收響應(yīng)以及一個服務(wù)器如何接收
請求和發(fā)送響應(yīng)。所有的SIP元素包含傳輸層。
第三層是事務(wù)層。事務(wù)是SIP的基本元素。一個事務(wù)是由客戶機事務(wù)發(fā)送給服務(wù)器事務(wù)的請求(使
用傳輸層),以及對應(yīng)該請求的從服務(wù)器事務(wù)發(fā)送回客戶機的所有響應(yīng)組成。事務(wù)層處理應(yīng)用層重傳,
匹配響應(yīng)到請求,以及應(yīng)用層超時。任何用戶代理客戶機(UAC)完成的任務(wù)使用一組事務(wù)產(chǎn)生。用
戶代理包含一個事務(wù)層,有狀態(tài)的代理也有。無狀態(tài)的代理不包含事務(wù)層。事務(wù)層具有客戶機組成部
分(稱為客戶機事務(wù))和服務(wù)器組成部分(稱為服務(wù)器事務(wù)),每個代表有限的狀態(tài)機,它被構(gòu)造來
處理特定的請求。
事務(wù)層之上的層稱為事務(wù)用戶(TU)o每個SIP實體,除了無狀態(tài)代理,都是事務(wù)用戶。當一個
TU希望發(fā)送請求,它生成一個客戶機事務(wù)實例并且向它傳遞請求和IP地址,端口,和用來發(fā)送請求
的傳輸機制。一個TU生成客戶機事務(wù)也能夠刪除它。當客戶機取消一個事務(wù)時,它請求服務(wù)器停止
進一步的處理,將狀態(tài)恢復(fù)到事務(wù)初始化之前,并且生成特定的錯誤響應(yīng)到該事務(wù)。這由CANCEL
請求完成,它構(gòu)成自己的事務(wù),但涉及要取消的事務(wù)。
SIP通過EMAIL形式的地址來標明用戶地址。每一用戶通過一等級化的URL來標識,它通過諸
如用戶電話號碼或主機名等元素來構(gòu)造(例如:SIP:)。因為它與EMAIL地址
的相似性,SIPURLs容易于用戶的EMAIL地址關(guān)聯(lián)。
SIP提供它自己的可靠性機制從而獨立于分組層,并且只需不可靠的數(shù)據(jù)包服務(wù)即可。SIP可典
型地用于UDP或TCP之上。
SIP提供必要的協(xié)議機制以保證終端系統(tǒng)和代理服務(wù)器提供以下業(yè)務(wù):
?用戶定位
?用戶能力
?用戶可用性
?呼叫建立
?呼叫處理
?呼叫前轉(zhuǎn),包括:(1)等效800類型的呼叫,(2)無應(yīng)答呼叫前轉(zhuǎn),(3)遇忙呼叫前轉(zhuǎn),
(4)無條件呼叫前轉(zhuǎn)
?呼叫號碼傳遞,該號碼可以是任何命名機制。
?個人移動性,例如通過一個單一的、位置無關(guān)的地址來到達被呼叫方,即使被呼叫方改變了終
端。
?終端類型的協(xié)商和選擇:呼叫者可以給出選擇如何到達對方,例如通過因特網(wǎng)電話,移動電話
或應(yīng)答業(yè)務(wù)等。
?終端能力協(xié)商
?呼叫者和被呼叫者鑒權(quán)
?不知情和指導(dǎo)式的呼叫轉(zhuǎn)移
?多播會議的邀請
當一用戶希望呼叫另一用戶,呼叫者用INVITE請求初始呼叫,請求包含足夠的信息用以被呼叫
方參與會話。如果客戶機知道另一方的位置它能夠直接將請求發(fā)送到另一方的IP地址。如果不知道,
客戶機將請求發(fā)送到本地配置的SIP網(wǎng)絡(luò)服務(wù)器。如果服務(wù)器是代理服務(wù)器它將解析被呼叫用戶的位
置并且將請求發(fā)送給它們。有很多方法完成上步,例如搜索DNS或訪問數(shù)據(jù)庫。服務(wù)器也可以是重
定向服務(wù)器,它可以返回被呼叫用戶的位置到呼叫客戶機用以它直接與用戶聯(lián)系。在定位用戶的過程
中,SIP網(wǎng)絡(luò)服務(wù)器當然能夠代理或重定向呼叫到其它的服務(wù)器,直到到達一個明確地知道被呼叫用
戶IP地址的服務(wù)器。
一旦發(fā)現(xiàn)用戶地址,請求就發(fā)送給該用戶,此時將產(chǎn)生幾種選擇。在最簡單的情況,用戶電話客
戶機接收請求一一也就是,用戶的電話振鈴。如果用戶接受呼叫,客戶機用客戶機軟件的指定能力響
應(yīng)請求并且建立連接。如果用戶拒絕呼叫,會話將被重定向到語音郵箱服務(wù)器或另一用戶。''指定能
力''參照用戶想啟用的功能。例如,客戶機軟件可以支持視頻會議,但用戶只想使用音頻會議,那則
只會啟用音頻功能。
SIP還具有另外兩個有重要意義的特征。第一個是有狀態(tài)SIP代理服務(wù)器具有分割入呼叫或復(fù)制
入呼叫的能力,從而可以同時運行幾個擴展分支。第一個應(yīng)答的分支接受呼叫。該特征在用戶工作在
兩位置之間(例如實驗室和辦公室)或者同時對經(jīng)理和其秘書振鈴時是非常便利的。
第二個特征是SIP獨特的返回不同媒體類型的能力。舉個用戶聯(lián)系公司的例子。當SIP服務(wù)器接
收到客戶機的連接請求,它能夠通過WEB交互式語音響應(yīng)頁面來返回到顧客的客戶機,該頁面具有
可獲得的部門分支或提供在列表上的用戶。點擊適當?shù)逆溄雍髮l(fā)送一請求到所點擊選擇的用戶從而
建立起呼叫。
四、SIP消息的組成
有兩種類型的SIP消息:
?請求:從客戶機發(fā)到服務(wù)器
?響應(yīng):從服務(wù)器發(fā)到客戶機
SIP請求消息包含三個元素:請求行、頭、消息體。
SIP響應(yīng)消息包含三個元素:狀態(tài)行、頭、消息體。
請求行和頭域根據(jù)業(yè)務(wù)、地址和協(xié)議特征定義了呼叫的本質(zhì),消息體獨立于SIP協(xié)議并且可包含
任何內(nèi)容。
SIP定義了下述方法:
INVITE一一邀請用戶加入呼叫。
BYE一一終止一呼叫上的兩個用戶之間的呼叫。
OPTIONS——請求關(guān)于服務(wù)器能力的信息。
ACK一一確認客戶機已經(jīng)接收到對INVITE的最終響應(yīng)。
REGISTER——提供地址解析的映射,讓服務(wù)器知道其它用戶的位置。
INFO一一用于會話中信令。
五、結(jié)束語
SIP協(xié)議憑借其簡單、易于擴展、便于實現(xiàn)等諸多優(yōu)點越來越得到業(yè)界的青睞,它正逐步成為NGN
(下一代網(wǎng)絡(luò))和3G多媒體子系統(tǒng)域中的重要協(xié)議,并且市場上出現(xiàn)越來越多的支持SIP的客戶端
軟件和智能多媒體終端,以及用SIP協(xié)議實現(xiàn)的服務(wù)器和軟交換設(shè)備。雖然SIP協(xié)議目前還不成熟,
但可以預(yù)見SIP必定是將來網(wǎng)絡(luò)多媒體通信中的明星。
SIP開源軟件介紹
要在windows或者linux平臺下開發(fā)基于SIP的軟電話,需要以下軟件
服務(wù)器端軟件:注冊多個客戶端到服務(wù)器上,可以進行通話測試
SIP客戶端軟件:主要用于測試,可以對別人已經(jīng)完成的客戶端進行抓包,以比對自己程序的發(fā)包
數(shù)據(jù)
SIP協(xié)議棧:基于某個現(xiàn)成的SIP協(xié)議棧來開發(fā)會加快開發(fā)進度
RTP棧:傳輸語言或者視頻數(shù)據(jù)的協(xié)議棧
抓包測試工具:調(diào)試網(wǎng)絡(luò)程序最有效的辦法
以下介紹這些軟件主要以開源軟件為主
-服務(wù)器端軟件
1.Asterisk:Linux系統(tǒng)下開源的IPPBX,功能強大穩(wěn)定,主要用c語言開發(fā)。配置稍麻煩。
/
2.Vocal:Linux系統(tǒng)下開源的SIP服務(wù)器端??梢宰鳛镮PPBX也可以作為運營系統(tǒng)。很多voip
虛擬運營商都用這個作為自己的運營系統(tǒng)。提供BS結(jié)構(gòu)的管理界面。/
3.YATE:跨平臺(Linux,Windows)的開源SIP服務(wù)器端。在windows下安裝非常簡單。其
他方面沒有進行過測試。http://yate.null.ro/pmwiki/
4.SER:Linux平臺下重量級的SIP服務(wù)器斷。功能比較豐富,也是很多voip虛擬運營商的系統(tǒng)
選擇。不過據(jù)說配置比較麻煩,具體沒有試過。/ser/
5.sipX:Linux平臺下的SIP服務(wù)器。這個好像不能作為客戶端再次注冊到其他SIP服務(wù)器上。
提供BS結(jié)構(gòu)的管理界面。
二SIP客戶端軟件
1.WindowsMessenger5.1:微軟出的SIP客戶端,操作方便。
2.YATEClient:跨平臺(Linux,Windows)的開源SIP客戶端軟件。安裝方便,功能簡單。
http://yate.null.ro/pmwiki/
3.xten:windows平臺下的SIP軟電話。功能齊全,使用方便。/
三SIP協(xié)議棧
1.osip:跨平臺的開源SIP協(xié)議棧。用c語言實現(xiàn),體積小。http:〃/software/osip/
2.exosip:對osip進行封裝,使其方便SIP客戶端軟件開發(fā)。同樣開源跨平臺。
/projects/exosip/
3.sipXtackLib:由SIPfoundry提供的開源跨平臺的SIP協(xié)議棧,功能齊全。C++開發(fā),已經(jīng)被
用于開發(fā)數(shù)個商業(yè)SIP終端。
四RTP棧
1.JRTPLIB:開源的跨平臺rtp棧,用C++語言開發(fā),使用方便。
http://research.edm.uhasselt.be/~jori/page/index.php?n=CS.Jrtplib
五抓包測試工具
1.Wireshark:非常有名的開源跨平臺網(wǎng)絡(luò)抓包工具,以前叫做Ethereal。
/
幾種開源SIP協(xié)議棧對比
隨著VoIP和NGN技術(shù)的發(fā)展,H.323時代即將過渡到SIP時代,在H.323的開源協(xié)議棧中,
Openh323占統(tǒng)治地位,它把一個復(fù)雜而又先進的H.323協(xié)議棧展現(xiàn)在普通程序員的眼前,為
H.323普及立下了汗馬功勞。而然當在SIP時代,則出現(xiàn)了群雄割據(jù)的狀況,SIP相對于H.323
簡單,靈活,于是各種協(xié)議棧層出不窮,下面將詳細對比最具有代表性的5個開源項目:
OPAL,VOCAL,sipX,ReSIProcate,oSIP
OPAL是OpenPhoneAbstractionLibrary,是Openh323的下一個版本,它仍然使用了
Openh323的體系結(jié)構(gòu),并在其基礎(chǔ)上進行擴展,同時實現(xiàn)了SIP,H.323,但在音頻和視頻的編碼
和傳輸部分有較大改動。OPAL初衷設(shè)計是包含任何電話通信協(xié)議,所以其底層進行了高度的抽象化,
所以也能夠很容易的支持MGCP,PSTN和將來會出現(xiàn)的協(xié)議。不過由于Openh323的最后一個版
本還在開發(fā)中,所以原本6月發(fā)布的OPAL也被推遲,現(xiàn)有的OPAL還非常不完善,BUG也非常多,
不過相信以O(shè)penh323的開發(fā)班底,一定能讓OPAL十分優(yōu)秀。
CVS::pserver:anonymous@:/cvsroot/openh323/opal
Language:C++
VxWorksport:Yes
Win32port:Yes
Linuxport:Yes
SupportsRFC3261:Yes
SupportsRFC2327:Yes
SupportsRFC3264:Yes
SupportsRFC3263:No
SupportsRFC3515:Yes
SupportsRFC3262:No
SupportsRFC3311:No
TCP:Yes
UDP:Yes
SIZE:8MB
License:MPL
Document:None
Samples:UA,GK
VOCAL是開發(fā)的SIP系統(tǒng),VOCAL應(yīng)該是目前功能最完善,使用者最多的開源
SIP協(xié)議棧了.它不只包括了協(xié)議棧,還包括了h323與sip轉(zhuǎn)換網(wǎng)關(guān),對SIP的各種Serve「的功
能支持也非常完善,不過很可惜,不支持windows平臺,而且自從vovida被CISCO收購以后就停
止了開發(fā),最后的版本是2003年4月的L5.0。
CVS::pserver:anonymous@:/cvsroot/vocal
Language:C++
VxWorksport:No
Win32port:Partial
Linuxport:Yes
SupportsRFC3261:Partial
SupportsRFC2327:Yes
SupportsRFC3264:
SupportsRFC3263:
SupportsRFC3515:Yes
SupportsRFC3262:
SupportsRFC3311:
TCP:Yes
UDP:Yes
SIZE:6MB
License:Vovidasoftwarelicencse
Document:Few
Samples:UA,GK,GW
sipX是一個SIP系統(tǒng),由SIPFoundry開發(fā)。sipX是從reSIProcate分離出來的,sipX除了
包括SIPstack外,還包括了sipXphone,sipXproxy,sipXregistry等等…,由它們構(gòu)成了完整的
SIP系統(tǒng),而且sipx還支持嵌入式系統(tǒng),各個模塊可以按需取舍。不過可惜是幾乎沒有任何開發(fā)文
檔。
SVN:/viewsvn/
Language:C++
VxWorksport:Yes
Win32port:Yes
Linuxport:Yes
SupportsRFC3261:Yes
SupportsRFC2327:Yes
SupportsRFC3264:Yes
SupportsRFC3263:Yes
SupportsRFC3515:Yes
SupportsRFC3262:No
SupportsRFC3311:No
TCP:Yes
UDP:Yes
SIZE:<4Mb
License:LGPL
Document:None
Samples:UA,GK,GW
ReSIProcate同樣也是由SIPFoundry開發(fā),ReSIProcate最開始起源于Vocal,由于Vocal
開始只支持rfc3254,為了支持最新的rfc3261,ReSIProcate誕生了,但現(xiàn)在,ReSIProcate已
經(jīng)成為一個獨立SIP協(xié)議棧了,它十分穩(wěn)定,并且很多商業(yè)程序都在使用。
SVN:/viewsvn/resiprocate/main/sip/
Language:C++
VxWorksport:No
Win32port:Yes
Linuxport:Yes
SupportsRFC3261:Yes
SupportsRFC2327:Yes
SupportsRFC3264:Yes
SupportsRFC3263:Partial
SupportsRFC3515:Yes
SupportsRFC3262:No
SupportsRFC3311:No
TCP:Yes
UDP:Yes
SIZE:<2.5Mb
License:Vovida
Document:Few
Samples:None
OSIP的開發(fā)開始于2000年7月,第一個版本在2001年5月發(fā)布,到現(xiàn)在已經(jīng)發(fā)展到2.0.9
了。它采用ANSIC編寫,而且結(jié)構(gòu)簡單小巧,所以速度特別快,它并不提供高層的SIP會話控制
API,它主要提供一些解析SIP/SDP消息的API和事務(wù)處理的狀態(tài)機,oSIP的作者還開發(fā)了基于
oSIP的UAlib:exosip和proxyserverlib:partysip.
CVS::ext:anoncvs@:/cvsroot/osip
Language:C
VxWorksport:Yes
Win32port:Yes
Linuxport:Yes
SupportsRFC3261:Yes
SupportsRFC2327:Yes
SupportsRFC3264:Yes
SupportsRFC3263:Yes
SupportsRFC3515:No
SupportsRFC3262:No
SupportsRFC3311:Yes
TCP:Yes
UDP:Yes
SIZE:400kb
License:LGPL
Samples:UA,GK
綜合上述評測,可以看出5種SIP協(xié)議棧各有千秋,OPAL有發(fā)展?jié)摿?,VOCAL比較完善,sipX
兼容性好,ReSIProcdte教穩(wěn)定,oSIP小巧而快速。所以要根據(jù)應(yīng)用的不同選擇恰當?shù)膮f(xié)議棧進行
研究開發(fā)要在windows或者linux平臺下開發(fā)基于SIP的軟電話,需要以下軟件
服務(wù)器端軟件:注冊多個客戶端到服務(wù)器上,可以進行通話測試
SIP客戶端軟件:主要用于測試,可以對別人已經(jīng)完成的客戶端進行抓包,以比對自己程序的發(fā)包
數(shù)據(jù)
SIP協(xié)議棧:基于某個現(xiàn)成的SIP協(xié)議棧來開發(fā)會加快開發(fā)進度
RTP棧:傳輸語言或者視頻數(shù)據(jù)的協(xié)議棧
抓包測試工具:調(diào)試網(wǎng)絡(luò)程序最有效的辦法
以下介紹這些軟件主要以開源軟件為主
-服務(wù)器端軟件
1.Asterisk:Linux系統(tǒng)下開源的IPPBX,功能強大穩(wěn)定,主要用c語言開發(fā)。配置稍麻煩。
/
2.Vocal:Linux系統(tǒng)下開源的SIP服務(wù)器端。可以作為IPPBX也可以作為運營系統(tǒng)。很多voip
虛擬運營商都用這個作為自己的運營系統(tǒng)。提供BS結(jié)構(gòu)的管理界面。/
3.YATE:跨平臺(Linux,Windows)的開源SIP服務(wù)器端。在windows下安裝非常簡單。其
他方面沒有進行過測試。http://yate.null.ro/pmwiki/
4.SER:Linux平臺下重量級的SIP服務(wù)器斷。功能比較豐富,也是很多voip虛擬運營商的系統(tǒng)
選擇。不過據(jù)說配置比較麻煩,具體沒有試過。/ser/
5.sipX:Linux平臺下的SIP服務(wù)器。這個好像不能作為客戶端再次注冊到其他SIP服務(wù)器上。
提供BS結(jié)構(gòu)的管理界面。
二SIP客戶端軟件
1.WindowsMessenger5.1:微軟出的SIP客戶端,操作方便。
2.YATEClient:跨平臺(Linux,Windows)的開源SIP客戶端軟件。安裝方便,功能簡單。
http://yate.null.ro/pmwiki/
3.xten:windows平臺下的SIP軟電話。功能齊全,使用方便。/
三SIP協(xié)議棧
1.osip:跨平臺的開源SIP協(xié)議棧。用c語言實現(xiàn),體積小。http:〃/software/osip/
2.exosip:對osip進行封裝,使其方便SIP客戶端軟件開發(fā)。同樣開源跨平臺。
/projects/exosip/
3.sipXtackLib:由SIPfoundry提供的開源跨平臺的SIP協(xié)議棧,功能齊全。C++開發(fā),已經(jīng)被
用于開發(fā)數(shù)個商業(yè)SIP終端。
四RTP棧
1.JRTPLIB:開源的跨平臺rtp棧,用C++語言開發(fā),使用方便。
http://research.edm.uhasselt.be/~jori/page/index.php?n=CS.Jrtplib
五抓包測試工具
1.Wireshark:非常有名的開源跨平臺網(wǎng)絡(luò)抓包工具,以前叫做Ethereal。
/
幾種開源SIP協(xié)議棧對比
隨著VoIP和NGN技術(shù)的發(fā)展,H.323時代即將過渡到SIP時代,在H.323的開源協(xié)議棧中,
Openh323占統(tǒng)治地位,它把一個復(fù)雜而又先進的H.323協(xié)議棧展現(xiàn)在普通程序員的眼前,為
H.323普及立下了汗馬功勞。而然當在SIP時代,則出現(xiàn)了群雄割據(jù)的狀況,SIP相對于H.323
簡單,靈活,于是各種協(xié)議棧層出不窮,下面將詳細對比最具有代表性的5個開源項目:
OPAL,VOCAL,sipX,ReSIProcate,oSIP
OPAL是OpenPhoneAbstractionLibrary,是Openh323的下一個版本,它仍然使用了
Openh323的體系結(jié)構(gòu),并在其基礎(chǔ)上進行擴展,同時實現(xiàn)了SIP,H.323,但在音頻和視頻的編碼
和傳輸部分有較大改動。OPAL初衷設(shè)計是包含任何電話通信協(xié)議,所以其底層進行了高度的抽象化,
所以也能夠很容易的支持MGCP,PSTN和將來會出現(xiàn)的協(xié)議。不過由于Openh323的最后一個版
本還在開發(fā)中,所以原本6月發(fā)布的OPAL也被推遲,現(xiàn)有的OPAL還非常不完善,BUG也非常多,
不過相信以O(shè)penh323的開發(fā)班底,一定能讓OPAL十分優(yōu)秀。
CVS::pserver:anonymous@:/cvsroot/openh323/opal
Language:C++
VxWorksport:Yes
Win32port:Yes
Linuxport:Yes
SupportsRFC3261:Yes
SupportsRFC2327:Yes
SupportsRFC3264:Yes
SupportsRFC3263:No
SupportsRFC3515:Yes
SupportsRFC3262:No
SupportsRFC3311:No
TCP:Yes
UDP:Yes
SIZE:8MB
License:MPL
Document:None
Samples:UA,GK
VOCAL是開發(fā)的SIP系統(tǒng),VOCAL應(yīng)該是目前功能最完善,使用者最多的開源
SIP協(xié)議棧了.它不只包括了協(xié)議棧,還包括了h323與sip轉(zhuǎn)換網(wǎng)關(guān),對SIP的各種Serve「的功
能支持也非常完善,不過很可惜,不支持windows平臺,而且自從vovida被CISCO收購以后就停
止了開發(fā),最后的版本是2003年4月的L5.0。
CVS::pserver:anonymous@:/cvsroot/vocal
Language:C++
VxWorksport:No
Win32port:Partial
Linuxport:Yes
SupportsRFC3261:Partial
SupportsRFC2327:Yes
SupportsRFC3264:
SupportsRFC3263:
SupportsRFC3515:Yes
SupportsRFC3262:
SupportsRFC3311:
TCP:Yes
UDP:Yes
SIZE:6MB
License:Vovidasoftwarelicencse
Document:Few
Samples:UA,GKZGW
sipX是一個SIP系統(tǒng),由SIPFoundry開發(fā)。sipX是從reSIP「ocdte分離出來的,sipX除了
包括SIPstack外,還包括了sipXphone,sipXproxy,sipXregistry等等由它們構(gòu)成了完整的
SIP系統(tǒng),而且sipx還支持嵌入式系統(tǒng),各個模塊可以按需取舍。不過可惜是幾乎沒有任何開發(fā)文
檔。
SVN:/viewsvn/
Language:C++
VxWorksport:Yes
Win32port:Yes
Linuxport:Yes
SupportsRFC3261:Yes
SupportsRFC2327:Yes
SupportsRFC3264:Yes
SupportsRFC3263:Yes
SupportsRFC3515:Yes
SupportsRFC3262:No
SupportsRFC3311:No
TCP:Yes
UDP:Yes
SIZE:<4Mb
License:LGPL
Document:None
Samples:UA,GK,GW
ReSIProcate同樣也是由SIPFoundry開發(fā),ReSIProcate最開始起源于Vocal,由于Vocal
開始只支持rfc3254,為了支持最新的rfc3261,ReSIProcate誕生了,但現(xiàn)在,ReSIProcate已
經(jīng)成為一個獨立SIP協(xié)議棧了,它十分穩(wěn)定,并且很多商業(yè)程序都在使用。
SVN:/viewsvn/resiprocate/main/sip/
Language:C++
VxWorksport:No
Win32port:Yes
Linuxport:Yes
SupportsRFC3261:Yes
SupportsRFC2327:Yes
SupportsRFC3264:Yes
SupportsRFC3263:Partial
SupportsRFC3515:Yes
SupportsRFC3262:No
SupportsRFC3311:No
TCP:Yes
UDP:Yes
SIZE:<2.5Mb
License:Vovida
Document:Few
Samples:None
OSIP的開發(fā)開始于2000年7月,第一個版本在2001年5月發(fā)布,到現(xiàn)在已經(jīng)發(fā)展到2.0.9
了。它采用ANSIC編寫,而且結(jié)構(gòu)簡單小巧,所以速度特別快,它并不提供高層的SIP會話控制
API,它主要提供一些解析SIP/SDP消息的API和事務(wù)處理的狀態(tài)機,OSIP的作者還開發(fā)了基于
oSIP的UAlib:exosip和proxyserverlib:partysip.
CVS::ext:anoncvs@:/cvsroot/osip
Language:C
VxWorksport:Yes
Win32port:Yes
Linuxport:Yes
SupportsRFC3261:Yes
SupportsRFC2327:Yes
SupportsRFC3264:Yes
SupportsRFC3263:Yes
SupportsRFC3515:No
SupportsRFC3262:No
SupportsRFC3311:Yes
TCP:Yes
UDP:Yes
SIZE:400kb
License:LGPL
Samples:UA,GK
綜合上述評測,可以看出5種SIP協(xié)議棧各有千秋,OPAL有發(fā)展?jié)摿?,VOCAL比較完善,sipX
兼容性好,ReSIProcate教穩(wěn)定,oSIP小巧而快速。所以要根據(jù)應(yīng)用的不同選擇恰當?shù)膮f(xié)議棧進行
研究開發(fā)。。
SIP所涉及到得相關(guān)協(xié)議
SIP標準
1.RFC3261:SessionInitiationProtocol
2RFC3262:ReliabilityofProvisionalResponsesinSIP
3R.FC3263:SIP:LocatingSIPServers
4RFC3264:AnOfferAnswerModelwithSessionDescription
5RFC3265:SIP-SpecificEventNotification
6RFC3311:TheSIPUPDATEMethod
7.RFC3312:IntegrationofResourceManagementandSIP
8RFC3313:PrivateSessionInitiationProtocol(SIP)ExtensionsforMedia
Authorization
9.RFC3323:APrivacymechanismfortheSessionInitiationProtocol
10.RFC3325:PrivateExtensionstotheSessionInitiationProtocol(SIP)for
AssertedIdentitywithTrustedNetworks
11.RFC3326:TheReasonHeaderfortheSessionInitiationProtocol
12.RFC3327:SessionInitiationProtocol(SIP)ExtensionHeaderFieldfor
RegisteringNon-AdjacentContacts
13.RFC3329:SecurityMechanismAgreementfortheSIP
14.RFC3372:SIPforTelephones(SIP-T):ContextandArchitectures
15.RFC3428:SIPExtensionsforInstantMessaging
16.RFC3486:CompressingtheSessionInitiationProtocol(SIP)
17.RFC3515:TheREFERMethod
18.RFC3608:SessionInitiationProtocol(SIP)ExtensionHeaderFieldforService
RouteDiscoveryDuringRegistration
19.RFC2806:URLsforTelephoneCalls
20.RFC2848:PINT-IPAccesstoTelephoneCallServices
21.RFC2915:TheNAPTRDNSResourceRecord
22.RFC2976:TheSIPINFOMethod
23.RFC3204:MIMEmediatypesforISUPandQSIGObjects
24.draft-ieft-sipping-el64-02:UsingENUMforSIPApplication
25.draft-ieft-sipping-cc-transfer-05:CallTransfer
26.draft-ieft-sip-referredby-OO:TheReferred-ByMechansim
27.draft-ieft-sip-replaces-03:TheSIPReplacesHeader
28.draft-ietf-session-timer-10:TheSIPSessionTimer
29.draft-ietf-sipping-3gpp-r5-requirements-00:3rdGenerationPartnershipProject
(3GPP)Release5requirementsontheSessionInitiationProtocol
30.draft-ietf-sip-nat-02:AnExtensiontotheSessionInitiationProtocolfor
SysmmetricResponseRouting
31.draft-ietf-sipping-mwi-02.txt:AMessageSummaryandMessageWaiting
IndicationEventPackagefortheSessionInitiationProtocol.
32.draft-ietf-simpie-presence-10:SIPExtensionsforPresence
33.draft-ieft-simple-im-sdp-00:SIP-SDPExtensionsforSIPInstantMessage
Sessions
34.ITU-TRecommendationT.38:Proceduresforreal-timeGroup3facsimile
communicationoverIPnetworks
35.draft-yu-tel-trl-07:ExtensiontoTelURLtosupportNumberPortabiltiyand
FreephoneService
36.draft-ietf-mmusic-sdp-qos-OO:EstablishingQOSandSecurityPreconditionsfor
SDPsessions
SIP相關(guān)協(xié)議
1.RFC1006:ISOtransportservicesontopoftheTCPVersion3
2.RFC2030:SimpleNetworkTimeProtocol(SNTP)Version4forIPv4,IPv6and
OSI
3.RFC2246:TheTLSProtocolVersion1.0
4.RFC2327:SDPSessionDescriptionProtocol
5.RFC3024:MIMEmediatypesofISUPandQSIGObjects
SIP學(xué)習入門范例(1)
學(xué)習SIP協(xié)議最快捷的方法是通過范例來學(xué)習,因此我從UnderstandSIP上找了4個最簡單呼
叫過程來分析。通過對這些流程圖以及每個呼叫所包含的消息體文本分析,盡快熟悉SIP呼叫原理。
PS.如果有什么地方說明不妥,請告訴我
一、基本SIP會話建立范例
下面的流程圖顯示出最簡單的SIP呼叫流程。它由兩個呼叫終端組成(其實真正的系統(tǒng)并沒有這么
簡單),呼叫終端可以為SIP電話機或者具備SIP功能的手機等終端設(shè)備。在這里我們假設(shè)它是
能夠連接到IP網(wǎng)的終端設(shè)備,并且它們已經(jīng)知道對方的IP地址。
PS.因為這是第一節(jié),每個字段我們講得會比較詳細,后面章節(jié)如何字段意義差不多,我們將會省略。
對于某些常用的,有重要意義的字段,我們還將在專門的地方說明。
INVITE
主叫方Tesla首先發(fā)起INVITE消息到被叫方Marconi。INVITE消息包含會話類型和一些呼叫所
必須的參數(shù)。會話類型可能是單純的語音,也可能是網(wǎng)絡(luò)會議所用的多媒體視頻,還可能是游戲會話。
下面是消息體范例,我們來詳細分析各個字段的意義:
INVITEsip:marconi@SIP/2.0
<=請求方法、請求地址(Request—URI)、SIP版本號(目前都是SIP/2.0)
<=請求地址一般就是被叫方地址,跟MSN中好友eMail地址類似
Via:SIP/2.0/UDP:5060;branch=z9hG4bKfwl9b
<=SIP版本號(2.0)、傳輸類型(UDP)、呼叫地址、
v=branch是一隨機碼,它被看作傳輸標識
<=Via字段中地址是消息發(fā)送方或代理轉(zhuǎn)發(fā)方設(shè)備地址,一般由主機地址和端口號組成
<=傳輸類型可以為UDP、TCP、TLS、SCTP
Max-Forwards:70
<=最大跳躍數(shù),就是經(jīng)過SIP服務(wù)器的跳躍次數(shù),主要是防止循環(huán)跳躍
<=每盡管一臺代理服務(wù)器,該整數(shù)減一
To:G.Marconi<sip:Marconi@>
From:NikolaTesla<sip:n.tesla@>;tag=76341
<=表示請求消息的發(fā)送方和目標方
<=如果里面有用戶名標簽,地址要求用尖括號包起來
<=對于INVITE消息,可以在From字段中包含tag,它也是個隨機碼
Call-ID:123456789@
<=呼叫ID是由本地設(shè)備生成的,全局唯一值。每次呼叫該值唯一不變
<二對于用戶代理發(fā)送INVITE消息,本地將生成Fromtag和Call-ID全局唯一碼,被
叫方代理則生成Totag全局唯一碼。這三個隨機碼做為整個對話中對話標識(dialogidentifier)
在通話雙方使用。
CSeq:1INVITE
<=CSeq,又叫命令隊列(CommandSeqence),每發(fā)送一個新的請求,該數(shù)自動加1
*以上幾個字段是所有SIP消息體所必須的,其它頭字段有些是可選的,有些在特定請求也是必須
Subject:AboutThatPowerOutage...
Contact:<sip:n.tesla@>
<=Contact是INVITE消息所必須的,它用來路由到被叫設(shè)備地址,也稱為用戶代理(UA)
Content-Type:application/sdp
Content-Length:158
<=最后兩位附屬字段說明消息體類型以及字段長度
v=0v=SDP版本號,目前都是0
o=Tesla28908445262890844526INIP4v=主叫源地址,類型等
s=PhoneCallv=主題
c=INIP403v=連接
t=00v=時間戳
m=audio49170RTP/AVP0v=媒體
a=rtpmap:0PCMU/8000<=媒體屬性
v=從上面SDP消息體我們可以得出下面信息
v=連接IP地址:03
v=媒體格式:audio
<=端口號:49170
<=媒體傳輸類型:RTP
v=媒體編碼:PCMuLaw
<=采樣率:8000Hz
180Ringing
當被叫方接收到INVITE請求消息后,將回復(fù)180Ringing。顧名思義,就是發(fā)回鈴音,提示主叫
方電話已連接上了,正等待被叫應(yīng)答。被叫方接收到INVITE消息后也會發(fā)生響鈴或者其它有呼入
提示,這由被叫方設(shè)定(我們可以把它想象成我們自己設(shè)定手機鈴聲)。對于180響應(yīng)又被稱為''消
息及時響應(yīng)〃,它是一種用來測試被叫狀態(tài)的一種響應(yīng)。因此它所包含的信息不多,具體180響應(yīng)
消息如下:
SIP/2.0180Ringing
Via:SIP/2.0/UDP:5060;branch=z9hG4bKfw19b
;received=03v=這里增加一個received參數(shù),標識接收方IP地址
To:G.Marconi<sip:marconi@>;tag=a53e42<=上已提至ij,Totag做為被叫
方標識
From:NikolaTesla<sip:n.tesla@>;tag=76341v=要求很發(fā)送方From
tag一致
Call-ID:123456789@
CSeq:1INVITE
Contact:<sip:marconi@>
Content-Length:0
v=對于180Ringing響應(yīng),基本上就是將INVITE的Via、To、From、Call-ID和CSeq
內(nèi)容復(fù)制過來,對于首行標出SIP版本號,響應(yīng)代碼(180)和動作原因(reasonphrase)
<=注意這里From和To地址,因為它們用來指定呼叫方向,因此這里的200OK響應(yīng)并沒
有將地址對調(diào),仍然保持原樣。一點不同的是To頭字段添加了由被叫方Marconi生成的tag標
識
200Ok
被叫響鈴后,如果被叫用戶Marconi接起電話,則發(fā)出200OK響應(yīng)。這個響應(yīng)除了做為接通指
示之外,還有一個功能是用來指定被叫允許的連接媒體格式,讓主叫方確認是否可以接收該媒體。
消息體如下:
SIP/2.0200OK
Via:SIP/2.0/UDP:5060;branch=z9hG4bKfw19b
;received=03
To:G.Marconi<sip:marconi@>;tag=a53e42
From:NikolaTesla<sip:n.tesla@>;tag=76341
Call-ID:123456789@
CSeq:1INVITE
Contact:<sip:marconi@>
Content-Type:application/sdp
Content-Length:155
v=頭字段部分基本同上
v=0
o=Marconi28908445282890844528INIP4
s=PhoneCall
c=INIP403
t=00
m=audio60000RTP/AVP0
a=rtpmap:0PCMU/8000
v=從上面SDP消息體我們可以得出下面信息
v=終端IP地址:03
v=媒體格式:audio
<=端口號:60000
<=媒體傳輸類型:RTP
v=媒體編碼:PCMuLaw
<=采樣率:8000Hz
ACK
通話前最后一步是主叫方確認200OK響應(yīng)。該項確認證明連接被允許,即將使用另一種協(xié)議開始
媒體連接。這另一種協(xié)議是上面在SDP消息段中所協(xié)商好的RTP格式。該ACK響應(yīng)內(nèi)容如下:
ACKsip:marconi@SIP/2.0
Via:SIP/2.0/UDP:5060;branch=z9hG4bK321g
Max-Forwards:70
To:G.Marconi<sip:marconi@>;tag=a53e42
From:NikolaTesla<sip:n.tesla@>;tag=76341
Call-ID:123456789@
CSeq:1ACK
Content-Length:0
BYE
通話完畢后,由被叫方Marconi首先掛機,發(fā)送BYE請求命令。注意這回由Marconi做為主叫
方了,因此Via字段和From、To與INVITE字段有所不同。其實也就是倒置。
BYEsip:n.tesla@SIP/2.0
Via:SIP/2.0/UDP:5060;branch=z9hG4bK392kf
Max-Forwards:70
To:NikolaTesla<sip:n.tesla@>;tag=76341
From:G.Marconi<sip:marconi@>;tag=a53e42
Call-ID:123456789@
CSeq:1BYE
Content-Length:0
200OK
BYE之后,要求被叫方發(fā)200Ok確認,也就是讓主叫知道被叫已經(jīng)知道你掛斷了。(注意這里所
說的主被叫角色已經(jīng)倒過來了)打個比方,通話之后,有一方要求掛機,另一方需要知道它已經(jīng)掛機
了。
SIP/2.0200OK
Via:SIP/2.0/UDP:5060;branch=z9hG4bK392kf
;received=03
To:NikolaTesla<sip:n.tesla@>;tag=76341
From:G.Marconi<sip:marconi@>;tag=a53e42
Call-ID:123456789@
CSeq:1BYE
Content-Length:0
到此,我們已經(jīng)將最簡單的呼叫過程講完了。該過程簡單在于兩個終端之間沒有其它設(shè)備,完全的點
對點連接,它們之間只需要知道對方IP地址即可?,F(xiàn)實生活中這種呼叫形式是很少見的。后面我們
將繼續(xù)介紹另一種利用代理方式進行呼叫連接。
留個疑問:為什么說這種點對點的方式比較少用?
TeslaMarconi
_INVITE
~>
180Ringing
4二
200OK
-4
ACK
?
?Mediasession.
BYE一
?-
200OK
SIP學(xué)習入門范例(2)
二、通過代理服務(wù)器的SIP呼叫
在前面一個例子中,我們事先假設(shè)兩個終端知道對方IP地址。而在現(xiàn)實情況下,這種非常少見。因
為IP地址不像是電話號碼,基本上每個人都是固定的,大多數(shù)情況,我們只知道被叫方名字,而并
不知道對方在哪,也不知道對方終端的IP地址。因此今天,我們繼續(xù)介紹另一種呼叫方式,即通過
代理服務(wù)器進行呼叫。通過代理服務(wù)器進行呼叫,和我們使用HTTP代理上網(wǎng)大同小異。我們這個
例子,只有一個代理服務(wù)器。
PS.因為這里有很多內(nèi)容和第一節(jié)相似,我們大量列舉內(nèi)容,只在個別地方說明
Ml:首先是主叫方Schroedinger發(fā)送Invite請求給代理服務(wù)器。
INVITEsip:werner.heisenberg@munich.deSIP/2.0
v=對于基于代理服務(wù)器的呼叫連接,代理服務(wù)器要處理2部分內(nèi)容?!盄“前的是用戶,后面是
終端設(shè)備地址,需要DNS解析成標準IP地址。
Via:SIP/2.0/UDP03:5060;branch=z9hG4bKmpl7a
Max-Forwards:70
To:Heisenberg<sip:werner.heisenberg@munich.de>
From:E.Schroedinger<sip:schroed5244@>;tag=42
Call-ID:10@100,101.102.103
CSeq:1INVITE
Subject:Whereareyouexactly?
Contact:<sip:schroed5244@>
Content-Type:application/sdp
Content-Length:159
v=0
o=schroed524428908445262890844526INIP403
s=PhoneCall
t=00
c=INIP403
m=audio49170RTP/AVP0
a=rtpmap:0PCMU/8000
代理服務(wù)器在它的定位數(shù)據(jù)庫中查找SIP地址(sip:werner.heisenberg@munich.de)。這里有
兩個步驟:
1、首先UA查詢DNS,確定代理服務(wù)器位置;然后由代理服務(wù)器查詢定位被叫地址
2、代理服務(wù)器將Invite消息轉(zhuǎn)發(fā)到被叫地址,在Invite消息中增加第二Via字段
M2:代理服務(wù)器轉(zhuǎn)發(fā)INVITE消息
INVITEsip:werner.heisenberg@03SIP/2.0
Via:SIP/2.0/UDPproxy.munich.de:5060;branch=z9hG4bK83842.1
<=這里增加了個新Via,由代理服務(wù)器產(chǎn)生
Via:SIP/2.0/UDP03:5060;branch=z9hG4bKmpl7a
Max-Forwards:69<=經(jīng)過一個跳躍,這里減1
To:Heisenberg<sip:werner.heisenberg@munich.de>
From:E.Schroedinger<sip:schroed5244@>;tag=42
Call-ID:10@100,101.102.103
CSeq:1INVITE
Contact:vsip:schroed5244@pc33,>
Content-Type:application/sdp
Content-Length:159
v=0
o=schroed524428908445262890844526INIP403
s=PhoneCall
c=INIP403
t=00
m=audio49172RTP/AVP0
a=rtpmap:0PCMU/8000
M3:被叫放回鈴180Ringing
SIP/2.0180Ringing
Via:SIP/2.0/UDPproxy.munich.de:5060;branch=z9hG4bK83842.1
;received=05
Via:SIP/2.0/UDP03:5060;branch=z9hG4bKmpl7a
To:Heisenberg<sip:werner.heisenberg@munich.de>;tag=314159
From:E.Schroedinger<sip:schroed5244@>;tag=42
Call-ID:10@03
CSeq:1INVITE
Contac
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版環(huán)保節(jié)能技術(shù)轉(zhuǎn)化第三方履約擔保協(xié)議3篇
- 二零二五年飛機租賃與購買合同3篇
- 2024版系統(tǒng)集成項目外包合同3篇
- 二零二五年度鋼結(jié)構(gòu)廠房項目施工圖紙及技術(shù)交底合同3篇
- 二零二五年餐飲店員工派遣及服務(wù)質(zhì)量保證合同3篇
- 二零二五版半地下室租賃合同附帶租賃雙方責任界定3篇
- 烏蘭察布醫(yī)學(xué)高等??茖W(xué)?!缎W(xué)英語教學(xué)研究》2023-2024學(xué)年第一學(xué)期期末試卷
- 二零二五版?zhèn)€人住房貸款利率調(diào)整協(xié)議2篇
- 二零二五版房地產(chǎn)抵押權(quán)抵押合同示范文本3篇
- 二零二五年餐飲廚房整體承包運營協(xié)議3篇
- 農(nóng)化分析土壤P分析
- GB/T 18476-2001流體輸送用聚烯烴管材耐裂紋擴展的測定切口管材裂紋慢速增長的試驗方法(切口試驗)
- GA 1551.5-2019石油石化系統(tǒng)治安反恐防范要求第5部分:運輸企業(yè)
- 拘留所教育課件02
- 沖壓生產(chǎn)的品質(zhì)保障
- 《腎臟的結(jié)構(gòu)和功能》課件
- 2023年湖南聯(lián)通校園招聘筆試題庫及答案解析
- 上海市徐匯區(qū)、金山區(qū)、松江區(qū)2023屆高一上數(shù)學(xué)期末統(tǒng)考試題含解析
- 護士事業(yè)單位工作人員年度考核登記表
- 產(chǎn)科操作技術(shù)規(guī)范范本
- 人教版八年級上冊地理全冊單元測試卷(含期中期末試卷及答案)
評論
0/150
提交評論