

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、SIP協(xié)議初級講義,,基本信息,適用對象:SIP協(xié)議初學者學習目標: 掌握SIP協(xié)議的基本術(shù)語 理解SIP/SDP消息掌握SIP協(xié)議的尋址過程 掌握媒體協(xié)商過程 掌握SIP呼叫流程 具有SIP協(xié)議的獨立學習能力時間: 3小時學習+1小時討論,學習內(nèi)容,1. 概述(*)2. SIP的功能實體3. SIP的尋址 4. SIP消息體結(jié)構(gòu)(*)5. SIP請求消息(*)6.
2、SIP響應消息,7.Sdp協(xié)議8.SIP的能力協(xié)商9.案例分析(*)10.測驗11.實現(xiàn)方法入門12.SIP學習方法,*部分將重點講述,1.SIP協(xié)議概述,基本情況主要特點主要結(jié)構(gòu)名詞解析,基本情況,創(chuàng)立組織:IETF/mmusic工作組IP網(wǎng)絡協(xié)議的后起之秀,是NGN的理想?yún)f(xié)議時間:1995開始研究 1999年2月提出草案 草案編號:RFC2543目前版本:Version 9(Feb,200
3、2),主要特點,是應用層的控制協(xié)議,可以建立,修改和結(jié)束多媒體會話。獨立于TCP或者UDP,使用自己應用層協(xié)議保證消息的可靠傳送。消息體采用文本方式以客戶-服務器方式建立會話靈活的尋址方式SIP沒有媒體協(xié)商功能,往往需要集成SDP協(xié)議,主要結(jié)構(gòu),UserAgent,SIP Proxy Server,,,UserAgnet,SIP Redirect Server,SIP Proxy Server,Location Server,
4、,,,,,,,IP Network,,Registrar Server,DBMS,,,,,,圖例,SIP協(xié)議,私有協(xié)議,2.功能實體,User AgentProxy ServerRedirect ServerRegistrar ServerLocation Server,功能實體(1),User Agent(呼叫代理)是SIP網(wǎng)絡的終端,具體的分為UserAgent Client和UserAgent Server。UAC是客
5、戶端,表示主叫;UAS是服務端,表示被叫。REGISTRAR SERVER(注冊服務器)接受客戶端的注冊請求,將用戶的地址信息寫入數(shù)據(jù)庫,并返回注冊狀態(tài)。,功能實體(2),REDIRECT SERVER(重定向服務器) 接受SIP的請求,映射請求的原地址成零個或者多個IP地址,并且返回給客戶端。 由客戶端重新發(fā)起請求。LOCATION SERVER(定位服務器) 管理若干數(shù)據(jù)庫,接受由Redirect Serv
6、er或者Proxy Server的路由查詢。,功能實體(3),,Proxy Server(代理服務器) 完成SIP消息的轉(zhuǎn)接和轉(zhuǎn)發(fā)功能,可以修改SIP消息內(nèi)容。具體功能有:呼叫認證狀態(tài)管理 路由選擇失敗重傳,3. SIP協(xié)議的尋址,SIP URLURL的表示規(guī)則定位UserAgent定位方式,SIP URL,SIP依靠URL進行路由。SIP URL的格式可以是EmailID或者是E.164地址。SIP:
7、 user@hostTEL:85521717@suntektech.comURL可以用在下面頭域中:FROM頭域 FROM:TO頭域TO: CONTACT頭域:可以方便的嵌入網(wǎng)頁,提供多種網(wǎng)上業(yè)務,SIP-URL = "sip:" [ userinfo "@" ] hostport url-parameters [ headers ]
8、 userinfo = user [ ":" password ] user = *( unreserved | escaped | "&" | "=" | "+" | "$" | "," ) password =
9、 *( unreserved | escaped | "&" | "=" | "+" | "$" | "," ) hostport = host [ ":" port ] host = hostname | IPv4address
10、 hostname = *( domainlabel "." ) toplabel [ "." ] domainlabel = alphanum | alphanum *( alphanum | "-" ) alphanum toplabel = alpha | alpha *( alphanum | "-" ) alphanum
11、 IPv4address = 1*digit "." 1*digit "." 1*digit "." 1*digit port = *digit url-parameters = *( ";" url-parameter ) url-parameter = transport-param | user-para
12、m | method-param | ttl-param | maddr-param | other-param,transport-param = "transport=" ( "udp" | "tcp" ) ttl-param = "ttl=" ttl ttl = 1*3DIGIT ; 0 to 2
13、55 maddr-param = "maddr=" host user-param = "user=" ( "phone" | "ip" ) method-param = "method=" Method tag-param = "tag=" UUID UUID
14、 = 1*( hex | "-" ) other-param = ( token | ( token "=" ( token | quoted-string ))) headers = "?" header *( "&" header ) header = hname &quo
15、t;=" hvalue hname = 1*uric hvalue = *uric uric = reserved | unreserved | escaped reserved = ";" | "/" | "?" | ":" | "@"
16、| "&" | "=" | "+" | "$" | "," digits = 1*DIGIT,URL的表示規(guī)則,例子,sip:j.doe@big.comsip:j.doe:secret@big.com;transport=tcpsip:j.doe@big.com?subject=projects
17、ip:+1-212-555-1212:1234@gateway.com;user=phonesip:1212@gateway.comsip:alice@10.1.2.3sip:alice@example.comsip:alice%40example.com@gateway.comsip:alice@registrar.com;method=REGISTER,定位Proxy服務器,配置UA指向Proxy Server配置UA
18、指向Redirect Server,由Redirect Server分配合適的Proxy Server,定位SIP UserAgent Server(被叫),User Agent激活時通過Registrar Server注冊。Proxy Server通過Location Server得到User Agent Server的路由。Proxy Server根據(jù)地址呼叫UserAgent Server如果沒有能到達UserAgent S
19、erver的路由,必須返回UserAgent Client(主叫)具體的原因,包括代碼和文字的原因。,定位UserAgent的方式,簡單方式 主叫Proxy可以直接發(fā)送請求消息到被叫,建立會話。只適應小型網(wǎng)絡。復雜方式 主叫的Proxy Server也可以發(fā)請求消息到被叫的Proxy Server,由Proxy Server根據(jù)URI重新定位UserAgent Server。,注意的問題(1),Location Serv
20、er可能會返回幾個位置,Proxy Server可以決定如何處理。如果Proxy Server轉(zhuǎn)發(fā)SIP 請求,它必須將自己的IP地址加入到Via部分的開頭。而在返回的時候,將Via域中的地址去掉。,注意的問題(2),在進行Forks定位時,用相同的Call-ID,Cseq,而Tags不同。Proxy有兩種形式:有狀態(tài)返回UserAgent 100消息,表示Proxy 可以完成狀態(tài)的管理無狀態(tài)Proxy不能管理呼叫狀態(tài)
21、,必須有UserAgent自己解決,,注意的問題(3)(比較CallID/CSeq/Tag),CallID 是會話的唯一標志 一個會話過程使用同一個CallID 隨機產(chǎn)生Cseq 是會話命令的序列一個Transaction使用同一個Cseq32位無符號整數(shù)判斷命令的版本以Bye結(jié)束會話時增加“tag”是一個標簽,用來區(qū)別會話中的不同對象。 出現(xiàn)在請求的From頭域中,當共享同一個SIP地址的用戶的兩個實例使用同一個
22、Call-ID發(fā)出邀請時,必須使用此“tag”。Proxy使用tag來判斷消息是傳給自己,還是給用戶。單個用戶的Tag在呼叫過程中保持一致,注意的問題(4),CALL LEG (呼叫歷程) Call leg用CallID(呼叫標識)、From(源方)和To(目的地)的組合來標識一個會話。TRANSACTION(事務) SIP定義一個請求及其最終應答稱為一個事務。所有應答有相同的Call-ID,Cseq,To和Fr
23、om域。,4. SIP消息體結(jié)構(gòu),消息體結(jié)構(gòu)頭域說明,SIP 消息體組成,Start line(起始行詳細描述),起始行Start-Line = request-line | status-line request-line = Method SP Request-URI SP SIP-Version CRLF INVITE sip :SS@SunTek.com SIP2.0sta
24、tus-line = SIP-Version SP status-code SP phase CRLF SIP2.0 200 OK,General headers(通用頭域),路由信息:Accept | Accept-Encoding | Accept-Language | Contact | Date| Encryption| Expires | From | Record
25、-Route |Timestamp呼叫標示 : Call-ID, CSeq, INVITE sip: Sip@SunTek.com SIP2.0 Via: SIP/2.0/UDP proxy.SunTek.com Via: SIP/2.0/UDP sation1.SunTek.com From : Wang To : softswitch Call-ID : 23434@ sation1.SunTek.
26、com CSeq: 1 INVITE Contact : Wang@SunTek.com,其他頭域(請求、響應、實體),Request Headers: Hide, In-Reply-To, Max-Forwards, Priority, Proxy-Authentication, Proxy-Require, Response-Key, Subject, RouteResponse Headers:Proxy-Au
27、thenticate, Retry-After, Server, Unsupported, Warning, WWW-AuthenticateEntity Headers: Allow, Content-Disposition, Content-Encoding, Content-Language, Content-Length, Content-Type, Expires,關(guān)鍵頭域解析(Accept,CallID),
28、Accept : 指明請求方所能接受的響應類型. 媒體類型: Internet media types, defined in MIME 缺省值是 application/sdp.syntax Accept : # ( */* | type/* | type/subtype ) ; q= value; Example : Accept : text/plain; q=0.5,
29、 text/html, text/x-dvi; q=0.8, text/x-c CallID: 唯一標識一個會話,保持全球的唯一性 Call-ID區(qū)分大小寫 隨機產(chǎn)生,有效的提高安全性 CallID相同,消息體不同時將更新會話Syntax: Call-ID = (“Call-ID” | “i”)”:”local-id”@”h
30、ost Example:Call-ID: f81d4fae-7dec-11d0-a765-00a0c91e6bf6@foo.bar.com,關(guān)鍵頭域解析(Cseq),Cseq對于每一個請求,客戶必須使用Cseq(Command sequence)通用頭域 重傳請求用相同的Cseq ACK和CANCEL相應必須返回跟INVITE請求相同的CseqBYE請求釋放一個請求時必須含有以更高數(shù)值的Cseq 用戶代理服務器必須記住同一個
31、Call-ID的INVITE請求的最高序列數(shù)。 所有在并行搜尋中產(chǎn)生的請求擁有和觸發(fā)此并行搜尋的請求一樣的Cseq值。 Syntax: Cseq =“Cseq” “:” 1*DIGIT Method Funtion:不用比較消息體就可以將不同消息區(qū)分開來Example: CSeq: 4711 INVITE,關(guān)鍵頭域解析(From,To),From(源地址)請求和響應必須包含F(xiàn)rom通用頭域,指示請求的初始者 “tag”可以
32、出現(xiàn)在一個請求的From頭域中,當共享同一個SIP地址的用戶的兩個實例使用同一個Call-ID發(fā)出邀請時,必須使用此“tag”, 如Forks。To(目的地地址) To通用頭域說明了請求的接收者如果請求包含了不止一個Via頭域,則必須增加“tag”參數(shù)。Syntax: To =(“To” | “t”)“:”(name-addr | addr-spec)*(“;”addr-params) Example: To: T
33、he Operator ;tag=287447,關(guān)鍵頭域解析(Max-Forwards,Via),Max-Forwards(最大前轉(zhuǎn)數(shù)目) 用來限制前轉(zhuǎn)請求的代理或者網(wǎng)關(guān)的數(shù)目,防止死循環(huán)。適用于任何請求方式,防止死循環(huán)的還有Via域Via頭域指示請求迄今為止所走的路徑。確保消息能夠迎著原請求路徑返回防止死循環(huán),關(guān)鍵頭域解析(Content-Length),Content-Length(內(nèi)容長度)實體頭域指示消息體的
34、長度。形式上以八個比特為一個字節(jié)。服務器如果收到一個包含有Content-Length域的UDP請求。但它的值比消息體的實際長度大,客戶則應產(chǎn)生一個400類的響應。,關(guān)鍵名詞解析(Subject),Subject(標題) 為請求頭域提供了一個摘要,或者指示了呼叫的實際情況可以不必分析通話描述便可過濾呼叫。Syntax: Subject = (“subject” | “s”)“:”*TEXT-UTF8 Times
35、tamp(時間標記) 指示客戶何時向服務器發(fā)送請求 服務器不能修改此值可以計算Round-Trip時間,以便更改TimeOut時間,5. SIP請求消息,INVITEACKBYEREGISTERCANCELOPTIONS,INVITE(會話邀請),INVITE用于發(fā)起一個會話請求,建立會話的三個基本頭域參數(shù)(CallID,From,To)。此三個基本參數(shù)在會話過程中保持不變。INVITE消息體中帶有本次會話的基本參
36、數(shù)連接地址主叫媒體能力帶寬指示,ACK(邀請證實),證實INVITE請求ACK只和INVITE請求一起使用ACK有UserAgent Client(主叫)發(fā)出ACK中的CallID,From,To,Cseq由INVITE消息復制而來,,INVITE sip:john@192.190.132.31 SIP/2.0Via: SIP/2.0/UDP 192.190.132.20:3456Call-ID: a2e3a@1
37、92.190.132.20From: sip: mary@192.190.132.20To: sip: john@192.190.132.31Cseq 1 INVITEContent-type: application/sdpContent-Length: 98v=0 o=mary 3123 121231 IP IP4 192.190.132.20 c=IN IP4 192.190.132.20 m=audio 4
38、9170 RTP/AVP 0,Mary,192.190.132.20,192.190.132.31,John,SIP/2.0 200 OK v: SIP/2.0/UDP 192.190.132.20:3456i: a2e3a@192.190.132.20f: sip: mary@192.190.132.20t: sip: john@192.190.132.31Cseq 1 INVITEc: application/sdp
39、l: 98v=0 o=john 5664 456456 IP IP4 192.190.132.31 c=IN IP4 192.190.132.31 m=audio 23244 RTP/AVP 0,,,ACK sip:john@192.190.132.31 SIP/2.0Via: SIP/2.0/UDP 192.190.132.20:3456Call-ID: a2e3a@192.190.132.20From: sip:
40、 mary@192.190.132.20To: sip: john@192.190.132.31Cseq 1 ACK,Invite Details,BYE(結(jié)束會話),作用:結(jié)束當前會話可以由UAC(主叫)或者UAS(被叫)發(fā)起UA收到BYE消息后,必須停止向?qū)Ψ桨l(fā)送媒體流,,BYE sip:mary@192.190.132.20 SIP/2.0v: SIP/2.0/UDP 192.190.132.31:3456i:
41、a2e3a@192.190.132.20From: sip: john@192.190.132.31To: sip: mary@192.190.132.20Cseq 2 BYE,SIP/2.0 200 OK Via: SIP/2.0/UDP 192.190.132.31:3456Call-ID: a2e3a@192.190.132.20From: sip: john@192.190.132.20To: sip: mary
42、@192.190.132.31Cseq 2 BYE,,Bye Details,192.190.132.20,192.190.132.31,REGISTER(用戶注冊),用于UA向Registrar Server中登記Request-URI:要注冊的域名To:Registrar Server分析To頭域的URI,將其與UA的IP地址關(guān)聯(lián)起來Contact:UA發(fā)送注冊信息中有可選的Contact頭域,可以將Contact的URI也
43、關(guān)聯(lián)到UA的IP地址。,注冊例子,CANCEL(取消會話),作用:取消正在建立的會話(注意不能取消已經(jīng)建立的會話)UA收到CANCEL命令時,如果發(fā)現(xiàn)CallID,F(xiàn)ROM,TO和Cseq一致時,便取消本次會話。典型應用:Proxy 取的用戶的幾個聯(lián)系地址,同時發(fā)起邀請,但其中有些有返回時,對其他還沒有返回的地址,可以發(fā)送CANCEL。,OPTIONS(能力查詢),用途在發(fā)送會話請求之前查詢UserAgent Server的
44、能力集響應消息復制OTIONS命令的CALLID,F(xiàn)ROM,TO值返回的能力可以在下面的頭域中取得:Allow:支持的消息(INIVTE,ACK等)Accept-Language:支持的語言SDP:支持能力,6.SIP的響應消息,響應消息的具體格式狀態(tài)碼定義,SIP響應消息的格式,狀態(tài)碼定義,1xx Responses - Information Responses 2xx Responses - Successful R
45、esponses 3xx Responses - Redirection Responses 4xx Responses - Request Failures Responses 5xx Responses - Server Failure Responses 6xx Responses - Global Failure Responses,Status Code(1XX,2XX,3XX),Informational 1xx
46、指示消息100 Trying(嘗試)180 Ringing(振鈴)181 Call Is Being Forwarded(呼叫正被前轉(zhuǎn))Successful 2xx 請求成功,終止搜尋 200 OK(成功)Redirection 3xx 重定向300 Multiple Choices(多個選擇)301 Moved Permanently(永久轉(zhuǎn)移)302 Moved Temporarily(臨時轉(zhuǎn)移)305
47、Use Proxy(使用代理)380 Alternative Service(可選的服務),Status Code(4XX),Request Failure 4xx (客戶端請求失敗)400 Bad Request(錯誤請求)401 Unauthorized(未鑒權(quán))402 Payment Required(需要支付(付款))403 Forbidden(禁止)404 Not Found(未找到)405 Method Not
48、 Allowed(方式不允許)406 Not Acceptable(不接受) 407 Proxy Authentication Required(需要代理驗證) 486 Busy Here(本地忙),Status Code(5XX,6XX),Server Failure 5xx(服務器失敗5XX)500 Server Internal Error(服務器內(nèi)部錯誤)501 Not Implemented(未實現(xiàn))502 Bad
49、 Gateway(錯誤的網(wǎng)關(guān))503 Service Unavailable(無效服務)504 Gateway Time-out(網(wǎng)關(guān)超時)505 Version Not Supported(不支持的版本)Global Failure 6xx 600 Busy Everywhere(全忙)603 Decline(拒絕)604 Does Not Exist Anywhere(不存在)606 Not Acceptable(不
50、接受),7. SDP協(xié)議介紹,協(xié)議概述協(xié)議格式理解SDP協(xié)議,SDP協(xié)議概述,協(xié)議說明全稱是Session Description Protocol (By ITEF/MMUSIC)SDP功能概述 通過會話公告將會議的地址,時間,媒體和建立等信息告知的會話參加者,獲得這些信息后可以加入會話。SDP的責任和傳送 SDP定義了會話描述的統(tǒng)一格式,但并不定義多播地址的分配和SDP消息的傳送,也不支持媒體編碼方案的協(xié)商 SD
51、P描述的信息封裝在傳送協(xié)議中發(fā)送,典型的會話傳送協(xié)議包括:會話公告協(xié)議(SAP,SIP,RTSP,HTTP ),Header: 所用會話協(xié)議的控制信息 Text payload: 是SDP的會話描述。文本的Payload必須小于1K byte一個包中只能有一個會話。,SDP的傳送格式,會話描述格式,綜述SDP會話描述由很多文本行組成,每個文本行的格式是 =1)是一個字符,取決于的變化。2)兩者必須區(qū)分大小寫(通
52、常都是小寫)3)一般由多個字段組成,各個字段由一個空格符分隔,也可以是一個自由格式阿文本串。4)“=”兩側(cè)不允許有空格。,會話描述格式,Session Descriptionv=(protocol version) o=(owner/creator and session identifier). s= (session name) i=* (session information) u=* (URI of descr
53、iption) e=* (email address) p=* (phone number) c=*(connection information - not required if included in all media),b=* (bandwidth information) One or more time descriptions (see below) z=* (time zone adjustments)
54、 k=* (encryption key) a=* (zero or more session attribute lines) Zero or more media descriptions (see below),Sdp語法,Time description t= (time the session is active) r=* (zero or more repeat times)Medi
55、a description m= (media name and transport address) i=* (media title) c=* (connection information - optional if included at session-level) b=* (bandwidth information) k=* (encrypt
56、ion key) a=* (zero or more media attribute lines),例子,v=0 版本是0o=mhandley 2890844526 2890842807 IN IP4 126.16.64.4o= 取決于NTP(Network Time Protocol) is increased when a modification is made s=SDP Semi
57、nar //只能有一個Session name i=A Seminar on the session description protocol 對于會話水平和媒體水平,都只能是一個i.u=http://www.cs.ucl.ac.uk/staff/M.Handley/sdp.03.ps //可選的,允許有多個URIe=mjh@isi.edu (Mark Handley)p=+44-171-380-777 // Email&a
58、mp;Phone,可多選,也可不選。+表示國家代碼; -表示號碼連接符c=IN IP4 224.2.17.12/127/3 // Connection Data// c= // IN stand for Internet //127 stand for TIME TO LIVE (range 0-255)//3表示后面連接的地址生命期是127,b=12345678:8 // b=:??蛇x項,modifier是帶寬
59、的修飾語,帶寬值的單位是kilobits/second t=2873397496 2873404696 // t= 如果stop time 為零,則會話無效;如果start time 為0,則永久有效。注意要寫上start time 和 stop time,以防止防止意外。K= uri: // Encryption Keys k=: // 到URI指定的地址取密鑰 a=recvonly // a=
60、m=audio 49170 RTP/AVP 0// 可多選 m= // AVP=audio/video profile // 參考下頁表m=video 51372 RTP/AVP 31,Payload types for standard audio encoding,8 . 能力協(xié)商,協(xié)商介紹協(xié)商例子,UA能力協(xié)商概述,主叫攜帶能力集INVITE的消息體中帶有UAC(主叫)的能力集被叫證實能力UAS(被叫
61、)在從主叫的能力集中選擇一種,通過200 OK消息返回根據(jù)消息體中的IP地址和端口號創(chuàng)建RTP流 c=IN IP4 192.190.132.3 (例子參加案例分析之“基本呼叫”),9.案例分析,最簡單的呼叫經(jīng)過兩個Proxy的呼叫呼叫轉(zhuǎn)移,,INVITEjohn@192.190.132.31c=IN IP4 192.190.132.20m=audio 49170 RTP/AVP 0 3,,200 OKc=IN
62、IP4 192.190.132.31m=audio 12345 RTP/AVP 3,John’s terminal rings,,ACK,,,192.190.132.31,John,Mary,Port 12345,The response indicates that John’s terminal can receive GSM data, on port 12345,192.190.132.20,例子一:最簡單的呼叫,,180 R
63、ing,,GSM Stream,,200 OK,,BYE,例子二:經(jīng)過兩個Proxy的呼叫,例子三: 遇忙轉(zhuǎn)移,,,,,User A,Proxy,User B1,,,,,,,,,,,,,,,,,INVITE,INVITE,100 Trying,468 Busy,ACK,INVITE,180 Ringing,180 Ringing,200 OK,200 OK,ACK,,ACK,Both way RTP voice,BYE,BYE,200
64、OK,200 OK,10. 測驗,SIP網(wǎng)絡的主要功能實體是什么?SIP協(xié)議有什么請求消息?SIP如何尋址?如何進行媒體協(xié)商?畫出經(jīng)過一個Proxy Server的呼叫序列圖,11. SIP協(xié)議的實現(xiàn)方法入門,概述封裝消息解析消息狀態(tài)機,實現(xiàn)方法概述,,封裝消息,解析消息,狀態(tài)機的實現(xiàn),12. SIP的繼續(xù)學習方法,,SIP協(xié)議原文(RFC2543)SIP協(xié)議的擴展(RFC2976)SIP的權(quán)威站點1)http://
65、www.ietf.org/html.charters/sip-charter.html(官方站點)2) Http://www.sipforum.com(最新應用)3) Http://www.sinpcenter.com(最新應用)4) Http://www.vovida.org(免費源代碼組織)5) http://www.cs.columbia.edu/~hgs/sip/(SIP的哥倫比亞大學老家),Contact me whe
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 本月總結(jié) - 首頁 - 東營市一中
- 空調(diào)參數(shù)-首頁-東營市人民醫(yī)院
- 東營市
- 課題-宜賓市一中首頁
- 東營市技師學院、東營市中等專業(yè)學校
- 山東省東營市勝利第一中學公開招聘教師強化卷4
- 東營市衛(wèi)生局
- 東營市勝利第一中學領(lǐng)導班子成員述廉述責工作方案
- 山東省東營市第一中學招聘部屬公費師范生強化訓練卷2
- 山東省東營市第一中學招聘部屬公費師范生強化訓練卷3
- 山東省東營市第一中學招聘部屬公費師范生強化訓練卷2
- 東營市培訓機構(gòu)匯總表
- 東營市環(huán)境保護局
- 山東省東營市第一中學招聘部屬公費師范生強化訓練卷3
- 東營市海上搜救應急預案
- 東營市農(nóng)業(yè)企業(yè)集群研究.pdf
- 東營市衛(wèi)生防汛救災應急預案
- 東營市河道防洪規(guī)劃研究.pdf
- 東營市公安局東營分局績效管理研究.pdf
- 組織管理機構(gòu)-首頁-銅陵一中
評論
0/150
提交評論