SIP各类消息
SIP协议主要消息 (3)
SIP协议主要消息协议名称:SIP协议主要消息一、引言本协议旨在详细描述SIP(Session Initiation Protocol,会话初始协议)的主要消息,包括其定义、结构和功能。
SIP是一种用于建立、修改和终止多媒体味话的应用层协议,广泛应用于VoIP(Voice over Internet Protocol,互联网语音通信)和实时通信系统中。
二、协议概述SIP协议主要通过请求和响应的方式进行通信,使用文本格式的消息进行交互。
SIP消息由起始行、头部字段和消息体组成,其中起始行包含请求或者响应的方法、URI(Uniform Resource Identifier,统一资源标识符)和SIP版本信息。
头部字段包含了关于消息的元数据,而消息体则携带了具体的数据内容。
三、主要消息类型1. INVITE:该消息用于建立会话,发起方向被叫方发送INVITE请求,包含了被叫方的SIP地址和媒体描述信息。
2. ACK:该消息用于确认INVITE请求的接收,发起方在收到200 OK响应后发送ACK请求,表示会话建立成功。
3. BYE:该消息用于终止会话,可以由任意一方发送,对方收到BYE请求后会发送200 OK响应,表示会话终止。
4. CANCEL:该消息用于取销未完成的请求,普通用于取销INVITE请求,以便重新发起新的请求。
5. REGISTER:该消息用于注册用户地址,用户向服务器发送REGISTER请求,以便在服务器上注册自己的SIP地址。
6. OPTIONS:该消息用于查询服务器的能力,普通用于检测对方是否在线或者支持特定功能。
7. INFO:该消息用于传输非实时信息,如传输DTMF(Dual-tone Multi-frequency)信号等。
四、消息格式和示例1. INVITE消息格式:```INVITE sip:alice@example SIP/2.0Via: SIP/2.0/UDP 192.0.2.1;branch=z9hG4bK776asdhdsMax-Forwards: 70To: <sip:alice@example>From: <sip:bob@example>;tag=1928301774Call-ID: a84b4c76e66710CSeq: 314159 INVITEContact: <sip:bob@example>Content-Type: application/sdpContent-Length: 142v=0o=bob 2890844526 2890844526 IN IP4 192.0.2.1s=-c=IN IP4 192.0.2.1t=0 0m=audio 49172 RTP/AVP 0a=rtpmap:0 PCMU/8000```2. ACK消息格式:```ACK sip:alice@example SIP/2.0Via: SIP/2.0/UDP 192.0.2.1;branch=z9hG4bK776asdhds Max-Forwards: 70To: <sip:alice@example>From: <sip:bob@example>;tag=1928301774Call-ID: a84b4c76e66710CSeq: 314159 ACKContact: <sip:bob@example>Content-Length: 0```3. BYE消息格式:```BYE sip:alice@example SIP/2.0Via: SIP/2.0/UDP 192.0.2.1;branch=z9hG4bK776asdhds Max-Forwards: 70To: <sip:alice@example>From: <sip:bob@example>;tag=1928301774Call-ID: a84b4c76e66710CSeq: 314160 BYEContact: <sip:bob@example>Content-Length: 0```4. CANCEL消息格式:```CANCEL sip:alice@example SIP/2.0Via: SIP/2.0/UDP 192.0.2.1;branch=z9hG4bK776asdhds Max-Forwards: 70To: <sip:alice@example>From: <sip:bob@example>;tag=1928301774Call-ID: a84b4c76e66710CSeq: 314159 CANCELContact: <sip:bob@example>Content-Length: 0```5. REGISTER消息格式:```REGISTER sip:example SIP/2.0Via: SIP/2.0/UDP 192.0.2.1;branch=z9hG4bK776asdhds Max-Forwards: 70To: <sip:bob@example>From: <sip:bob@example>;tag=1928301774Call-ID: a84b4c76e66710CSeq: 314161 REGISTERContact: <sip:bob@example>Expires: 3600Content-Length: 0```6. OPTIONS消息格式:```OPTIONS sip:example SIP/2.0Via: SIP/2.0/UDP 192.0.2.1;branch=z9hG4bK776asdhds Max-Forwards: 70To: <sip:alice@example>From: <sip:bob@example>;tag=1928301774Call-ID: a84b4c76e66710CSeq: 314162 OPTIONSContact: <sip:bob@example>Content-Length: 0```7. INFO消息格式:```INFO sip:alice@example SIP/2.0Via: SIP/2.0/UDP 192.0.2.1;branch=z9hG4bK776asdhds Max-Forwards: 70To: <sip:alice@example>From: <sip:bob@example>;tag=1928301774Call-ID: a84b4c76e66710CSeq: 314163 INFOContact: <sip:bob@example>Content-Type: application/dtmf-relayContent-Length: 18Signal=1Duration=100```五、总结SIP协议的主要消息包括INVITE、ACK、BYE、CANCEL、REGISTER、OPTIONS和INFO。
SIP协议主要消息
SIP协议主要消息协议名称:SIP协议主要消息一、引言本协议旨在详细描述SIP(Session Initiation Protocol,会话发起协议)的主要消息类型及其相关内容。
SIP是一种用于建立、修改和终止多媒体会话的应用层协议,广泛应用于IP电话、视频会议、实时消息传递等通信领域。
二、协议概述SIP协议主要由请求-应答模型组成,请求消息由客户端发送给服务器,服务器根据请求进行处理并返回相应的应答消息。
以下是SIP协议中的主要消息类型:1. INVITEINVITE消息用于建立会话,发起方向接收方发起通话请求。
该消息包含了会话的相关信息,如发起方地址、接收方地址、媒体类型等。
2. ACKACK消息用于确认接收INVITE消息,并建立双向通信。
接收方在接收到INVITE消息后,返回ACK消息给发起方,表示接收到请求并准备好建立通话。
3. BYEBYE消息用于终止会话。
任何一方都可以发送BYE消息,表示希望结束当前会话。
接收方收到BYE消息后,可以发送200 OK应答消息,也可以选择不应答。
4. CANCELCANCEL消息用于取消之前发送的INVITE请求。
当发起方发送INVITE请求后,如果发现不再需要建立会话,可以发送CANCEL消息取消之前的请求。
5. OPTIONSOPTIONS消息用于查询服务器的能力。
发起方可以发送OPTIONS消息给服务器,询问服务器支持的功能、媒体类型等信息。
6. REGISTERREGISTER消息用于注册用户位置信息。
当用户登录到SIP服务器时,会发送REGISTER消息,将自己的位置信息注册到服务器上。
7. INFOINFO消息用于传递媒体相关的信息。
例如,当用户在通话过程中需要传输DTMF(双音多频)信号时,可以使用INFO消息传递相关信息。
8. UPDATEUPDATE消息用于修改会话参数。
当会话已经建立后,发起方可以发送UPDATE消息,修改会话的相关参数,如媒体类型、编码方式等。
SIP 状态和及时短消息范例
SIP 状态和及时短消息范例这个实例最简单的说法就是,利用 SIP 获取好友状态信息以及发送及时消息。
我们经常用的 QQ 或MSN 就是这种方式。
一方用户可以获取另一方用户状态信息。
状态信息用来表示该用户目前的工作状态,例如:工作中、休息中等等。
目前新版本的聊天工具还可以显示个人消息的能力。
在 SIP 协议中,规定可以使用 SUBSCRIBE 来请求状态或者改写状态,用 NOTIFY 获得状态信息。
在本例中,Chebychev 希望和 Possion 通信。
为了能够知道 Possion 的状态情况,Chebychev 通过发送 SUBSCRIBE 订阅 Possion 状态信息,消息内容如下:SUBSCRIBE sip:poisson@ SIP/2.0Via SIP/2.0/TCP lecturehall21.academy.ru:5060;branch=z9hG4bK348471123Max-Forwards: 70To: M. Poisson <sip:poisson@>From: P. L. Chebychev <sip:chebychev@academy.ru>;tag=21171Call-ID: 58dkfj34924lk34452k592520CSeq: 3412 SUBSCRIBEAllow-Events: presenceAllow: ACK, INVITE, CANCEL, BYE, NOTIFY, SUBSCRIBE, MESSAGEContact: <sip:pafnuty@lecturehall21.academy.ru;transport=tcp>Event: presenceContent-Length: 0Poisson 接收到 SUBSCRIBE 消息后,发送 202 Accepted 响应返回到 ChebychevSIP/2.0 202 AcceptedVia SIP/2.0/TCP lecturehall21.academy.ru:5060;branch=z9hG4bK348471123;received=19.34.3.1To: M. Poisson <sip:poisson@>;tag=25140From: P. L. Chebychev <sip:chebychev@academy.ru>;tag=21171Call-ID: 58dkfj34924lk34452k592520CSeq: 3412 SUBSCRIBEAllow-Events: presenceAllow: ACK, INVITE, CANCEL, BYE, NOTIFY, SUBSCRIBE, MESSAGEContact: <sip:s.possion@;transport=tcp>Event: presenceExpires: 3600Content-Length: 0之后,Possion 向 Chebychev 发送 NOTIFY消息,表示其当前状态NOTIFY sip:pafnuty@lecturehall21.academy.ru SIP/2.0Via SIP/2.0/TCP :5060;branch=z9hG4bK4321Max-Forwards: 70To: P. L. Chebychev <sip:chebychev@academy.ru>;tag=21171 From: M. Poisson <sip:poisson@>;tag=25140Call-ID: 58dkfj34924lk34452k592520CSeq: 1026 NOTIFYAllow: ACK, INVITE, CANCEL, BYE, NOTIFY, SUBSCRIBE, MESSAGE Allow-Events: dialogContact: <sip:s.possion@;transport=tcp> Subscription-State: active;expires=3600Event: presenceContent-Type: application/cpim-pidf+xmlContent-Length: 244<?xml version="1.0" encoding="UTF-8"?><presence xmlns="urn:ietf:params:xml:ns:cpim-pidf"entity="sip:poisson@"><tuple id="452426775"><status><basic>closed</basic></status></tuple></presence>Chebychev 发送 200 OK 响应 NOTIFYSIP/2.0 200 OKVia SIP/2.0/TCP :5060;branch=z9hG4bK4321;received=24.32.1.3To: P. L. Chebychev <sip:chebychev@academy.ru>;tag=21171 From: M. Poisson <sip:poisson@>;tag=25140Call-ID: 58dkfj34924lk34452k592520CSeq: 1026 NOTIFYContent-Length: 0之后,当 Poisson 登陆后,再次发送 NOTIFY 消息NOTIFY sip:pafnuty@lecturehall21.academy.ru SIP/2.0Via SIP/2.0/TCP :5060;branch=z9hG4bK334241 Max-Forwards: 70To: P. L. Chebychev <sip:chebychev@academy.ru>;tag=21171 From: M. Poisson <sip:poisson@>;tag=25140Call-ID: 58dkfj34924lk34452k592520CSeq: 1027 NOTIFYAllow: ACK, INVITE, CANCEL, BYE, NOTIFY, SUBSCRIBE, MESSAGE Allow-Events: presenceContact: <sip:s.possion@;transport=tcp> Subscription-State: active;expires=1800Event: presenceContent-Type: application/cpim-pidf+xmlContent-Length: 325<?xml version="1.0" encoding="UTF-8"?><presence xmlns="urn:ietf:params:xml:ns:cpim-pidf"entity="sip:poisson@"><tuple id="452426775"><status><basic>open</basic></status><contact>sip:s.possion@;transport=tcp</contact></tuple></presence>Chebychev 发 200 OK 确认SIP/2.0 200 OKVia SIP/2.0/TCP :5060;branch=z9hG4bK334241;received=24.32.1.3To: P. L. Chebychev <sip:chebychev@academy.ru>;tag=21171From: M. Poisson <sip:poisson@>;tag=25140Call-ID: 58dkfj34924lk34452k592520CSeq: 1027 NOTIFYContent-Length: 0现在 Chebychev 已经知道 Possion 在线了,开始发送及时消息。
SIP协议主要消息
SIP协议主要消息协议名称:SIP协议主要消息协议版本:1.0生效日期:[协议生效日期]修订日期:[协议修订日期]1. 引言本协议旨在定义SIP(会话初始化协议)的主要消息。
SIP是一种应用层控制协议,用于建立、修改和终止多媒体会话,如语音通话、视频通话和即时消息。
本协议详细描述了SIP协议的主要消息类型、消息格式和消息交互过程。
2. 术语和定义以下术语和定义适用于本协议:- SIP(会话初始化协议):一种应用层控制协议,用于建立、修改和终止多媒体会话。
- 消息:SIP协议中的基本通信单元,用于在用户代理之间传递信息。
- 请求:SIP协议中的一种消息类型,用于请求执行某种动作。
- 响应:SIP协议中的一种消息类型,用于回复请求的执行结果。
- URI(统一资源标识符):用于标识资源的字符串,包含协议方案、主机名和路径等信息。
3. 主要消息类型本协议定义了以下主要消息类型:- INVITE:用于建立会话。
- ACK:用于确认接收到INVITE请求。
- BYE:用于终止会话。
- OPTIONS:用于查询对方支持的功能。
- REGISTER:用于注册用户位置信息。
- CANCEL:用于取消尚未完成的请求。
- INFO:用于传递会话相关的信息。
- PRACK:用于确认接收到可靠的临时响应。
4. 消息格式4.1 请求消息格式SIP的请求消息格式如下:- 请求行:包含请求方法、URI和SIP协议版本。
- 头部字段:包含请求相关的各种头部字段,如From、To、Call-ID、CSeq等。
- 实体主体:可选,用于传递请求的实体主体。
4.2 响应消息格式SIP的响应消息格式如下:- 状态行:包含SIP协议版本、状态码和原因短语。
- 头部字段:包含响应相关的各种头部字段,如From、To、Call-ID、CSeq等。
- 实体主体:可选,用于传递响应的实体主体。
5. 消息交互过程5.1 INVITE消息交互过程1. 主叫方发送INVITE请求给被叫方。
SIP协议主要消息讲解
第一章SIP协议主要消息1.1 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响应1.2 SIP消息结构请求消息和响应消息都包括SIP消息头字段和SIP消息体字段;SIP消息头主要用来指明本消息是有由谁发起和由谁接受,经过多少跳转等基本信息;SIP消息体主要用来描述本次会话具体实现方式;1.3 消息格式1.3.1 请求消息格式SIP请求消息的格式,由SIP消息头和一组参数行组成,如图1-1所示。
通过换行符区分命令行和每一条参数行。
图1-1 SIP 请求消息结构注意:参数行的顺序不是固定的。
对应的参数解释见错误!未找到引用源。
消息体定义:Call-ID :头字段是用来将消息分组的唯一性标识From :头字段是指示请求发起方的逻辑标识,它可能是用户的注册地址。
From 头字段包含一个URI 和一个可选的显示名称CSeq :头字段用于标识事务并对事务进行排序。
它由一个请求方法和一个序列号组成,请求方法必须与对应的请求消息类型一致Max-Fowords :头字段限定一个请求消息在到达目的地之前允许经过的最大跳数。
SIP常用消息实例
SIP常用消息实例参考1、MESSAGE消息1)头字段填写说明Call-id:必选CSeq:必选From:必选To:必选Max-Forwards:必选Via:必选常用的可选参数:指定的消息体2)消息实例发送MESSAGE请求消息给的6010端口,参考消息如下(带了“Hello”的消息体):MESSAGE:6010 SIP/Call-IDFrom>;tag=-0037-708c9a5cba8dd878To>CSeq: 1 MESSAGEVia: SIP/UDPMax-Forwards: 30Allow: INVITE,ACK,OPTIONS,BYE,CANCEL,REGISTER,INFO,UPDATE,PRACK,REFER,SUBSCRIBE,NOTIFY, MESSAGEContact: <sip:Content-Type: text/plainContent-Length: 5Hello收到来自的6010端口的返回消息,参考消息如下(修改了消息体的内容,变成了“Hello ami go”):SIP/200 OKVia: SIP/UDPFrom>;tag=-0037-708c9a5cba8dd878To>;tag=-002-3c18e810ab17c76fCall-IDCSeq: 1 MESSAGEAllow: INVITE,ACK,OPTIONS,BYE,CANCEL,REGISTER,INFO,UPDATE,PRACK,REFER,SUBSCRIBE,NOTIFY, MESSAGEContact: <sip:Content-Type: text/plainContent-Length: 11Hello amigo2、REGISTER消息1)头字段填写说明Call-id:必选Cseq:必选From:必选To:必选Max-Forwards:必选Via:必选Contact:必选Authorization:必选Expires:常用可选头2)非鉴权注册消息实例在该实例中机器发送注册消息给服务器,发送消息实例如下:REGISTER sip: SIP/Via: SIP/UDPMax-Forwards: 70From>;tag=ca04c1391af3429491f2c4dfbe5e1b2e;epid=4f2e395931To>Call-IDCSeq: 1 REGISTERContact: <sip:"INVITE, MESSAGE, INFO, SUBSCRIBE, OPTIONS, BYE, CANCEL, NOTIFY, ACK, REFER" User-Agent: RTC/ (BOL SIP Phone 1005)Event: registrationAllow-Events: presenceContent-Length: 0当注册成功(回送200 OK)时,服务器发送的res消息参考如下:SIP/200 OKVia: SIP/UDPFrom>;tag=ca04c1391af3429491f2c4dfbe5e1b2e;epid=4f2e395931To>;tag=-00834-14d0805b62bc026dCall-IDCSeq: 1 REGISTERAllow: INVITE,ACK,OPTIONS,BYE,CANCEL,REGISTER,INFO,UPDATE,PRACK,REFER,SUBSCRIBE,NOTIFY, MESSAGEContact: sip:Content-Length: 0Expires: 36003)鉴权注册消息实例当需要鉴权注册时,当请求端使用BOL或xlite等发送注册消息给服务器时,服务器对发送“4 01 Unauthorized”信息给请求端,提示请求段需要带上鉴权信息重新注册,请求端带上鉴权信息后(带有“Authorization”头字段)重新向服务器注册,服务器验证鉴权头的正确性,如果鉴权成功,给请求端发送200 OK消息。
SIP协议主要消息
SIP协议主要消息协议名称:会话发起协议(Session Initiation Protocol,简称SIP)1. 引言本协议旨在规范会话发起协议(SIP)的主要消息格式和内容。
SIP是一种应用层协议,用于在IP网络上建立、修改和终止多媒体会话,如语音通话、视频会议和即时消息。
本协议的目的是确保SIP消息在各个实现之间的互操作性和一致性。
2. 消息格式SIP协议定义了以下主要消息类型:2.1 请求消息请求消息由客户端发送给服务器,用于请求资源或执行操作。
请求消息的格式如下:请求行头部字段空行消息体请求行包括请求方法、请求URI和SIP协议版本。
常见的请求方法包括INVITE(邀请对方参与会话)、REGISTER(注册用户位置信息)、ACK(确认消息接收)等。
头部字段包括各种标准字段和扩展字段,用于传递请求的相关信息,如From (发送者身份)、To(接收者身份)、Call-ID(会话标识符)、CSeq(序列号)等。
消息体可选,用于传递请求的实体内容,如SDP(会话描述协议)等。
2.2 响应消息响应消息由服务器发送给客户端,用于回应请求或指示操作结果。
响应消息的格式如下:状态行头部字段空行消息体状态行包括SIP协议版本、状态码和原因短语。
常见的状态码包括1xx(信息性响应)、2xx(成功响应)、3xx(重定向响应)、4xx(客户端错误响应)、5xx (服务器错误响应)等。
头部字段包括各种标准字段和扩展字段,用于传递响应的相关信息,如From、To、Call-ID、CSeq等。
消息体可选,用于传递响应的实体内容,如SDP等。
3. SIP消息示例以下是一些常见的SIP消息示例:3.1 INVITE请求消息示例:INVITEsip:********************/2.0Via: SIP/2.0/UDP 192.0.2.1:5060;branch=z9hG4bK123456789From:sip:***************;tag=12345To:sip:*****************Call-ID:***************.2.1CSeq: 1 INVITEContact:sip:***************Max-Forwards: 70Content-Type: application/sdpContent-Length: 142v=0o=bob 2890844526 2890844526 IN IP4 192.0.2.1s=-c=IN IP4 192.0.2.1t=0 0m=audio 49170 RTP/AVP 03.2 200 OK响应消息示例:SIP/2.0 200 OKVia: SIP/2.0/UDP 192.0.2.1:5060;branch=z9hG4bK123456789 From:sip:***************;tag=12345To:sip:*****************;tag=54321Call-ID:***************.2.1CSeq: 1 INVITEContact:sip:*****************Content-Type: application/sdpContent-Length: 142v=0o=alice 2890844527 2890844527 IN IP4 192.0.2.2s=-c=IN IP4 192.0.2.2t=0 0m=audio 49172 RTP/AVP 04. 总结本协议详细描述了SIP协议的主要消息格式和内容要求。
SIP协议消息的类型和结构.
《SOFTX3000产品培训》课程
SIP协议消息的类型和结构
主讲: 杨柳
课程团队: 杨柳 成敏娟 王永学
SIP协议消息的类型
• SIP消息采用文本方式编码,分为两类:请求消息和响应消息。 • 请求消息:客户端为了激活按特定操作而发给服务器的SIP消息。 • 响应消息:用于对请求消息进行响应,指示呼叫的成功或失败状态。 • 请求消息和响应消息都包括SIP头字段和SIP消息字段。
2xx
3xx 4xx
成功响应
重定向响应 客户出错
表示请求已经被成功接受、处理
表示需要采取进一步动作,以完成该请求 表示请求消息中包含语法错误或者SIP服务器不能完成 对该请求消息的处理
5xx 6xx
服务器出错 全局故障
表示SIP服务器故障不能完成对正确消息的处理 表示请求不能在任何SIP服务器上实现
消息头
User-Agent :值
Content-Type :值
……
ቤተ መጻሕፍቲ ባይዱ空格
SDP
消息体
通信技术专业教学资源库 深圳职业技术学院
谢谢
主讲: 杨柳
课程团队:杨柳 成敏娟 王永学
请求消息
请求消息 消息含义
INVITE
发起会话请求,邀请用户加入一个会话,会话描述含于消息体中。对于两方呼叫来说,主叫方
在会话描述中指示其能够接受的媒体类型及其参数。被叫方必需在成功响应消息的消息体中指 明其希望接受哪些媒体,还可以指示其行将发送的媒体。 如果收到的是关于参加会议的邀请,被叫方可以根据Call-ID或者会话描述中的标识确定用户 已经加入该会议,并返回成功响应消息。
ACK BYE CANCEL REGISTER OPTIONS
sip协议的6种信令及功能
sip协议的6种信令及功能SIP协议是一种基于文本的协议,用于建立、修改和终止多媒体会话,包括语音、视频、即时消息和文件传输等。
SIP协议主要由6种信令组成,分别是INVITE、ACK、BYE、CANCEL、OPTIONS和REGISTER。
下面将详细介绍这6种信令的功能及使用场景。
一、INVITE信令INVITE信令是SIP协议中最重要的信令之一,它用于邀请一个用户参与一个会话。
当发起方想要建立一个新的会话时,它将发送一个INVITE请求给接收方,请求接收方加入该会话。
接收方可以选择接受或拒绝该请求。
如果接收方接受了请求,则将使用SDP协商来确定会话的参数。
使用场景:1.建立语音或视频通话;2.发起一个即时消息对话;3.创建文件传输会话。
二、ACK信令ACK信令是SIP协议中的确认信号,用于确认已经成功处理了先前发送的INVITE请求。
当接收方已经成功地响应了INVITE请求后,发起方需要发送ACK请求来确认它已经收到了响应,并且已经准备好开始通话。
使用场景:1.确认已经成功处理了先前发送的INVITE请求;2.开始语音或视频通话。
三、BYE信令BYE信令用于终止一个会话。
当一个用户想要结束会话时,它将发送一个BYE请求给另一个用户,以告知对方该会话已经结束。
接收方收到BYE请求后,也将发送一个BYE请求作为确认,并关闭所有相关的资源。
使用场景:1.结束语音或视频通话;2.结束即时消息对话;3.结束文件传输会话。
四、CANCEL信令CANCEL信令用于取消尚未完成的INVITE请求。
当发起方发送了INVITE请求但尚未收到响应时,它可以发送CANCEL请求来取消该请求。
接收方收到CANCEL请求后,将停止处理相关的INVITE请求。
使用场景:1.取消尚未完成的INVITE请求;2.中止正在进行的呼叫。
五、OPTIONS信令OPTIONS信令用于查询远程用户支持哪些功能和协议。
当一个用户想要了解另一个用户支持哪些功能和协议时,它可以发送OPTIONS请求来查询这些信息。
sip注册消息举例
sip注册消息举例【篇一:sip注册消息举例】sip/2.0200okvia:sip/2.0/udp192.168.2.161:10586from:sip:010********@192.168.2.89 ;tag=ca04c1391af3429491f2c4d fbe5e1b2e;epid=4f2e395931to: sip:010********@192.168.2.89 ;tag=-00834-14d0805b62bc026dcall-id:da56b0fab5c54398b16c0d9f9c0ffcf2@192.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:0expires: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消息,参考消息如下:【篇二:sip注册消息举例】call-id:必选cseq:必选from:必选to:必选max-forwards:必选via:必选常用的可选参数:指定的消息体2)消息实例发送message请求消息给192.168.2.48的6010端口,参考消息如下(带了“hello”的消息体):messagesip:1897778888@192.168.2.48:6010sip/2.0call-id:8e12c17121ac4121bf927f6fd8013358@192.168.2.89 from: sip:010********@192.168.2.89 ;tag=-0037-708c9a5cba8dd878to: sip:1897778888@192.168.2.89cseq:1messagevia:sip/2.0/udp192.168.2.89:14010;branch=z9hg4bk--22bd7222 max-forwards:30allow:invite,ack,options,bye,cancel,register,info,update,prack,r efer,subscribe,notify,messagecontact: sip:192.168.2.89:14010content-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--22bd7222 from: sip:010********@192.168.2.89 ;tag=-0037-708c9a5cba8dd878to: sip:1897778888@192.168.2.89 ;tag=-002-3c18e810ab17c76f call-id:8e12c17121ac4121bf927f6fd8013358@192.168.2.89 cseq:1messageallow:invite,ack,options,bye,cancel,register,info,update,prack,r efer,subscribe,notify,messagecontact: sip:192.168.2.48:54010content-type:text/plaincontent-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.2.89sip/2.0via:sip/2.0/udp192.168.2.161:10586max-forwards:70from:sip:010********@192.168.2.89 ;tag=ca04c1391af3429491f2c4d fbe5e1b2e;epid=4f2e395931to: sip:010********@192.168.2.89call-id:da56b0fab5c54398b16c0d9f9c0ffcf2@192.168.2.161 cseq:1registercontact:sip:192.168.2.161:10586 ;methods=invite,message,info,subscri be,options,bye,cancel,notify,ack,referuser-agent:rtc/1.2.4949(bolsipphone1005)event:registrationallow-events:presencecontent-length:0 当注册成功(回送200 ok)时,服务器发送的res消息参考如下:sip/2.0200okvia:sip/2.0/udp192.168.2.161:10586from:sip:010********@192.168.2.89 ;tag=ca04c1391af3429491f2c4d fbe5e1b2e;epid=4f2e395931to: sip:010********@192.168.2.89 ;tag=-00834-14d0805b62bc026dcall-id:da56b0fab5c54398b16c0d9f9c0ffcf2@192.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:0expires:36003)鉴权注册消息实例当需要鉴权注册时,当请求端192.168.2.161使用bol或xlite等发送注册消息给192.168.2.89服务器时,服务器对192.168.2.161发送“401 unauthorized”信息给请求端,提示请求段需要带上鉴权信息重新注册,请求端带上鉴权信息后(带有“authorization”头字段)重新向服务器注册,服务器验证鉴权头的正确性,如果鉴权成功,给请求端发送200 ok消息。
SIP信令详解
目录第3章SIP协议... 3-13.1 概述.. 3-13.1.1 基本概念.. 3-13.1.2 相关术语.. 3-23.1.3 协议栈结构.. 3-53.1.4 SIP协议的应用.. 3-53.2 协议消息.. 3-63.2.1 消息类型.. 3-63.2.2 消息结构.. 3-93.3 基本消息流程.. 3-223.3.1 SIP用户注册流程.. 3-223.3.2 成功的SIP用户呼叫流程.. 3-253.3.3 成功的SIP中继呼叫流程.. 3-333.3.4 成功的SIP-T中继呼叫流程.. 3-36第3章SIP协议3.1概述3.1.1基本概念会话启动协议SIP(Session InitiationProtocol)是由IETF提出并主持研究的一个在IP网络上进行多媒体通信的应用层控制协议,它被用来创建、修改、和终结一个或多个参加者参加的会话进程。
这些会话包括Internet多媒体会议、Internet电话、远程教育以及远程医疗等。
即所有的因特网上交互式两方或多方多媒体通信活动,统称为多媒体会话。
参加会话的成员可以通过组播方式、单播联网方式或者两者结合的方式进行通信。
SIP协议是一个正在发展和不断研究中的协议。
一方面,它借鉴了其他Internet标准和协议的设计思想,在风格上遵循因特网一贯坚持的简练、开放、兼容和可扩展等原则,并充分注意到因特网开放而复杂的网络环境下的安全问题。
另一方面,它也充分考虑了对传统公共电话网的各种业务,包括IN业务和ISDN业务的支持。
利用带有会话描述的SIP邀请消息来创建会话,以使参加者能够通过SIP交互进行媒体类型协商。
它通过代理和重定向请求用户当前位置,以支持用户的移动性。
用户也可以登记它们的当前位置。
SIP协议独立于其他会议控制协议,它在设计上独立于下面的传输层协议,因此可以灵活方便地扩展其他附加功能。
SIP作为一个应用层的多媒体会话信令协议,可以被用来发起一个会话进程、在会话中邀请其他参加者加入会议,会话本身可以通过基于组播协议的会话通告协议(SAP)、电子邮件、网页通告、以及轻量级号薄访问协议(LDAP)等方式预先通告各个可能的参加者。
sip协议报文类型
sip协议报文类型SIP(Session Initiation Protocol)是一种应用层协议,常用于建立、修改和结束实时多媒体会话,例如语音通话、视频通话和即时消息。
SIP定义了一系列的消息类型,用于在用户终端之间传递信息和控制会话的各个方面。
下面将介绍SIP协议中的一些常用的报文类型。
1.请求消息(Request):SIP协议中的请求消息用于向服务器发送请求,以请求某种操作或服务。
常见的请求消息包括:- INVITE:用于建立一次会话或邀请其他终端参与会话。
- ACK:用于回复对INVITE请求的确认。
- BYE:用于结束会话。
- REGISTER:用于用户的注册和注销。
2.响应消息(Response):SIP协议中的响应消息是服务器对请求消息的回应。
常见的响应消息包括:- 1xx:表示请求已被接收,需要进一步处理。
- 2xx:表示请求已成功完成。
- 3xx:表示请求被重定向到其他服务器或终端。
- 4xx:表示请求包含错误,无法完成。
- 5xx:表示服务器出现错误,无法完成请求。
- 6xx:表示服务器无法处理请求。
3.媒体描述消息(SDP):SDP(Session Description Protocol)用于描述会话中的媒体流信息,如编解码器、传输协议、媒体格式等。
SIP协议中的媒体描述消息使用SDP来描述媒体流的相关信息。
4.信息消息(INFO):INFO消息用于向会话中的参与者传递一些附加的信息,如DTMF信号、键盘输入等。
5.订阅/通知消息(SUBSCRIBE/NOTIFY):SUBSCRIBE消息用于向服务器请求订阅某种事件,如其他用户的状态变化。
服务器在事件发生时,会使用NOTIFY消息通知订阅者。
6.选项消息(OPTIONS):OPTIONS消息用于向服务器查询对某个请求支持的能力、状态或配置。
7.重定向消息(REDIRECT):重定向消息用于向用户提供其他服务器或终端的地址,以便进一步处理请求。
sip协议报文格式
sip协议报文格式
SIP(Session(Initiation(Protocol,会话初始协议)是一种用于建立、修改和终止多媒体会话的通信协议。
SIP协议报文格式遵循特定的语法和结构,包括请求消息( Request)和响应消息( Response)两种基本类型。
以下是SIP协议中请求消息和响应消息的基本格式:
(请求消息格式 Request(Format):
请求行
头部字段1:值1
头部字段2:值2
空行 CRLF)
消息体 可选)
请求行包含请求方法、请求URI和SIP协议版本,例如:
响应消息格式 Response(Format):
状态行
头部字段1:值1
头部字段2:值2
空行 CRLF)
消息体 可选)
状态行包含SIP协议版本、状态码和状态原因短语,例如:
SIP/2.0(200(OK
在SIP消息中,头部字段提供了关于消息的附加信息,如接收者、
发送者、会话参数等。
消息体包含可选的数据负载,例如实际的会话描述信息。
请注意,请求消息和响应消息的具体头部字段可能会有所不同,取决于SIP消息的目的和内容。
SIP协议中还定义了各种请求方法( 如INVITE、REGISTER、BYE等)和状态码(如200、404、500等)来表示不同的请求类型和处理结果。
这只是SIP协议消息的基本格式,实际的SIP消息可能会更加复杂并包含各种不同类型的头部字段和消息体,以满足不同的通信需求和应用场景。
sip消息类型和消息代码详解
sip消息类型和消息代码详解在学习asterisk的时候,经常遇到一些远程服务器传回的代码,这些代码都有很重要的信息,让我们了解到对方的sip是如何响应我们这边的sip消息的,于是网上找到了这些sip消息类型和消息代码,自己收藏,相信很有用的。
sip消息类型和消息格式SIP是一个基于文本的协议,使用的是UTF-8字符集.SIP消息主要分为两大类:一类是由客户端发往服务器的请求消息(Request);一类是由服务器发往客户端的应答消息(Response).一个基本的SIP消息包括起始行、一个或多个头字段、说明头字段结束的空行和一个可选的消息体。
消息=起始行(包括请求行/状态行;请求行规定了请求的类别,而状态行指出了每个请求的状态,比如是成功还是失败。
如果是失败的话还要给出失败的原因或类型。
)*头字段CRLF[消息体] (消息首部给出了关于请求或应答的更多信息一般包括消息的来源、规定的消息接收方,另外还包括一些其他方面的重要信息。
消息体通常描述将要建立会议的类型包括所交换媒体的描述,但不具体定义消息体的内容或结构,其结构或内容使用另外一个协议来描述,就是会话描述协议SDP。
)请求消息请求行=方法 +空格 +请求地址 +SIP版本号 +空行通过一个请求行作为起始行,请求行包括了方法名、请求的URL、协议版本号、中间用空格分开。
六种请求方法:INVITE 发出呼叫会话请求ACK INVITE请求被最终请求BYE 释放一个呼叫会话CANCEL 取消挂起的呼叫REGISTER 登记注册用户代理OPTIONS 查询服务器能力应答消息状态行=SIP版本+空格+状态码+空格+相关文本短语+空行SIP应答消息状态码与功能类型状态码状态说明临时应答(1XX) 100 Trying 正在处理中180 Ringing 振铃181 call being forwarder 呼叫正在前向182 queue 排队181* session progress 会话进行会话成功(2XX) 200 OK 会话成功重定向(3XX) 300 multiple 多重选择301 moved permanently 永久移动302 moved temporaily 临时移动305 use proxy 用户代理380 alternative service 替代服务请求失败(4XX) 400 bad request 错误请求401unauthorized 未授权402 payment required 付费要求403 forbidden 禁止404 not found 未发现405 method no allowed 方法不允许406 not acceptable 不可接受407 proxy authentication required 代理需要认证408 request timeout 请求超时410 gone 离开413 request entity too large 请求实体太大414 request-url too long 请求URL太长415 unsupported media type 不支持的媒体类型416 unsupported url scheme 不支持的URL计划420 bad extension 不良扩展421 extension required 需要扩展423 interval too brief 间隔太短480 temporarily unavailable 临时失效481 call/transaction does not exist 呼叫/事务不存在482 loop detected 发现环路483 too many hops 跳数太多484 address incomplete 地址不完整485 ambiguous 不明朗486 busy here 这里忙487 request terminated 请求终止488 not acceptable here 这里请求不可接受491 request pending 未决请求493 undecipherable 不可辨识服务器失败(5XX) 500 server internal error 服务器内部错误501 not implemented 不可执行502 bad gateway 坏网关503 service unavailable 服务无效504 server time-out 服务器超时505 version not supported 版本不支持513 message too large 消息太大全局性错误(6XX) 600 busy everywhere 全忙603 decline 丢弃604 does not exist anywhere 不存在606 not acceptable 不可接受SIP应答代码(这个是详细的应答码解释)应答码是包含了,并且扩展了HTTP/1.1应答码。
SIP协议主要消息
SIP协议主要消息SIP(Session Initiation Protocol)是一种用于建立、修改和终止多媒体会话的协议。
它是一种基于文本的协议,使用类似于HTTP的请求-响应模式。
SIP协议主要定义了一系列消息,用于在终端设备之间进行会话控制和媒体协商。
本协议旨在详细描述SIP协议中的主要消息,包括请求消息和响应消息。
以下是对每种消息的详细说明:1. INVITE:这是SIP协议中最重要的消息之一。
它用于邀请一个终端设备参与会话。
INVITE消息包含了会话参数、媒体描述和对方设备的地址信息。
2. ACK:该消息用于确认接收到INVITE请求。
当接收到INVITE请求后,被邀请的设备必须发送ACK消息作为确认。
3. BYE:该消息用于终止一个会话。
当一个设备希望结束会话时,它会发送一个BYE消息给对方设备。
4. CANCEL:该消息用于取消一个尚未接受的INVITE请求。
当发送了一个INVITE请求但尚未收到对方的响应时,可以发送CANCEL消息来取消该请求。
5. OPTIONS:该消息用于查询对方设备的能力和支持的功能。
发送OPTIONS 消息后,对方设备会回复一个包含其能力和支持的功能的响应消息。
6. REGISTER:该消息用于注册一个设备的地址信息。
设备在加入网络时,可以发送REGISTER消息来告知服务器其地址信息。
7. INFO:该消息用于在会话中传递非实时的信息。
INFO消息可以用于传递DTMF信号、媒体描述等非实时的信息。
8. UPDATE:该消息用于修改一个会话的参数。
当会话已经建立后,可以使用UPDATE消息来修改会话的参数,如媒体类型、编解码器等。
9. PRACK:该消息用于对1xx(临时响应)类别的响应进行确认。
PRACK消息可以确保临时响应被正确接收。
10. REFER:该消息用于转移会话的控制权。
当一个设备希望将会话转移到另一个设备时,可以发送REFER消息。
以上是SIP协议中的主要消息。
SIP响应消息及含义
303
见其它
305
使用代理
380
代换服务
4xx
客户出错
表示请求消息中包含语法错误或者SIP服务器不能完成对该请求消息的处理
400
错误请求
401
无权
402
要求付款
403
禁止
404
没有发现
405
不允许的方法
406
不接受
407
要求代理权
408
请求超时
410
消失
413
请求实体太大
414
请求URI太大
500
内部服务器错误
501
没实现的
502
无效网关
503
不提供此服务
504
服务器超时
505
SIP版本不支持
513
消息太长
6xx
全局故障
表示请求不能在任何SIP服务器上实现
600
全忙
603
拒绝
604
都不存在
606
不接受
415
不支持的媒体类型
416
不支持的URI方案
420
分机无人接听
421
要求转机
423
间隔太短
480
暂时无人接听
481
呼叫腿/事务不存在
482
相环探测
483
跳频太高
484
地址不完整
485
不清楚
486
线路忙
487
终止请求
488
此处不接受
491
代处理请求
493
难以辨认
5xx
服务器出错
表示SIP服务器故障不能完成对正确消息的处理
SIP协议主要消息
SIP协议主要响应码100 试呼(Trying)正在进行与呼叫有关的操作(例如:访问数据库),但被叫用户还没有定位。
180 被叫振铃(Ringing)被叫用户代理已经得到被叫的位置,正在提醒被叫用户。
该响应也可以再发起一个本地回铃181 呼叫前转(Call Is Being Forwarded)代理服务器可以用该状态码表示当前呼叫正被转移到其它目的地。
(呼叫正在转发)182 呼叫排队(Queued)被叫暂时不可访问,当前呼叫被排队而不是被拒绝。
当服务器有效时,可以继续响应该呼叫。
该响应的"reason phrase"可以进一步给出排队呼叫的信息,例如:“队列中有5个呼叫,期望等待时间为15分钟”。
服务器可以发出多个182 响应来更新当前排队呼叫的信息。
183 会话进度(session progress)应答用于提示建立对话的进度信息。
Reason-Phrase(表达原因的句子)、头域或者消息体可以用于提示呼叫进度的更新消息的信息。
300 多个选择(Multiple Choice)请求中的地址被解析为多个位置,用户可以将请求重定向到一个合适的地址。
该响应应该包含可供用户或用户代理选择的位置和资源列表,并且在Contact头域中,列出可供选择的地址。
(网络协议不兼容:会话描述中的一个或多个网络协议不可用。
)301 永久离开(Moved Permanently)在请求中Request-URI所指的地址找不到用户,客户应该尝试Contact头域给出的新地址。
主叫收到该响应后应该更新所有的本地目录,地址簿,用户位置缓存并将以后的请求重定向到新的地址。
(网络地址格式不兼容:会话描述中的一个或多个地址格式不可用。
)302 暂时离开(Moved Temporarily)客户应该用Contact头域给出的新地址尝试呼叫。
响应中Expire头域指出该次重定向的有效期,如果没有给出有效期,那么重定向只对当前呼叫有效。
简便的SIP消息--我们来看看SIP消息的格式
简便的SIP消息--我们来看看SIP消息的格式疫情期间,学校停课,北京的学校都在家上⽹络课堂,⼤家使⽤的不是腾讯视频会议便是钉钉视频会议。
疫情对⼤部分企业都造成了损失,然⽽视频会议市场却迎来⽣机。
今天咱们来谈谈视频会议中使⽤的SIP协议是什么样⼦的。
咱们⽴刻⽤SIP终端发起⼀个呼叫,然后抓取⽹络包如下,我们看到它包含很多A:B这种格式的数据,这些就叫SIP Header,和HTTP Header差不多。
下⾯是发起呼叫的invite SIP消息INVITE sip:6999 SIP/2.0From: <sip:112826@136.123.127.49>;tag=1b7ffa38-6800a8c0-13c4-60011-8ca1-5ce4ed6e-8ca1To: <sip:6999>Call-ID: 1b855600-6800a8c0-13c4-60011-8ca1-614dc2d0-8ca1CSeq: 1 INVITEVia: SIP/2.0/UDP 136.123.127.49:5060;rport;branch=z9hG4bK-8ca1-2255705-7fc7db28-1b7c8d00Max-Forwards: 70Supported: replaces,timer,100relAllow: INVITE, ACK, BYE, REFER, NOTIFY, INFO, CANCELUser-Agent: Sherlock 3.2.0.8Contact: <sip: 112826@136.123.127.49>Session-Expires: 1800;refresher=uac咱们再看看被邀请的⼀⽅返回的SIP消息SIP/2.0 200 OKFrom: <sip: 112826@136.123.127.49>;tag=1b7ffa38-6800a8c0-13c4-60011-8ca1-5ce4ed6e-8ca1To: <sip:6999>;tag=7f231e4ff028-e46b820a-13c4-55022-22b3fa-3ca0854f-22b3faCall-ID: 1b855600-6800a8c0-13c4-60011-8ca1-614dc2d0-8ca1CSeq: 1 INVITESIP消息包含了很多SIP Headers,它很容易看懂,咱们挑⼏个看⼀下1. 1. INVITE sip:6999 SIP/2.0它的意思是,这是⼀个invite消息,呼叫的对象是1. 2. From: <sip:112826@136.123.127.49>;tag=1b7ffa38-6800a8c0-13c4-60011-8ca1-5ce4ed6e-8ca1它的意思是这个invite消息来⾃谁,tag⽤来标识这个谁1. 3. To: <sip:6999>它的意思很明显,就是发送给谁1. 4. Call-ID: 1b855600-6800a8c0-13c4-60011-8ca1-614dc2d0-8ca1它的意思也很明显,就是呼叫的ID,⽤来标识这次呼叫1. 5. CSeq: 1 INVITE1 是个序列号,⼀个对话包含很多请求,⼀般情况下每次发起⼀个新的请求,这个序列号会+1INVITE 这个是请求的名字。
SIP消息解释
第一章SIP协议主要消息1.1 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响应1.2 SIP消息结构请求消息和响应消息都包括SIP消息头字段和SIP消息体字段;SIP消息头主要用来指明本消息是有由谁发起和由谁接受,经过多少跳转等基本信息;SIP消息体主要用来描述本次会话具体实现方式;1.3 消息格式1.3.1 请求消息格式SIP请求消息的格式,由SIP消息头和一组参数行组成,如图1-1所示。
通过换行符区分命令行和每一条参数行。
预览:消息头图1-1 SIP请求消息结构注意:参数行的顺序不是固定的。
对应的参数解释见错误!未找到引用源。
消息体定义:Call-ID:头字段是用来将消息分组的唯一性标识From:头字段是指示请求发起方的逻辑标识,它可能是用户的注册地址。
From头字段包含一个URI和一个可选的显示名称CSeq:头字段用于标识事务并对事务进行排序。
它由一个请求方法和一个序列号组成,请求方法必须与对应的请求消息类型一致Max-Fowords:头字段限定一个请求消息在到达目的地之前允许经过的最大跳数。
支持4+5G语音的SIP消息是个啥?
支持4+5G语音的SIP消息是个啥?一、SIP消息SIP是Session Initiation Protocl的简称。
它是VoLTE/VONR通话中用于创建、修改和终止会话,两个用户之间进行会话协商的协议。
SIP是一种顺序协议,其请求/响应在功能和格式上都类似于HTTP SIP;*SIP不执行RTP/RTCP完成的传输层(传递数据)。
图1.VOLTE通话中主要SIP消息图1显示了VoLTE呼叫中涉及的主要SIP消息。
在向主、被叫用户振铃之前,网络中相关单元需要就语音编解码器和其他资源的分配进行协商。
需要端点之间的通信以指示本地资源是否已在根据RFC3312中的条件框架进行了成功分配。
两个终端(UE)须协商决定他们要交换的媒体类型,可以是音频(Voice)或视频(Audio)或任何IMS 应用。
二、SIP中SDP消息在VOLTE通话流程中首先是媒体握手(包括SDP Offer&Answer)-SDP(Session Description Protocol)会话描述协议。
用于A方和B方之间高清语音呼叫的媒体承载和代码协商的握手。
此SDP消息在SIP 消息中携带,其有助于交换许多关键和重要的消息,例如用户支持的IP地址、所需带宽和编解码器。
这些参数是根据使用的SDP Offer&Answer机制协商的。
两个UE通过SDP Offer / Answer模型相互通信以协商QOS和编解码器信息。
此协商和媒体握手期间,终端需在QCI=1上为此语音呼叫建立专用承载。
该专用承载用于承载语音有效载荷和互连用户以及用于承载语音比特n字节的LTE网络。
它是在网络节点PCRF的帮助下完成的,使IMS和LTE网络之间的通信能够为用户和LTE网络之间的语音呼叫建立和拆除这些专用承载。
只有满足QOS Pre-Conditions后,呼叫才能进行第三步中提到的Ringing用户。
此通信通过SIP协议进行;而在第四步一旦被叫方选择呼叫,双方UE开始交换媒体包进行(视频)通话.注意:媒体包可以直接发送与信令通过不同的路径传输。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
SIP各类消息简介1.消息简介sip消息类型和消息格式SIP是一个基于文本的协议,使用的是UTF-8字符集.SIP消息主要分为两大类:一类是由客户端发往服务器的请求消息(Request);一类是由服务器发往客户端的应答消息(Response).一个基本的SIP消息包括起始行、一个或多个头字段、说明头字段结束的空行和一个可选的消息体。
消息=起始行(包括请求行/状态行;请求行规定了请求的类别,而状态行指出了每个请求的状态,比如是成功还是失败。
如果是失败的话还要给出失败的原因或类型。
)*头字段CRLF[消息体] (消息首部给出了关于请求或应答的更多信息一般包括消息的来源、规定的消息接收方,另外还包括一些其他方面的重要信息。
消息体通常描述将要建立会议的类型包括所交换媒体的描述,但不具体定义消息体的内容或结构,其结构或内容使用另外一个协议来描述,就是会话描述协议SDP。
)2.请求消息请求行=方法+空格+请求地址+SIP版本号+空行通过一个请求行作为起始行,请求行包括了方法名、请求的URL、协议版本号、中间用空格分开。
六种请求方法:INVITE 发出呼叫会话请求ACK INVITE请求被最终请求BYE 释放一个呼叫会话CANCEL 取消挂起的呼叫REGISTER 登记注册用户代理OPTIONS 查询服务器能力3.应答消息状态行=SIP版本+空格+状态码+空格+相关文本短语+空行SIP应答消息状态码与功能类型状态码状态说明临时应答(1XX) 100 Trying 正在处理中180 Ringing 振铃181 call being forwarder 呼叫正在前向182 queue 排队181* session progress 会话进行会话成功(2XX) 200 OK 会话成功重定向(3XX) 300 multiple 多重选择301 moved permanently 永久移动302 moved temporaily 临时移动305 use proxy 用户代理380 alternative service 替代服务请求失败(4XX) 400 bad request 错误请求401 unauthorized 未授权402 payment required 付费要求403 forbidden 禁止404 not found 未发现405 method no allowed 方法不允许406 not acceptable 不可接受407 proxy authentication required 代理需要认证408 request timeout 请求超时410 gone 离开413 request entity too large 请求实体太大414 request-url too long 请求URL太长415 unsupported media type 不支持的媒体类型416 unsupported url scheme 不支持的URL计划420 bad extension 不良扩展421 extension required 需要扩展423 interval too brief 间隔太短480 temporarily unavailable 临时失效481 call/transaction does not exist 呼叫/事务不存在482 loop detected 发现环路483 too many hops 跳数太多484 address incomplete 地址不完整485 ambiguous 不明朗486 busy here 这里忙487 request terminated 请求终止488 not acceptable here 这里请求不可接受491 request pending 未决请求493 undecipherable 不可辨识服务器失败(5XX) 500 server internal error 服务器内部错误501 not implemented 不可执行502 bad gateway 坏网关503 service unavailable 服务无效504 server time-out 服务器超时505 version not supported 版本不支持513 message too large 消息太大全局性错误(6XX) 600 busy everywhere 全忙603 decline 丢弃604 does not exist anywhere 不存在606 not acceptable 不可接受4.SIP应答代码(这个是详细的应答码解释)应答码是包含了,并且扩展了HTTP/1.1应答码。
并不是所有的HTTP/1.1应答码都适当应用,只有在折里指出的是适当的。
其他HTTP/1.1应答码不应当使用。
并且,SIP也定义了新的应答码系列,6xx。
4.1 临时应答1xx临时应答,也就是消息性质的应答,标志了对方服务器正在处理请求,并且还没有决定最后的应答。
如果服务器处理请求需要花200ms以上才能产生终结应答的时候,它应当发送一个1xx应答。
注意1xx应答并不是可靠传输的。
他们不会导致客户端传送一个ACK应答。
临时性质的(1xx)应答可以包含消息体,包含会话描述。
4.1.1 100 Trying这个应答表示下一个节点的服务器已经接收到了这个请求并且还没有执行这个请求的特定动作(比如,正在打开数据库的时候)。
这个应答,就像其他临时应答一样,种植了UAC重新传送INVITE请求。
100(Trying)应答和其他临时应答不同的是,在这里,它永远不会被有状态proxy转发到上行流中。
4.1.2 180 RingingUA收到INVITE请求并且试图提示给用户。
这个应答应当出世化一个本地回铃。
4.1.3 818 Call is Being Forwarded(呼叫被转发)服务器可以用这个应答代码来表示呼叫正在转发到另一个目的地集合。
4.1.4 182 Queued当呼叫的对方暂时不能接收呼叫的时候,并且服务器决定将呼叫排队等候,而不是拒绝呼叫的时候,那么就应当发出这个应答。
当被叫方一旦恢复接收呼叫,他会返回合适的终结应答。
对于这个呼叫状态,可以有一个表示原因的短语,比如:”5 calls queued;expected waiting time is 15minutes”。
服务器可以给出好几个182(Queued)应答告诉呼叫方排队的情况(比如排队靠前了等等)。
4.1.5 183 会话进度183(Session Progress)应答用于提示建立对话的进度信息。
Reason-Phrase(表达原因的句子)、头域或者消息体可以用于提示呼叫进度的更消息的信息。
4.2 成功信息2xx这个应答表示请求是成功的。
4.2.1 200 OK请求已经处理成功。
这个信息取决于不同方法的请求的应答。
4.3 转发请求3XX3xx系列的应答是用于提示用户的新位置信息的,或者为了满足呼叫而转发的额外服务地点。
4.3.1 300 Multiple Choices请求的地址有多个选择,每个选择都有自己的地址,用户或者(UA)可以选择合适的通讯终端,并且转发这个请求到这个地址。
应答可以包含一个具有每一个地点的在Accept请求头域中允许的资源特性,这样用户或者UA可以选择一个最合适的地址来转发请求。
没有未这个应答的消息体定义MIME类型。
这些地址选择也应当在Contact头域中列出(20.10节)。
不同于HTTP,SIP应答可以包含多个Contact头域或者一个Contact头域中具有一个地址列表。
UA可以使用Contact头域来自动转发或者要求用户确认转发。
不过,本规范没有定义自动转发的标准。
如果被叫方可以在多个地址被找到,并且服务器不能或者不愿意转发请求的时候,可以使用这个应答来给呼叫方。
4.3.2 301 Moved Permently当不能在Request-URI指定的地址找到用户的时候,请求的客户端应当使用Contact头域(20.10)所指出的新的地址重新尝试。
请求者应当用这个新的值来更新本地的目录,地址本,和用户地址cache,并且在后续请求中,发送到这个/这些列出的地址。
4.3.3 302 Moved Temporarily请求方应当把请求重新发到这个Contact头域所指出的新地址(20.10)。
新请求的Request-URI 应当用这个应答的Contact头域所指出的值。
在应答中的Expires(20.19节)或者Contact头域的expires参数定义了这个Contact URI的生存周期。
UA或者proxy在这个生存周期内cache这个URI。
如果没有严格的有效时见,那么这个地址仅仅本次有效,并且不能在以后的事务中保存。
如果cache的Contact头域的值失败了,那么被转发请求的Request-URI应当再次尝试一次。
临时URI可以比超时时间更快的失效,并且可以有一个新的临时URI。
4.3.4 305 Use Proxy请求的资源必须通过Contact头域中指出的proxy来访问。
Contact头域指定了一个proxy的URI。
接收到这个应答的对象应当通过这个proxy重新发送这个单个请求。
305(UseProxy)必须是UAS产生的。
4.3.5 380 Alternative Service呼叫不成工,但是可以尝试另外的服务。
另外的服务在应答的消息体中定义。
消息体的格式在这里没有定义,可能在以后的规范中定义。
4.4 请求失败4xx4xx应答定义了特定服务器响应的请求失败的情况。
客户端不应当在不更改请求的情况下重新尝试同一个请求。
(例如,增加合适的认证信息)。
不过,同一个请求交给不同服务器也许就会成功。
4.4.1 400 Bad Request请求中的语法错误。
Reason-Phrase应当标志这个详细的语法错误,比如”Missing Call-ID header field”。
4.4.2 401 Unauthorized请求需要用户认证。
这个应答是由UAS和注册服务器产生的,当407(Proxy Authentication Required)是proxy服务器产生的。
4.4.3 402 Payment Required保留/以后使用4.4.4 403 Forbidden服务端支持这个请求,但是拒绝执行请求。
增加验证信息是没有必要的,并且请求应当不被重试。
4.4.5 404 Not Found服务器返回最终信息:用户在Request-URI指定的域上不存在。
当Request-URI的domain和接收这个请求的domain不匹配的情况下,也会产生这个应答。