SIP 协议讨论 - 首页 - 东营市一中.ppt
《SIP 协议讨论 - 首页 - 东营市一中.ppt》由会员分享,可在线阅读,更多相关《SIP 协议讨论 - 首页 - 东营市一中.ppt(73页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、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协议概述,基本情况主要特点主要结构名词解析,基本情况,创立组织:IETF/mmusic工
2、作组IP网络协议的后起之秀,是NGN的理想协议时间:1995开始研究 1999年2月提出草案 草案编号:RFC2543目前版本:Version 9(Feb,2002),主要特点,是应用层的控制协议,可以建立,修改和结束多媒体会话。独立于TCP或者UDP,使用自己应用层协议保证消息的可靠传送。消息体采用文本方式以客户服务器方式建立会话灵活的寻址方式SIP没有媒体协商功能,往往需要集成SDP协议,主要结构,UserAgent,SIP Proxy Server,UserAgnet,SIP Redirect Server,SIP Proxy Server,Location Server,IP Netw
3、ork,Registrar Server,DBMS,图例,SIP协议,私有协议,2.功能实体,User AgentProxy ServerRedirect ServerRegistrar ServerLocation Server,功能实体(1),User Agent(呼叫代理)是SIP网络的终端,具体的分为UserAgent Client和UserAgent Server。UAC是客户端,表示主叫;UAS是服务端,表示被叫。REGISTRAR SERVER(注册服务器)接受客户端的注册请求,将用户的地址信息写入数据库,并返回注册状态。,功能实体(2),REDIRECT SERVER(重定向服
4、务器) 接受SIP的请求,映射请求的原地址成零个或者多个IP地址,并且返回给客户端。 由客户端重新发起请求。LOCATION SERVER(定位服务器) 管理若干数据库,接受由Redirect Server或者Proxy Server的路由查询。,功能实体(3),Proxy Server(代理服务器) 完成SIP消息的转接和转发功能,可以修改SIP消息内容。具体功能有:呼叫认证状态管理 路由选择失败重传,3. SIP协议的寻址,SIP URLURL的表示规则定位UserAgent定位方式,SIP URL,SIP依靠URL进行路由。SIP URL的格式可以是EmailID或者是E.164地址。S
5、IP: userhostTEL:URL可以用在下面头域中:FROM头域 FROM:TO头域TO: CONTACT头域:可以方便的嵌入网页,提供多种网上业务,SIP-URL = sip: userinfo hostport url-parameters headers userinfo = user : password user = *( unreserved | escaped | url-parameter ) url-parameter = transport-param | user-param | method-param | ttl-param | maddr-param | ot
6、her-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
7、 = ? header *( | / | ? | : | | & | = | + | $ | , digits = 1*DIGIT,URL的表示规则,例子,sip:sip:j.doe:;transport=tcpsip:?subject=projectsip:+1-212-555-1212:;user=phonesip:sip:alice10.1.2.3sip:sip:alice%sip:;method=REGISTER,定位Proxy服务器,配置UA指向Proxy Server配置UA指向Redirect Server,由Redirect Server分配合适的Proxy Server,定位
8、SIP UserAgent Server(被叫),User Agent激活时通过Registrar Server注册。Proxy Server通过Location Server得到User Agent Server的路由。Proxy Server根据地址呼叫UserAgent Server如果没有能到达UserAgent Server的路由,必须返回UserAgent Client(主叫)具体的原因,包括代码和文字的原因。,定位UserAgent的方式,简单方式 主叫Proxy可以直接发送请求消息到被叫,建立会话。只适应小型网络。复杂方式 主叫的Proxy Server也可以发请求消息到被叫的
9、Proxy Server,由Proxy Server根据URI重新定位UserAgent Server。,注意的问题(1),Location Server可能会返回几个位置,Proxy Server可以决定如何处理。如果Proxy Server转发SIP 请求,它必须将自己的IP地址加入到Via部分的开头。而在返回的时候,将Via域中的地址去掉。,注意的问题(2),在进行Forks定位时,用相同的CallID,Cseq,而Tags不同。Proxy有两种形式:有状态返回UserAgent 100消息,表示Proxy 可以完成状态的管理无状态Proxy不能管理呼叫状态,必须有UserAgent自己
10、解决,注意的问题(3)(比较CallID/CSeq/Tag),CallID 是会话的唯一标志 一个会话过程使用同一个CallID 随机产生Cseq 是会话命令的序列一个Transaction使用同一个Cseq32位无符号整数判断命令的版本以Bye结束会话时增加“tag”是一个标签,用来区别会话中的不同对象。 出现在请求的From头域中,当共享同一个SIP地址的用户的两个实例使用同一个Call-ID发出邀请时,必须使用此“tag”。Proxy使用tag来判断消息是传给自己,还是给用户。单个用户的Tag在呼叫过程中保持一致,注意的问题(4),CALL LEG (呼叫历程) Call leg用Cal
11、lID(呼叫标识)、From(源方)和To(目的地)的组合来标识一个会话。TRANSACTION(事务) SIP定义一个请求及其最终应答称为一个事务。所有应答有相同的Call-ID,Cseq,To和From域。,4. SIP消息体结构,消息体结构头域说明,SIP 消息体组成,Start line(起始行详细描述),起始行Start-Line = request-line | status-line request-line = Method SP Request-URI SP SIP-Version CRLF INVITE sip :SSSunT SIP2.0status-line = SIP
12、-Version SP status-code SP phase CRLF SIP2.0 200 OK,General headers(通用头域),路由信息:Accept | Accept-Encoding | Accept-Language | Contact | Date| Encryption| Expires | From | Record-Route |Timestamp呼叫标示 : Call-ID, CSeq, INVITE sip: SipSunT SIP2.0 Via: SIP/2.0/UDP proxy.SunT Via: SIP/2.0/UDP sation1.SunT F
13、rom : Wang To : softswitch Call-ID : 23434 sation1.SunT CSeq: 1 INVITE Contact : WangSunT,其他头域(请求、响应、实体),Request Headers: Hide, In-Reply-To, Max-Forwards, Priority, Proxy-Authentication, Proxy-Require, Response-Key, Subject, RouteResponse Headers:Proxy-Authenticate, Retry-After, Server, Unsupported,
14、 Warning, WWW-AuthenticateEntity Headers: Allow, Content-Disposition, Content-Encoding, Content-Language, Content-Length, Content-Type, Expires,关键头域解析(Accept,CallID),Accept : 指明请求方所能接受的响应类型. 媒体类型: Internet media types, defined in MIME 缺省值是 application/sdp.syntax Accept : # ( */* | type/* | type/subt
15、ype ) ; 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-,关键头域解析(Cseq),Cseq对于每一个请求,客户必须使用Cseq(Co
16、mmand sequence)通用头域 重传请求用相同的Cseq ACK和CANCEL相应必须返回跟INVITE请求相同的CseqBYE请求释放一个请求时必须含有以更高数值的Cseq 用户代理服务器必须记住同一个Call-ID的INVITE请求的最高序列数。 所有在并行搜寻中产生的请求拥有和触发此并行搜寻的请求一样的Cseq值。 Syntax: Cseq =“Cseq” “:” 1*DIGIT Method Funtion:不用比较消息体就可以将不同消息区分开来Example: CSeq: 4711 INVITE,关键头域解析(From,To),From(源地址)请求和响应必须包含From通用
17、头域,指示请求的初始者 “tag”可以出现在一个请求的From头域中,当共享同一个SIP地址的用户的两个实例使用同一个Call-ID发出邀请时,必须使用此“tag”, 如Forks。To(目的地地址) To通用头域说明了请求的接收者如果请求包含了不止一个Via头域,则必须增加“tag”参数。Syntax: To =(“To” | “t”)“:”(name-addr | addr-spec)*(“;”addr-params) Example: To: The Operator ;tag=287447,关键头域解析(Max-Forwards,Via),Max-Forwards(最大前转数目) 用来
18、限制前转请求的代理或者网关的数目,防止死循环。适用于任何请求方式,防止死循环的还有Via域Via头域指示请求迄今为止所走的路径。确保消息能够迎着原请求路径返回防止死循环,关键头域解析(ContentLength),Content-Length(内容长度)实体头域指示消息体的长度。形式上以八个比特为一个字节。服务器如果收到一个包含有Content-Length域的UDP请求。但它的值比消息体的实际长度大,客户则应产生一个400类的响应。,关键名词解析(Subject),Subject(标题) 为请求头域提供了一个摘要,或者指示了呼叫的实际情况可以不必分析通话描述便可过滤呼叫。Syntax: Su
19、bject = (“subject” | “s”)“:”*TEXT-UTF8 Timestamp(时间标记) 指示客户何时向服务器发送请求 服务器不能修改此值可以计算Round-Trip时间,以便更改TimeOut时间,5. SIP请求消息,INVITEACKBYEREGISTERCANCELOPTIONS,INVITE(会话邀请),INVITE用于发起一个会话请求,建立会话的三个基本头域参数(CallID,From,To)。此三个基本参数在会话过程中保持不变。INVITE消息体中带有本次会话的基本参数连接地址主叫媒体能力带宽指示,ACK(邀请证实),证实INVITE请求ACK只和INVITE
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- sip 协议 协定 讨论 首页 东营 一中
限制150内