- 1、本文档共13页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第一章 SIP协议主要消息
SIP消息分类
SIP协议是以层协议的形式组成的,就是说它的行为是以一套相对独立的处理阶段来描述的,每个阶段之间的关系不是很密切。
SIP协议将Server和User Agent之间的通讯的消息分为两类:请求消息和响应消息。
请求消息:客户端为了激活特定操作而发给服务器的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消息头和一组参数行组成,如图3-1所示。通过换行符区分命令行和每一条参数行。
SIP请求消息结构
注意:参数行的顺序不是固定的。对应的参数解释见6.3 。
消息体定义:
Call-ID:头字段是用来将消息分组的唯一性标识
From:头字段是指示请求发起方的逻辑标识,它可能是用户的注册地址。From头字段包含一个URI和一个可选的显示名称
CSeq:头字段用于标识事务并对事务进行排序。它由一个请求方法和一个序列号组成,请求方法必须与对应的请求消息类型一致
Max-Fowords:头字段限定一个请求消息在到达目的地之前允许经过的最大跳数。它包含一个整数值,每经过一跳,这个值就被减一。如果在请求消息到达目的地之前该值变为零,那么请求将被拒绝并返回一个483(跳数过多)错误响应消息。
Via:头字段定义SIP事务的下层(传输层)传输协议,并标识响应消息将要被发送的位置。只有当到达下一跳所用的传输协议被选定后,才能在请求消息中加入Via头字段值。
expires:参数指出了该值中包含的URI地址的有效期。这个参数的值是以秒为单位计算的。如果没有提供该参数,那么URI地址的有效期由Expires头字段值来确定。
SIP请求消息实例:
INVITE sip:0109@:5060;User=phone SIP/2.0
Call-ID:01E04633512400000@
Via:SIP/2.0/UDP :5061
From:sip:010203@:5061;User=phone;tag=29005358336B534F610A000
To:sip:0109@:5060;User=phone
Contact: sip:010203@:5061
CSeq:1 INVITE
Max-Forwards:70
Content-Type: application/SDP
Content-Length:168
v=0
o=UserA 2890844526 2890844526 IN IP4
s=Session SDP
c=IN IP4
t=0 0
m=audio 49172 RTP/AVP 0 8
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=sendonly
INVITE消息是其中一种SIP请求消息。
第一行由消息头和对端SIP实体的URI(通用资源标识)以及SIP版本号码组成。
SIP URI是电话URI,附在IP地址上,表示对端和端点收发SIP消息的端口的域。
“From”、“To”和“Contact”这三个SIP消息头属于电话URI。
当背靠背用户代理发出呼叫时,“From”消息头中的URI填写在“Via”消息头里。
请求消息类型填写在CSeq消息头里,并且当该SIP端点发送一个请求,号码就相应递增。
SIP协议版本为SIP/2.0。其中SDP被加入到INVITE消息内容里,在消息头里的Content-Length说明了SDP内容的长度。
INVITE请求消息详解:
INVITE sip:marconi@ SIP/2.0
= 请求方法、请求地址(Request-URI)、SIP版本号(目前都是SIP/2.0)
=请求地址一般就是被叫方地址,跟MSN中好友eMail地址类似
Via: SIP/2.0/UDP :5060;branch=z9hG4bKfw19b
=
文档评论(0)