SIP协议初级讲义(V2.0).ppt_第1页
SIP协议初级讲义(V2.0).ppt_第2页
SIP协议初级讲义(V2.0).ppt_第3页
SIP协议初级讲义(V2.0).ppt_第4页
SIP协议初级讲义(V2.0).ppt_第5页
已阅读5页,还剩68页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

SIP协议初级讲义 基本信息 适用对象: SIP协议初学者 学习目标: 掌握SIP协议的基本术语 理解SIP/SDP消息 掌握SIP协议的寻址过程 掌握媒体协商过程 掌握SIP呼叫流程 具有SIP协议的独立学习能力 时间: 3小时学习1小时讨论 学习内容 1. 概述(*) 2. SIP的功能实体 3. SIP的寻址 4. SIP消息体结构 (*) 5. SIP请求消息(*) 6. SIP响应消息 7.Sdp协议 8.SIP的能力协商 9.案例分析(*) 10.测验 11.实现方法入门 12.SIP学习方法 *部分将重点讲述 1.SIP协议概述 基本情况 主要特点 主要结构 名词解析 基本情况 创立 l组织:IETF/mmusic工作组 lIP网络协议的后起之秀,是NGN的理想协 议 l时间:1995开始研究 1999年2月提出草案 l草案编号:RFC2543 l目前版本:Version 9(Feb,2002) 主要特点 ?是应用层的控制协议,可以建立,修改和结束多媒体 会话。 ?独立于TCP或者UDP,使用自己应用层协议保证消息 的可靠传送。 ?消息体采用文本方式 ?以客户服务器方式建立会话 ?灵活的寻址方式 ?SIP没有媒体协商功能,往往需要集成SDP协议 主要结构 UserAgent SIP Proxy Server UserAgnet SIP Redirect Server SIP Proxy Server Location Server IP Network Registrar Server DBMS 图例 SIP协议 私有协议 2.功能实体 User Agent Proxy Server Redirect Server Registrar Server Location Server 功能实体(1) “ url-parameter ) url-parameter = transport-param | user-param | method-param | ttl-param | maddr-param | other -param transport-param = “transport=“ ( “udp“ | “tcp“ ) ttl-param = “ttl=“ ttl ttl = 1*3DIGIT ; 0 to 255 maddr-param = “maddr=“ host user-param = “user=“ ( “phone“ | “ip“ ) method-param = “method=“ Method tag-param = “tag=“ UUID UUID = 1*( hex | “-“ ) other-param = ( token | ( token “=“ ( token | quoted-string ) headers = “?“ header *( “ | “/“ | “?“ | “:“ | “ | “transport=tcp lsip:?subject=project lsip:+1-212-555- 1212:1234;user=phone lsip:1212 lsip:alice lsip: lsip:alice%40 lsip:;method=REGISTER 定位Proxy服务器 q= value; Example : Accept : text/plain; q=0.5, text/html, text/x-dvi; q=0.8, text/x-c CallID: 唯一标识一个会话,保持全球的唯一性 Call-ID区分大小写 随机产生,有效的提高安全性 CallID相同,消息体不同时将更新会话 Syntax: Call-ID = (“Call-ID” | “i”)”:”local-id”host Example:Call-ID: f81d4fae-7dec-11d0-a765- 00 关键头域解析(Cseq) Cseq v对于每一个请求,客户必须使用Cseq(Command sequence)通 用头域 v重传请求用相同的Cseq vACK和CANCEL相应必须返回跟INVITE请求相同的Cseq vBYE请求释放一个请求时必须含有以更高数值的Cseq v用户代理服务器必须记住同一个Call-ID的INVITE请求的最高序列数 。 v所有在并行搜寻中产生的请求拥有和触发此并行搜寻的请求一样的 Cseq值。 Syntax: Cseq =“Cseq” “:” 1*DIGIT Method Funtion:不用比较消息体就可以将不同消息区分开来 Example: CSeq: 4711 INVITE 关键头域解析(From,To) From(源地址) v请求和响应必须包含From通用头域,指示请求的初始者 v “tag”可以出现在一个请求的From头域中,当共享同一个SIP地址的用 户的两个实例使用同一个Call-ID发出邀请时,必须使用此“tag”, 如 Forks。 To(目的地地址) vTo通用头域说明了请求的接收者 v如果请求包含了不止一个Via头域,则必须增加“tag”参数。 Syntax: To =(“To” | “t”)“:”(name-addr | addr-spec)*(“;”addr-params) Example: To: The Operator ;tag=287447 关键头域解析(Max-Forwards,Via) Max-Forwards(最大前转数目) v用来限制前转请求的代理或者网关的数目,防止死循环。 v适用于任何请求方式, v防止死循环的还有Via域 Via v头域指示请求迄今为止所走的路径。 v确保消息能够迎着原请求路径返回 v防止死循环 关键头域解析(ContentLength) Content-Length(内容长度) v实体头域指示消息体的长度。形式上以八个比 特为一个字节。 v服务器如果收到一个包含有Content-Length域 的UDP请求。但它的值比消息体的实际长度大 ,客户则应产生一个400类的响应。 关键名词解析(Subject) Subject(标题) v为请求头域提供了一个摘要,或者指示了呼叫的实际情 况 v可以不必分析通话描述便可过滤呼叫。 Syntax: Subject = (“subject” | “s”)“:”*TEXT-UTF8 Timestamp(时间标记) v指示客户何时向服务器发送请求 v服务器不能修改此值 v可以计算Round-Trip时间,以便更改TimeOut时间 5. SIP请求消息 INVITE ACK BYE REGISTER CANCEL OPTIONS INVITE(会话邀请) 表示号码连接符 c=IN IP4 2/127/3 / Connection Data l/ c= l/ IN stand for Internet /127 stand for TIME TO LIVE (range 0-255) l/3表示后面连接的地址生命期是127 b=12345678:8 / b=:。可选项 ,modifier是带宽的修饰语,带宽值的单位是kilobits/second t=2873397496 2873404696 / t= 如果 stop time 为零,则会话无效;如果start time 为0,则永久有效。 注意要写上start time 和 stop time,以防止防止意外。 K= uri: / Encryption Keys k=: / 到URI指定的地址取密钥 a=recvonly / a= m=audio 49170 RTP/AVP 0 / 可多选 m= / AVP=audio/video profile / 参考下页表 m=video 51372 RTP/AVP 31 Audio EncodingPayload type 10161 DVI4 5, 6 G7212 G722 9 G72815 GSM 3 L1610, 11 LPC 7 MPA14 PCMA 8 PCMU 0 Payload types for standard audio encoding 8 . 能力协商 协商介绍 协商例子 UA能力协商概述 &主叫携带能力集 INVITE的消息体中带有UAC(主叫)的能力集 &被叫证实能力 UAS(被叫)在从主叫的能力集中选择一种, 通过200 OK消息返回 &根据消息体中的IP地址和端口号创建RTP流 c=IN IP4 (例子参加案例分析之“基本呼叫”) 9.案例分析 最简单的呼叫 经过两个Proxy的呼 叫 呼叫转移 INVITE john1 c=IN IP4 0 m=audio 49170 RTP/AVP 0 3 200 OK c=IN IP4 1 m=audio 12345 RTP/AVP 3 Johns terminal rings ACK 1 John Mary Port 12345 The response indicates that Johns terminal can receive GSM data, on port 12345 0 例子一:最简单的呼叫 180 Ring GSM Stream 200 OK BYE 例子二:经过两个Proxy的呼叫 例子三: 遇忙转移 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 OK 200 OK 10. 测验 1.SIP网络的主要功能实体是什么? 2. SIP协议有什么请求消息? 3. SIP如何寻址? 4. 如何进行媒体协商? 5. 画出经过一个Proxy Server的呼叫序列图 11. SIP协议的实现方法入门 概述 封装消息 解析消息 状态机 实现方法概述 封装消息 解析消息 状态机的实现 12. SIP的继续学习方法 1.SIP协议原文(RFC2543) 2. SIP协议的扩展(RFC2976) 3. SIP的权威站点 4.1)/html.charters/sip-charter.html(官方站点) 5.2) Htt

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论