版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
HYPERLINK第一章SIP协议主要消息SIP消息分类SIP协议是以层协议的形式组成的,就是说它的行为是以一套相对独立的处理阶段来描述的,每个阶段之间的关系不是很密切。SIP协议将Server和UserAgent之间的通讯的消息分为两类:请求消息和响应消息。请求消息:客户端为了激活特定操作而发给效劳器的SIP消息,包括INVITE、ACK、BYE、CANCEL、OPTION和UPDATE消息。SIP请求的6种方法: 1、邀请〔INVITE〕——邀请用户参加呼叫2、确认〔ACK〕——确认客户机已经接收到对INVITE的最终响应3、可选项〔OPTIONS〕——请求关于效劳器能力的信息4、再见〔BYE〕——终止呼叫上的两个用户之间的呼叫5、取消〔CANCEL〕6、注册〔REGISTER〕——提供地址解析的映射,让效劳器知道其它用户的位置响应消息:效劳器向客户反应对应请求的处理结果的SIP消息,包括1xx、2xx、3xx、4xx、5xx、6xx响应SIP消息结构请求消息和响应消息都包括SIP消息头字段和SIP消息体字段;SIP消息头主要用来指明本消息是有由谁发起和由谁接受,经过多少跳转等根本信息;SIP消息体主要用来描述本次会话具体实现方式;消息格式请求消息格式SIP请求消息的格式,由SIP消息头和一组参数行组成,如REF_Ref27449086\r\h图3-1所示。通过换行符区分命令行和每一条参数行。命令名称命令名称对端URICall-id:值via:值协议版本消息头参数行To:值Contact:值From:值Content-Length:值Max-Forward:值WhiteSpaceSDPContent-Type:值Cseq:值SIP请求消息结构注意:参数行的顺序不是固定的。对应的参数解释见REF_Ref27479927\r\h6.3。消息体定义:Call-ID:头字段是用来将消息分组的唯一性标识From:头字段是指示请求发起方的逻辑标识,它可能是用户的注册地址。From头字段包含一个URI和一个可选的显示名称CSeq:头字段用于标识事务并对事务进行排序。它由一个请求方法和一个序列号组成,请求方法必须与对应的请求消息类型一致Max-Fowords:头字段限定一个请求消息在到达目的地之前允许经过的最大跳数。它包含一个整数值,每经过一跳,这个值就被减一。如果在请求消息到达目的地之前该值变为零,那么请求将被拒绝并返回一个483〔跳数过多〕错误响应消息。Via:头字段定义SIP事务的下层〔传输层〕传输协议,并标识响应消息将要被发送的位置。只有当到达下一跳所用的传输协议被选定后,才能在请求消息中参加Via头字段值。expires:参数指出了该值中包含的URI地址的有效期。这个参数的值是以秒为单位计算的。如果没有提供该参数,那么URI地址的有效期由Expires头字段值来确定。SIP请求消息实例:INVITEsip:0109@:5060;User=phoneSIP/2.0Call-ID:01E04633512400000@Via:SIP/2.0/UDP:5061From:<sip:010203@:5061;User=phone>;tag=29005358336B534F610A000To:<sip:0109@:5060;User=phone>Contact:sip:010203@:5061CSeq:1INVITEMax-Forwards:70Content-Type:application/SDPContent-Length:168v=0o=UserA28908445262890844526INIP4heres=SessionSDPc=INIP4t=00m=audio49172RTP/AVP08a=rtpmap:0PCMU/8000a=rtpmap:8PCMA/8000a=sendonlyINVITE消息是其中一种SIP请求消息。第一行由消息头和对端SIP实体的URI〔通用资源标识〕以及SIP版本号码组成。SIPURI是URI,附在IP地址上,表示对端和端点收发SIP消息的端口的域。“From〞、“To〞和“Contact〞这三个SIP消息头属于URI。当背靠背用户代理发出呼叫时,“From〞消息头中的URI填写在“Via〞消息头里。请求消息类型填写在CSeq消息头里,并且当该SIP端点发送一个请求,号码就相应递增。SIP协议版本为SIP/2.0。其中SDP被参加到INVITE消息内容里,在消息头里的Content-Length说明了SDP内容的长度。INVITE请求消息详解:INVITEsip:marconi@SIP/2.0<=请求方法、请求地址〔Request-URI〕、SIP版本号〔目前都是SIP/2.0〕<=请求地址一般就是被叫方地址,跟MSN中好友eMail地址类似Via:SIP/2.0/UDP:5060;branch=z9hG4bKfw19b<=SIP版本号〔2.0〕、传输类型〔UDP〕、呼叫地址、<=branch是一随机码,它被看作传输标识<=Via字段中地址是消息发送方或代理转发方设备地址,一般由主机地址和端口号组成<=传输类型可以为UDP、TCP、TLS、SCTPMax-Forwards:70<=最大跳跃数,就是经过SIP效劳器的跳跃次数,主要是防止循环跳跃<=每经过代理效劳器,该整数减一To:G.Marconi<sip:Marconi@>From:NikolaTesla<sip:n.tesla@>;tag=76341<=表示请求消息的发送方和目标方<=如果里面有用户名标签,地址要求用尖括号包起来<=对于INVITE消息,可以在From字段中包含tag,它也是个随机码Call-ID:123456789@<=呼叫ID是由本地设备生成的,全局唯一值。每次呼叫该值唯一不变<=对于用户代理发送INVITE消息,本地将生成Fromtag和Call-ID全局唯一码,被叫方代理那么生成Totag全局唯一码。这三个随机码做为整个对话中对话标识〔dialogindentifier〕在通话双方使用。CSeq:1INVITE<=CSeq,又叫命令队列〔CommandSeqence〕,每发送一个新的请求,该数自动加1*以上几个字段是所有SIP消息体所必须的,其它头字段有些是可选的,有些在特定请求也是必须Subject:AboutThatPowerOutage...Contact:<sip:n.tesla@><=Contact是INVITE消息所必须的,它用来路由到被叫设备地址,也称为用户代理〔UA〕Content-Type:application/sdpContent-Length:158<=最后两位附属字段说明消息体类型以及字段长度v=0<=SDP版本号,目前都是0o=Tesla28908445262890844526INIP4<=主叫源地址,类型等s=PhoneCall响应消息格式SIP响应消息的格式,由SIP响应消息头和一组参数行组成,如REF_Ref27449117\r\h图3-2所示。通过换行符区分命令行和每一行参数。SIP/SIP/协议版本响应消息头Call-id:值via:值消息头参数行To:值Contact:值From:值Content-Length:值Max-Forward:值WhiteSpaceSDPContent-Type:值Cseq:值SIP响应消息结构注意:参数行的顺序不是固定的。对应的参数解释见REF_Ref27479927\r\h6.3。SIP响应消息实例:SIP/2.0200OKContent-Type:application/SDPVia:SIP/2.0/UDP:5061Call-ID:01EF351F8140000000000@CSeq:1INVITEFrom:<sip:010203@:5061;User=phone>;tag=29005358336B534F610A000To:<sip:0109@:5060;User=phone>;tag=5358336B534F2900CD1B0000Contact:<sip:0109@:55061>Content-Length:156v=0o=HuaweiSoftX300010737418241073741824INIP4s=SipCallc=INIP413t=00m=audio5060RTP/AVP0a=rtpmap:0PCMU/8000200OK消息是SIP响应消息的一种。第一行由SIP版本号和200响应消息组成。SIPURI是URI,附在IP地址上,表示对端和端点收发SIP消息的端口的域。“From〞、“To〞和“Contact〞这三个SIP消息头属于URI。当背靠背用户代理发出呼叫时,“From〞消息头中的URI填写在“Via〞消息头里。请求消息类型填写在CSeq消息头里,并且当该SIP端点发送一个请求,号码就相应递增。SIP协议版本为SIP/2.0。把SDP参加到INVITE消息内容里,在消息头里说明内容的长度。
第二章SIP协议主要响应码2.1 响应码分类SIP响应消息用于对请求消息进行响应,指示呼叫的成功或失败状态。不同类的响应消息由状态码来区分,状态码包含三位整数,状态码的第一位用于定义响应类型,另外两位用于进一步对响应进行更加详细的说明。响应消息的分类如下所示。1〕1XX:临时响应,表示请求消息正在被处理。2〕2XX:成功响应,表示请求已被成功接收,完全理解并被接受。3〕3XX:重定向响应,表示需采取进一步以完成该请求。4〕4XX:客户机错误,表示请求消息中包含语法错误信息或效劳器无法完成客户机请求。5〕5XX:效劳器错误,表示效劳器无法完成合法请求。6〕6XX:全局故障,表示任何效劳器无法完成该请求。上述消息中,临时响应用于指示呼叫正在进行,其余最终响应用于结束请求消息。2.2 1xx类消息〔临时响应〕1xx消息表示效劳器或代理正在进行处理,还未得到确定的响应。客户应该继续等待效劳器的响应。当效劳器预测在200毫秒之内不能得到最终响应时,它应该发送一个1xx响应。效劳器可以发送多个1xx响应。下面是常见的1xx类消息列表。常见的1xx类消息列表100试呼〔Trying〕正在进行与呼叫有关的操作〔例如:访问数据库〕,但被叫用户还没有定位。180被叫振铃〔Ringing〕被叫用户代理已经得到被叫的位置,正在提醒被叫用户。该响应也可以再发起一个本地回铃181呼叫前转〔CallIsBeingForwarded〕代理效劳器可以用该状态码表示当前呼叫正被转移到其它目的地。〔呼叫正在转发〕182呼叫排队〔Queued〕被叫暂时不可访问,当前呼叫被排队而不是被拒绝。当效劳器有效时,可以继续响应该呼叫。该响应的"reasonphrase"可以进一步给出排队呼叫的信息,例如:“队列中有5个呼叫,期望等待时间为15分钟〞。效劳器可以发出多个182响应来更新当前排队呼叫的信息。183会话进度〔sessionprogress〕应答用于提示建立对话的进度信息。Reason-Phrase〔表达原因的句子〕、头域或者消息体可以用于提示呼叫进度的更新消息的信息。2.3 2xx类消息〔成功响应〕2xx消息表示请求已经被接收、处理并被成功接受;200:OK---请求成功。2.43xx类消息〔重定向响应〕3xx消息表示响应给出有关用户新位置或其它可选效劳的信息。下面REF_Ref27451631\r\h表4-3是常见的3xx类消息列表。常见的3xx类消息列表300多个选择〔MultipleChoice〕请求中的地址被解析为多个位置,用户可以将请求重定向到一个适宜的地址。该响应应该包含可供用户或用户代理选择的位置和资源列表,并且在Contact头域中,列出可供选择的地址。〔网络协议不兼容:会话描述中的一个或多个网络协议不可用。〕301永久离开〔MovedPermanently〕在请求中Request-URI所指的地址找不到用户,客户应该尝试Contact头域给出的新地址。主叫收到该响应后应该更新所有的本地目录,地址簿,用户位置缓存并将以后的请求重定向到新的地址。〔网络地址格式不兼容:会话描述中的一个或多个地址格式不可用。〕302暂时离开〔MovedTemporarily〕客户应该用Contact头域给出的新地址尝试呼叫。响应中Expire头域指出该次重定向的有效期,如果没有给出有效期,那么重定向只对当前呼叫有效。〔传送协议不兼容:会话描述中的一个或多个传送协议不可用。〕303带宽单位不兼容:会话描述中的一个或多个带宽度量单位不被理解。304媒体类型不可用:对话描述中的一个或多个媒体类型不可用。305使用代理〔UseProxy〕客户所请求的资源必须通过Contact头域中给出的代理来访问。Contact头域给出代理的URI。该响应只能由用户代理效劳器发出。〔媒体格式不兼容:对话描述中的一个或多个媒体格式不可用。〕306媒体特征不被理解:对话描述中的一个或多个媒体特征不被支持。307对话描述参数不被理解:除上述几种参数之外的参数不被理解。330组播不可用:用户站点不支持组播。331单播不可用:用户站点不支持单播通信(通常是由于防火墙的存在)370带宽缺乏:对话描述中定义的或者媒体定义的带宽超出可用带宽。380使用其它效劳〔AlternateService〕呼叫不成功,但是可选其它的效劳〔如:电子邮件,语音信箱〕。该响应的消息体给出可选效劳的描述。399混合告警:该告警表示用户存在的任意一种错误,收到该告警的系统不可以采取任何自动的动作2.54xx类消息(客户机错误)4xx消息表示请求消息中包含语法错误或者SIP效劳器不能完成对该请求消息的处理。下面REF_Ref27451712\r\h表4-4是常见的4xx类消息列表。常见的4xx类消息列表400无效请求〔BadRequest〕请求语法有误,不能被效劳器理解。401未授权〔Unauthorized〕请求需要用户认证。402要求付费〔PaymentRequired〕该响应为将来使用保存。403禁止〔Forbidden〕效劳器理解请求,但拒绝完成。客户不应该再次发请求。404未找到用户〔NotFound〕请求中Request-RUL给出的地址上没有要呼叫的用户。当Request-RUL给出的地址与效劳器管理的域不匹配时,效劳器也发送该响应。405方法不允许〔MethodNotAllowed〕请求行中指定的方法不被允许。该响应必须包含Allow头域,列出效劳器支持的方法。406不可接受〔NotAcceptable〕根据请求中的Accpe头域,由请求给出的资源产生的响应实体里面的内容字符不可接受。407需要代理认证〔ProxyAuthenticationRequired〕该响应与401〔未授权〕类似,但它指示用户必须首先向代理认证自己。408请求超时〔RequestTimeout〕效劳器不能在请求的Expire头域指定的时间内产生响应。客户可以过一段时间重发请求。409冲突〔Conflict〕客户的请求与资源的当前状态冲突,不能完成请求。当REGISTER请求的action参数与现存的注册冲突时返回该响应。410无可用资源〔Gone〕效劳器上没有所请求的资源,也不知道进一步联系的地址。这种情况被认为是永久的。如果效劳器不能确定该情况是否是永久的,它应该发送404〔被叫未找到〕响应。411需要消息体长度〔LengthRequired〕效劳器拒绝接受没有包含Content-Length头域的请求。客户何以在参加一个表示消息体长度的Cotent-Length头域后重发请求。413请求实体过长〔RequestEntityTooLarge〕效劳器拒绝处理过长的消息实体。如果这种情况是暂时的,效劳器应该在响应中包含Retry-After头域指示客户何时重发请求。414Request-URI过长〔Request-URITooLong〕效劳器不能解析过长的Request-URI。415媒体类型不支持〔UnsupportedMediaType〕效劳器不支持请求消息体的格式。效劳器应该在响应中用Accept,Accept-Encoding和Accept-Language头域列出它支持的格式。416不支持的URI方案〔unsupportedurlscheme〕效劳器由于不支持Request-URI中的URI方案而终止处理这个请求。420错误的扩展〔BadExtension〕效劳器不理解请求中Require头域指定的协议扩展。421需要扩展支持〔extensionrequired〕UAS需要特定的扩展来处理这个请求,但是这个扩展并没有在请求的Supported头域中列出。具有这个应答码的应答必须包含一个Require头域列出所需要的扩展。
UAS不应当使用这个应答除非它真的不能给客户端提供有效的效劳。相反,如果在Support头域中没有列出需要的扩展,效劳器应当根据基准的SIP兼容的方法和客户端支持的扩展来进行处理。423间隔太短〔intervaltoobrief〕效劳器因为在请求中设置的资源刷新时间〔或者有效时间〕过短而拒绝请求。这个应答可以用于注册效劳器来拒绝那些Contact头域有效期过短的注册请求。480暂时不可访问〔TemporarilyUnavailable〕被叫的终端系统已经成功连接,但用户暂时不可访问〔例如:用户未登录,或登录为免打搅〕。效劳器可以在Retry-After头域中另外指定一个访问时间。481呼叫支路/事务不存在〔Callleg/TransactionDoesNotExist〕在两种情况下效劳器返回该响应:效劳器收到一个BYE请求但找不到匹配的呼叫支路;或是收到一个CANCEL请求但找不到匹配的事务;或是收到与原来TAG标志不一样的INVITE请求。〔对于无匹配的ACK请求,效劳器直接将它丢弃,不响应〕。482检测到循环呼叫〔LoopDetected〕请求消息的Via头域中包含接收效劳器自身的地址。483跳数过多〔TooManyHop〕请求的Via头域包含的条目数〔跳数〕超过Max-Forwards头域指定的值。484地址不全〔AddressIncomplete〕请求的To或Request-RUL所指的地址不全。485地址不明确〔Ambiguous〕请求中提供的被叫地址不明确。该响应可以在Contact头域中列出不明确的地址。486被叫忙〔BusyHere〕被叫的终端系统已经成功连接,但用户暂时不愿意或不能够接收更多的呼叫。效劳器可以在响应的Retry-After头域中另外指定一个访问时间。客户也可能通过其它方式访问,如:语音邮箱,因此该响应并不终止一个查询。如果我们知道没有其他终端系统能够接听这个呼叫,那么应当返回一个状态码600〔BusyEverywhere〕。487请求被拒绝〔RequestCancelled〕原来的请求消息被一个CANCEL请求所取消。488此处请求不接受〔notacceptablehere〕这个应答和606〔NotAcceptable〕有相同的含义,但是只是应用于Request-URI所指出的特定资源不能接受,在其他地方请求可能可以接受。包含了媒体兼容性描述的消息体可以出现在应答中,并且根据INVITE请求中的Accept头域进行规格化〔如果没有Accept头域,那么就是application/sdp〕。这个应答就像给OPTIONS请求的200(OK)应答的消息体一样。491未决请求〔requestpending〕在同一个对话中,UAS接收到的请求有一个依赖的请求正在处理。493无法解密〔undecipherable〕不可辨识,UAS接收到了一个请求,包含了一个加密的MIME,并且不知道或者没有提供适宜的解密密钥。这个应答可以包含单个包体,这个包体包含了适宜的公钥,这个公钥用于给
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 健身馆安全管理责任制度
- 信访层层压实责任制度
- 学校值班员岗位责任制度
- 各级人员岗位ehs责任制度
- 小学心理教育责任制度
- 检察院孕情包保责任制度
- 氧气瓶安全管理责任制度
- 师德师风挂包责任制度
- 教育局履行监督责任制度
- 混凝土企业安全责任制度
- GA/T 1263-2015道路交通安全宣传教育基地建设指南
- 《绿色建筑概论》整套教学课件
- 大学计算机计算思维与信息素养第12章
- 数学第一章数据描述性分析课件
- 2023年福建军融建设发展有限公司招聘笔试题库及答案解析
- 《美学》课件(第1-8讲)教学提纲
- 森林防火整改报告记录
- 《海洋里的好伙伴》课件
- 狼疮性肾炎最新版课件
- 冶金生产概论绪论课件
- 计算机应用基础英文版课件:4.OS
评论
0/150
提交评论