




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、sip 注册消息举例篇一: sip 注册消息举例】sip/2.0200ok via:sip/2.0/udp192.168.2.161:10586 from:sip:01062237496192.168.2.89 ;tag=ca04c1391af3429491f2c4d fbe5e1b2e;epid=4f2e395931to: sip:01062237496192.168.2.89 ;tag=-00834- 14d0805b62bc026d call-id:da56b0fab5c54398b16c0d9f9c0ffcf2192.168.2.161 cseq:1register allow:inv
2、ite,ack,options,bye,cancel,register,info,update,prack,r efer,subscribe,notify,message contact:sip:192.168.2.161:10586content-length:0expires:36003 )鉴权注册消息实例 当需要鉴权注册时,当请求端 192.168.2.161 使用 bol 或 xlite 等发 送注册消息给 192.168.2.89 服务器时,服务器对 192.168.2.161 发 送 “401 unauthorized ”信息给请求端,提示请求段需要带上鉴权信 息重新注册,请求端带
3、上鉴权信息后(带有“authorization ”头字段)重新向服务器注册,服务器验证鉴权头的正确性,如果鉴权成功, 给请求端发送 200 ok 消息。若失败,继续发送 401 消息。 第一步:请求端( 192.168.2.161 )发送 register 消息,参考消息如 下:【篇二: sip 注册消息举例】call-id : 必选 cseq : 必选 from : 必选 to : 必选 max-forwards : 必选 via : 必选 常用的可选参数: 指定的消息体 2 )消息实例发送 message 请求消息给 192.168.2.48 的 6010 端口,参考消息 如下(带了 “h
4、ello 的”消息体): messagesip:1897778888192.168.2.48:6010sip/2.0 call-id:8e12c17121ac4121bf927f6fd8013358192.168.2.89 from: sip:01052237300192.168.2.89 ;tag=-0037- 708c9a5cba8dd878to: sip:1897778888192.168.2.89 cseq:1message via:sip/2.0/udp192.168.2.89:14010;branch=z9hg4bk-22bd7222 max-forwards:30 allow:i
5、nvite,ack,options,bye,cancel,register,info,update,prack,r efer,subscribe,notify,message contact: sip:192.168.2.89:14010 content-type:text/plaincontent-length:5hello 收到来自 192.168.2.48 的 6010 端口的返回消息,参考消息如 下(修改了消息体的内容,变成了 “hello amigo ”): sip/2.0200okvia:sip/2.0/udp192.168.2.89:14010;branch=z9hg4bk-22
6、bd7222 from: sip:01052237300192.168.2.89 ;tag=-0037- 708c9a5cba8dd878to: sip:1897778888192.168.2.89 ;tag=-002-3c18e810ab17c76f call-id:8e12c17121ac4121bf927f6fd8013358192.168.2.89 cseq:1message allow:invite,ack,options,bye,cancel,register,info,update,prack,r efer,subscribe,notify,message contact: si
7、p:192.168.2.48:54010 content-type:text/plain content-length:11helloamigo2 、 register 消息1)头字段填写说明 call-id : 必选 cseq : 必选 from : 必选 to : 必选 max-forwards : 必选 via : 必选 contact : 必选authorization : 必选expires : 常用可选头2 )非鉴权注册消息实例在该实例中 192.168.2.161 机器发送注册消息给 192.168.2.89 服务 器,发送消息实例如下: registersip:192.168.
8、2.89sip/2.0 via:sip/2.0/udp192.168.2.161:10586max-forwards:70from:sip:01062237496192.168.2.89 ;tag=ca04c1391af3429491f2c4d fbe5e1b2e;epid=4f2e395931to: sip:01062237496192.168.2.89 call-id:da56b0fab5c54398b16c0d9f9c0ffcf2192.168.2.161 cseq:1registercontact:sip:192.168.2.161:10586 ;methods=invite,mess
9、age,info,subscri be,options,bye,cancel,notify,ack,refer user-agent:rtc/1.2.4949(bolsipphone1005)event:registration allow-events:presence content-length:0 当注册成功(回送 200 ok )时,服务器发送的 res 消息参考如下:sip/2.0200okvia:sip/2.0/udp192.168.2.161:10586from:sip:01062237496192.168.2.89 ;tag=ca04c1391af3429491f2c4d f
10、be5e1b2e;epid=4f2e395931to: sip:01062237496192.168.2.89 ;tag=-00834-14d0805b62bc026d call-id:da56b0fab5c54398b16c0d9f9c0ffcf2192.168.2.161 cseq:1registerallow:invite,ack,options,bye,cancel,register,info,update,prack,r efer,subscribe,notify,messagecontact:sip:192.168.2.161:10586content-length:0expire
11、s:36003 )鉴权注册消息实例当需要鉴权注册时,当请求端 192.168.2.161 使用 bol 或 xlite 等发 送注册消息给 192.168.2.89 服务器时,服务器对 192.168.2.161 发 送 “401 unauthorized ”信息给请求端,提示请求段需要带上鉴权信息重新注册,请求端带上鉴权信息后(带有“authorization ”头字段)重新向服务器注册,服务器验证鉴权头的正确性,如果鉴权成功, 给请求端发送 200 ok 消息。若失败,继续发送 401 消息。 第一步:请求端( 192.168.2.161 )发送 register 消息,参考消息如 下:r
12、egistersip:192.168.2.89sip/2.0via:sip/2.0/udp192.168.2.161:8021max-forwards:70from:sip:01062237493192.168.2.89 ;tag=efca469543ce4788a6a6a2c 7b66cd01f;epid=de4504430dto: sip:01062237493192.168.2.89 call-id:c88a247a74b54a8c9e676bdde3bba6c9192.168.2.161 cseq:1registercontact:sip:192.168.2.161:8021 ;met
13、hods=invite,message,info,subscrib e,options,bye,cancel,notify,ack,refer user-agent:rtc/1.2.4949(bolsipphone1005)event:registrationallow-events:presencesip/2.0401unauthorizedvia:sip/2.0/udp192.168.2.161:8021from:sip:01062237493192.168.2.89 ;tag=efca469543ce4788a6a6a2c 7b66cd01f;epid=de4504430dto: sip
14、:01062237493192.168.2.89 ;tag=-001893-38ba013ba3dde36e call-id:c88a247a74b54a8c9e676bdde3bba6c9192.168.2.161 cseq:1register allow:invite,ack,options,bye,cancel,register,info,update,prack,r efer,subscribe,notify,messagecontact: sip:192.168.2.89:14010content-length:0registersip:192.168.2.89sip/2.0via:
15、sip/2.0/udp192.168.2.161:8021max-forwards:70from:sip:01062237493192.168.2.89 ;tag=efca469543ce4788a6a6a2c7b66cd01f;epid=de4504430dto: sip:01062237493192.168.2.89 call-id:c88a247a74b54a8c9e676bdde3bba6c9192.168.2.161 cseq:2registercontact:sip:192.168.2.161:8021 ;methods=invite,message,info,subscrib e
16、,options,bye,cancel,notify,ack,refer user-agent:rtc/1.2.4949(bolsipphone1005) nse=f57e47ce03162293b9ced07362ce2b79 event:registration allow-events:presencecontent-length:0 第四步:服务器端( 192.168.2.89 )验证鉴权信息 的合法性,若验证成功,发送 200 ok 消息,参考消息如下: sip/2.0200okvia:sip/2.0/udp192.168.2.161:8021from:sip:01062237493
17、192.168.2.89 ;tag=efca469543ce4788a6a6a2c 7b66cd01f;epid=de4504430dto: sip:01062237493192.168.2.89 ;tag=-001894- a5eb977c8969aa51 call-id:c88a247a74b54a8c9e676bdde3bba6c9192.168.2.161 cseq:2register allow:invite,ack,options,bye,cancel,register,info,update,prack,r efer,subscribe,notify,message contac
18、t:sip:192.168.2.161:8021content-length:0expires:36003 、 subscribe 消息 1)头字段填写说明 call-id : 必选 cseq : 必选 from : 必选 to : 必选max-forwards : 必选via : 必选 expires :常用可选头2 )消息实例请求端( 192.168.2.161 )给服务器端( 192.168.2.89 )发送 subscribe 消息,参考消息如下: subscribesip:01062237498192.168.2.89:5060sip/2.0via:sip/2.0/udp192.16
19、8.2.161:32092;branch=z9hg4bk-d87543- ec03ee3e022acf28-1-d87543-;rportmax-forwards:70contact: sip:01062237498192.168.2.161:32092 to:01062237498 sip:01062237498192.168.2.89:5060 from:01062237498sip:01062237498192.168.2.89:5060 ;tag=e01c2548 call-id:ndqzmge1mdmzywu0njriyzmxmgy3nguxmjbhmjbkntq. cseq:1su
20、bscribeexpires:300 allow:invite,ack,cancel,options,bye,refer,notify,message,subsc ribe,infouser-agent:eyebeamrelease1011dstamp40820 event:message-summarycontent-length:0 服务器端( 192.168.2.89 )发送回执的 200 ok 信 息,参考消息如下:sip/2.0200ok via:sip/2.0/udp192.168.2.161:32092;branch=z9hg4bk-d87543- ec03ee3e022acf2
21、8-1-d87543-;rportfrom:01062237498 sip:01062237498192.168.2.89:5060 ;tag=e01c2548 to:01062237498 sip:01062237498192.168.2.89:5060 call-id:ndqzmge1mdmzywu0njriyzmxmgy3nguxmjbhmjbkntq. cseq:1subscribecontent-length:04 、 invite 消息1 )头字段填写说明 必选头域如下: call-id contact cseq from to max-forwards via supported
22、 allow 常用可选头域: accept authorizationcontent-length content-type record-route route require proxy-authorization proxy-require p-asserted-identity p-prefered-identity privacy2 )非鉴权 invite 消息实例 在这个实例中,笔者在本机( 192.168.2.161 )上使用 bol 注册了号码,呼叫 01062230001 号码时发送 invite 消息给 服务器( 192.168.2.89 )的软交
23、换,发送 invite 消息参考如下: invitesip:01062230001192.168.2.89sip/2.0 via:sip/2.0/udp192.168.2.161:9545 max-forwards:70 from:administrator sip:17899998888192.168.2.89 ;tag=2dc6e1000081463ba14f7d b4e50b8643;epid=d6b5434cef to: sip:01062230001192.168.2.89 call-id:31e72e80d5b04f52aba6cb8be8f3c0c0192.168.2.161 c
24、seq:1invite contact: sip:192.168.2.161:9545 user-agent:rtc/1.2 content-type:application/sdp content-length:691 v=0 o=-00inip4192.168.2.161 s=session c=inip4192.168.2.161 b=ct:1000 t=00 m=audio56284rtp/avp97111112608453101 k=base64:fgmazgf5gxzfjxz27g9a7rxa4b7kx0phrjyelkphpog a=rtpmap:97red/8000 a=rtp
25、map:111siren/16000 a=fmtp:111bitrate=16000 a=rtpmap:112g7221/16000a=fmtp:112bitrate=24000 a=rtpmap:6dvi4/16000 a=rtpmap:0pcmu/8000 a=rtpmap:8pcma/8000 a=rtpmap:4g723/8000 a=rtpmap:5dvi4/8000 a=rtpmap:3gsm/8000 a=rtpmap:101telephone-event/8000 a=fmtp:1010-16 a=encryption:optional m=video61432rtp/avp3
26、431 k=base64:w5utu8siqjjvpwyrf31gzouvwahfte1camblk+mvddi a=recvonlya=rtpmap:34h263/90000 a=rtpmap:31h261/90000 a=encryption:optional 其中 m 行表示支持的媒体编码,其中 “m=audio 56284 rtp/avp 97 111 112 6 0 8 4 5 3 101指明了”几种支持的音频媒体类型, “m=video 61432 rtp/avp 34 31 ”指明了几种支 持的视频媒体类型。软交换服务器( 192.168.2.89 )接收到 invite 消 息
27、后,即刻发送了 100 trying 消息,如下所示: sip/2.0100tryingvia:sip/2.0/udp192.168.2.161:9545 from:administratorsip:17899998888192.168.2.89 ;tag=2dc6e1000081463ba14f7d b4e50b8643;epid=d6b5434cefto: sip:01062230001192.168.2.89 call-id:31e72e80d5b04f52aba6cb8be8f3c0c0192.168.2.161 cseq:1invitecontent-length:0 软交换服务器(
28、 192.168.2.89 )查找被叫号码消息, 并发送 invite 消息给被叫的地址,接收到被叫的 100 trying 消息, 而后接收到 180 ringing 消息,软交换服务器给主叫方也发送 180 ringing 消息,告知被叫已振铃,发送消息如下:(第一行可不关注, 是笔者公司的底层打出的消息): 16:15:59=siptransactionsendsipmessage(455bytes)to192.1 68.2.161:9545 sip/2.0180ringingvia:sip/2.0/udp192.168.2.161:9545from:administratorsip:1
29、7899998888192.168.2.89 ;tag=2dc6e1000081463ba14f7d b4e50b8643;epid=d6b5434cefto: sip:01062230001192.168.2.89 ;tag=-006773- 7d10081ef45af150 call-id:31e72e80d5b04f52aba6cb8be8f3c0c0192.168.2.161 cseq:1inviteallow:invite,ack,options,bye,cancel,register,info,update,prack,r efer,subscribe,notify,message
30、contact: sip:192.168.2.89:14010content-length:0 软交换服务器( 192.168.2.89 )接收到被叫的 invite 消息的 200 ok 消息,给主叫方也发送 200 ok 消息,消息参 考如下:sip/2.0200ok via:sip/2.0/udp192.168.2.89:14010;branch=z9hg4bk-50c44f35 from: sip:17899998888192.168.2.89 ;tag=-002221- d749165cdfed2151to: sip:01062230001192.168.2.89 ;tag=6b3e
31、0000bf5c0000 call-id:fdfa416f8779a8701af1086b07879a65192.168.2.89 cseq:1invitecontact: sip:192.168.2.161:5060 content-type:application/sdp allow:invite,ack,options,bye,cancel,update,prack,refer,subscri be,notify,messagecontent-length:118 v=0o=-11inip4192.168.2.161s=- t=00 m=audio19194rtp/avp8 c=inip
32、4192.168.2.161 a=rtpmap:8pcma/8000 3 )签权 invite 消息实例5、 ack 消息1 )头字段填写说明 必选头域如下: call-id cseq from tomax-forwordsvia 常用可选头域: content-length content-type route2 )消息实例在“4、 invite 消息 ”中讲到了主叫方接收到 invite 消息的 200 消息后, 接着给主叫方发送 ack 消息,消息参考如下: acksip:192.168.2.89:14010sip/2.0via:sip/2.0/udp192.168.2.161:9545
33、 max-forwards:70from:administrator sip:17899998888192.168.2.89 ;tag=2dc6e1000081463ba14f7d b4e50b8643;epid=d6b5434cefto: sip:01062230001192.168.2.89 ;tag=-006773- 7d10081ef45af150 call-id:31e72e80d5b04f52aba6cb8be8f3c0c0192.168.2.161 cseq:1ackuser-agent:rtc/1.2content-length:06 、 bye 消息1 )头字段填写说明 必选
34、头域如下: call-id cseq from to max-forwards via 常用可选头域: content-length content-type route reason2 )消息实例本实例笔者在本机( 192.168.2.161 )上注册了号码, 呼叫 01062230001 号码时发送 invite 消息给服务器( 192.168.2.89 )bye 消的软交换,并与呼叫的号码建立通话后,主叫方主动挂断时, 息如下所示:byesip:192.168.2.89:14010sip/2.0 via:sip/2.0/udp192.168.2.161:9545
35、 max-forwards:70 from:administratorsip:17899998888192.168.2.89 ;tag=2dc6e1000081463ba14f7d b4e50b8643;epid=d6b5434cefto: sip:01062230001192.168.2.89 ;tag=-006773- 7d10081ef45af150 call-id:31e72e80d5b04f52aba6cb8be8f3c0c0192.168.2.161 cseq:2bye user-agent:rtc/1.2content-length:0 服务器发送 200 ok 消息,参考实例如
36、下:sip/2.0200okvia:sip/2.0/udp192.168.2.161:9545 from:administratorsip:17899998888192.168.2.89 ;tag=2dc6e1000081463ba14f7d b4e50b8643;epid=d6b5434cefto: sip:01062230001192.168.2.89 ;tag=-006773- 7d10081ef45af150 call-id:31e72e80d5b04f52aba6cb8be8f3c0c0192.168.2.161 cseq:2byecontent-length:07 、 prack
37、消息1 )头字段填写说明 必选头域如下: call-id cseq from to max-forwards via rack 常用可选头域: content-type content-length2 )消息实例如下是 prack 消息的参考实例:pracksip:192.168.2.154:5060sip/2.0cseq:2prackcontact: sip:01055554444192.168.2.46content-length:0from: sip:01055554444192.168.2.154 ;tag=6c789654to: sip:01062237400192.168.2.15
38、4 ;tag=0012- f1939f63004dbd16 via:sip/2.0/udp192.168.2.46;branch=z9hg4bk04982ba62 user-agent:huawei-mc820/1.0.0 supported:100relrack:11invite8 、 info 消息1 )头字段填写说明 必选头域如下: call-id cseq from to max-forwards via 常用可选头域: content-type content-length routeinfo2 )消息实例 在笔者开发过程中,媒体服务器与软交换服务器之间的使用的是 info 消息交互
39、,如下消息为软交换服务器向媒体服务器发送的 消息(请求开始录音),参考如下: infosip:192.168.2.89:14010sip/2.0 call-id:52f3d02182b72d37c48cea5dd013a401192.168.2.89 from: sip:msmlminicc:5090 ;tag=013913-74fa8415d2902b1c to: sip:as ;tag=-00708-b879297623d39362 cseq:1info via:sip/2.0/udp192.168.2.89:5090;branch=z9hg4bkf06b482d max-forwards
40、:30 allow:invite,ack,options,bye,cancel,register,info,update,prack,r efer,subscribe,notify,message contact: sip:192.168.2.89:5090 content-type:application/msml+xml content-length:164?xmlversion=1.0encoding=us-ascii?msmlversion=1.1 eventname=app.startingrecordid=conf:002221c6082350d233/di alog:prleg7
41、08/event/msml 如下是媒体服务器回送的 200 ok 消息,消息参考如下: sip/2.0200okvia:sip/2.0/udp192.168.2.89:5090;branch=z9hg4bkf06b482d from: sip:msmlminicc:5090 ;tag=013913-74fa8415d2902b1cto: sip:as ;tag=-00708-b879297623d39362 call-id:52f3d02182b72d37c48cea5dd013a401192.168.2.89 cseq:1info allow:invite,ack,options,bye,c
42、ancel,register,info,update,prack,r efer,subscribe,notify,messagecontact: sip:192.168.2.89:14010 content-length:09 、 options 消息1 )头字段填写说明 必选头域如下: call-id cseq from tomax-forwordsvia 常用可选头域: accept allow supported【篇三: sip 注册消息举例】sip 消息由三部分组成,即:开始行( startline )、消息头 (header) 、 正文 (body) start-line:请求行 r
43、equest-line消息为 request 消息时使用 request-line request-line=methodsprequest-urispsip-versioncrlf 状态行 status-line消息为响应消息时使用 status-line status-line=sip-versionspstatus-codespreason-phrasecrlf 请求行 request-line 由消息方法 +request-uri+sip 版本组成:消息方法 :以下列出了六种消息方法 register: 注册联系信息 invite: 发起会话请求 ack: 对 invite 请求的响应
44、的确认 cancel: 取消请求 bye: 终结会话 options: 查询服务器能力 request-uri: 指示请求的用户或者服务的地址信息 sip-version: 请求和响应消息都需要包含 sip 版本信息 状态行 status-line 由 sip 版本 +状态码 +原因短语组成 举例 :sip/2.0200ok消息头 : 格式 :字段名( field-name ) :参数值( field-value ) max-forwards:70 call- id:email=843817637684230998sdasdh09843817637684230 998sdasdh09/emai
45、l cseq:1826register contact: sip:bob192.0.2.4 expires:7200 content-length:0 上面 via 、max-forwards 、to 、from 、 call-id 等这些都是些常有的 头域, sip 的头域总共有 44 个之多。sip 事务的概念:一个 sip 请求以及由它触发的一系列应答(包括临 时应答和一个最终应答)。sip 请求有 6 种(核心规范定义的,也有扩展),也叫 6 个方法 (method 字段标识 ): invite, ack, options, bye, cancel, register sip 请求的格
46、式包括请求行 (如 invite sip:192.168.101.30 sip/2.0) , sip 应答的格式包括状态行 (如 sip/2.0 100 trying) ; sip 应答的状态 码从 100 到 699 ,其中 100199 是临时 (provisional) 应答。 invite 请求是三次握手机制,其他请求都采用两次握手机制。cancel 请求用于取消悬而未决的事务,我的理解是一方发出 invite , 但是另一方始终没有做出应答,发出 200ok 消息(超过了默认的振 铃时长),那么 uac 会 自动发出一个 cancel 请求, uas 返回200ok ,并且同时发出
47、487 状态码的应答, uac 再对收到的 487 消 息发出 ack 确认,即最开始的 invite 和 487 以及 ack 构成三次握手。 options 请求用于询问服务器的性能情况,包括这个服务器所支持的 方法(可能会有扩展方法)和会话描述协议。 代理服务器的三种类型:保留呼叫状态代理、保留状态代理、不保 留状态代理。这三种类型的代理在处理能力和所占用资源上有差别, 在代理分发中我们采用网络核心无状态,而在流量较小的网络边界 采用智能性高的保留(呼叫)状态服务器处理路由。sip 消息编码采用文本方式(即使用字符串),相对的是二进制的编 码方式,前者易于调试和扩展,后者则有利于节省带宽
48、。sip 标题头:call-id 字 段用于标识一个特定邀请以及与这个邀请相关的所有后续 事务(即标识一个会话),比如一方发起邀请加入一个国际象棋的 会话,那么 invite 请求以及应答, bye 请求以及应答都共享一个 call-id ,因为这两个事务都属于一个特定邀请。而两个用户之间可以 同时存在多个邀请(比如在下象棋的同时发起聊天的邀 请),那么 一个邀请中的后续事务将通过这个邀请特有的 call-id 来区分,如一 方发出 bye 消息来结束聊天,但是下棋仍然进行中,那么另一方将 根据 bye 消息的 call-id 来确定要结束的究竟是哪一个会话。 cseq 字段是用来给同一个会话
49、中的 事务进行排序的。可以理解为, 会话由 call-id 来标识,会话中的事务则由 cseq 标识。除了 ack 请 求和 cancel 请求, invite 之后的请求中 cseq 字段的数字是最初请 求 (invite) 的 cseq 递增的结果。而 ack 和 cancel 请求则拥有与它所 确认(取消)的请求相同的 cseq 数字部 分,只是方法名不同。 (sip 标题头续 ) contact 字段是被呼叫方发送 200ok 消息时带上的,包含了被叫方 的真实 ip ,这样 sip 服务器在路由第一个 invite 请求之后就可以被 卸载掉(越过),不再需要存在于信令路径中。recode-route 和 route 字 段是用来使 sip 服务器保留在每次请求中, 不被绕过。 record-route 字段由信令路径上的服务器添加(每经过 一个信令路径上必须存在的代理,就添 加一个 record-route 标题 头), maddr 参数包含该代理的 ip 地址。被叫方发出的 200ok 应 答包含 record-route 和 contact 字段(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 宣传委员竞选演讲稿集合15篇
- 2025年高考物理大二轮-第二篇 四、物理情境题破译法
- 2025年电子竞技行业电竞赛事与电子竞技市场研究报告
- 2025年及未来5年中国高端白酒行业市场前景预测及投资方向研究报告
- 2025年健康养生行业健康管理与养生保健市场研究报告
- 2025年保险行业智能理赔服务研究报告
- 2025会计面试题目及答案笔试
- 2025中交第一航务工程局有限公司招聘69人笔试题库历年考点版附带答案详解
- 2025年IT行业云计算与大数据技术发展研究报告
- 2025成人高考试题及答案解析
- 物业服务提升方案模板
- 不同茶叶的冲泡方法
- 人教版高中地理必修第一册第一章宇宙中的地球第一节地球的宇宙环境练习含答案
- 信息科技风险安全
- 中建幕墙工程安全专项施工方案
- 诊所中药饮片清单汇编
- 红木文化智慧树知到答案2024年广西大学
- 招标代理机构遴选投标方案(技术标)
- 吊车施工专项方案
- 肺栓塞患者护理查房课件
- 9月30日烈士纪念日缅怀先烈功绩弘扬先烈精神课件
评论
0/150
提交评论