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协议主要消息协议版本: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协议主要消息一、背景介绍SIP(Session Initiation Protocol)是一种用于建立、修改和终止会话的信令协议,广泛应用于VoIP(Voice over Internet Protocol)和实时通信系统中。
SIP协议主要消息是指在SIP通信过程中,各个参与方之间传递的消息,包括请求消息和响应消息。
本协议旨在规范SIP协议主要消息的格式和内容,以确保通信的可靠性和互操作性。
二、协议目的本协议的目的是定义SIP协议主要消息的标准格式,包括请求消息和响应消息的结构、字段和语义。
通过遵循本协议,各参与方能够准确理解和处理SIP协议主要消息,从而实现可靠的通信和互操作。
三、协议内容1. 请求消息格式:请求行:包括请求方法、请求URI和SIP协议版本。
头部字段:包括常用字段(如From、To、Call-ID、CSeq、Contact等)和可选字段(如Max-Forwards、User-Agent、Content-Type等)。
空行:用于分隔头部字段和消息体。
消息体:可选,用于传递附加数据。
2. 响应消息格式:状态行:包括SIP协议版本、状态码和原因短语。
头部字段:包括常用字段(如From、To、Call-ID、CSeq、Contact等)和可选字段(如Server、Content-Type等)。
空行:用于分隔头部字段和消息体。
消息体:可选,用于传递附加数据。
四、协议规范1. 请求方法:- INVITE:用于建立会话。
- ACK:用于确认接收到INVITE请求。
- OPTIONS:用于查询支持的功能和参数。
- BYE:用于终止会话。
- CANCEL:用于取消未被接受的请求。
- REGISTER:用于注册用户的位置信息。
- INFO:用于传递会话中的中间信息。
- PRACK:用于确认接收到可靠传输的请求。
2. 状态码:- 1xx:信息性响应,表示请求已被接收,但尚未完成。
- 2xx:成功响应,表示请求已成功处理。
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协议详解

SIP协议详解1. 引言Session Initiation Protocol(SIP)是一种用于建立、修改和终止多媒体会话的通信协议。
它广泛应用于语音、视频和即时通讯等实时通信领域。
本文将对SIP协议进行详细解析,介绍其基本原理和主要特点。
2. SIP协议概述SIP协议是基于文本的应用层协议,使用可读的ASCII文本来进行消息交换。
它采用客户端/服务器(C/S)模型,其中用户代理作为客户端,SIP服务器作为服务器。
SIP消息的格式包括请求消息和响应消息两种类型。
3. SIP消息格式SIP消息由起始行、头部字段和消息体组成。
起始行包括请求行或状态行,用于表示消息的类型和状态。
头部字段包含了一系列的键值对,用于传递消息的各种参数和选项。
消息体用于传输实际的数据内容。
4. SIP会话的建立与终止SIP协议通过INVITE/200 OK消息实现会话的建立,通过BYE消息实现会话的终止。
当用户A希望与用户B建立一个通话时,用户A向SIP服务器发送INVITE 消息,SIP服务器将该消息转发给用户B。
用户B可以选择接受INVITE消息,然后发送200 OK消息给用户A,表示接受通话请求。
当通话结束时,任一用户可以发送BYE消息,通知对方终止通话。
5. SIP注册与鉴权SIP协议支持用户注册和鉴权机制,以实现用户身份验证和安全通信。
用户在注册时,将自己的身份信息发送给SIP服务器,服务器将该信息保存起来。
当用户发起通话请求时,服务器可以根据用户的身份进行鉴权,确定用户是否具有通话的权限。
6. SIP中继与路由SIP协议支持中继和路由机制,以实现跨网络的通信。
SIP中继允许SIP消息在不同的网络之间传输,保证了用户可以在不同的网络环境下进行通话。
SIP路由机制允许SIP消息根据特定的规则进行转发,以找到正确的接收者。
7. SIP扩展与应用SIP协议允许进行扩展,以满足不同应用场景的需求。
例如,SIP可以与其他协议结合使用,如SDP(Session Description Protocol)用于传输会话描述信息。
Sip协议消息解释

20 头域头域的语法描述在7.3节。
本节列出了头域的全部列表,包括了语法注释,含义,和用法。
通过本节,我们使用[HX.Y]指当前HTTP/1.1 的RFC2616[8]的规范的X.Y节。
每个头域都有示例给出。
关于与方法和proxy处理有关的头域字段在表2和表3中有处理。
“where”列描述了在头域中能够使用的请求和应答的类型。
这列的值是:R:头域只能在请求中出现;r:头域只能在应答中出现;2xx,4xx,等等:一个数字的值区间表示头域能够使用的应答代码。
c:头域是从请求拷贝到应答的。
如果”where”栏目是空白,表示头域可以在所有的请求和应答中出现。
“proxy”列描述了proxy在头域上的操作a:如果头域不存在,proxy可以增加或者连接头域m:proxy可以修改现存的头域值d:proxy可以删除头域值r:proxy必须能读取这个头域,因此这个头域不能加密。
接下来6个栏目与在某一个方法中出现的头域有关:c:条件;对头域的要求依赖于消息的内容m:头域是强制要有的。
m*:头域应当被发送,但是客户端/服务端都需要准备接收没有这个头域的消息。
o:头域是可选的。
t:头域应当被发送,但是客户端/服务端都需要准备接收没有这个头域的消息。
客户端/服务端都需要准备接收没有这个头域的消息。
如果通讯的协议是基于面向流的协议(比如TCP),那么头域值必须被发送。
*:如果消息体不为空,那么头域值就绪要的。
(细节请参见20.14,20.15和7.4节)-:这个头域是不适用的。
“Optional”意味着这个元素可以在请求或者应答中包含这个头域,并且UA可以忽略在请求或者应答中存在的这个头域(这条规则有一个例外,就是Require头域,在20.32节有描述)。
”mandatory”(强制)头域是必须在请求中存在的头域,并且也必须是UAS 接收到一个请求时能够理解的头域。
一个强制头域必须也在应答中出现,并且UAC也能处理这个头域。
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请求来查询这些信息。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第一章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 :头字段限定一个请求消息在到达目的地之前允许经过的最大跳数。
它包含一个整数值,每经过一跳,这个值就被减一。
如果在请求消息到达目的地之前该值变为零,那么请求将被拒绝并返回一个483(跳数过多)错误响应消息。
Via :头字段定义SIP 事务的下层(传输层)传输协议,并标识响应消息将要被发送的位置。
只有当到达下一跳所用的传输协议被选定后,才能在请求消息中加入Via 头字段值。
expires :参数指出了该值中包含的URI 地址的有效期。
这个参数的值是以秒为单位计算的。
如果没有提供该参数,那么URI 地址的有效期由Expires 头字段值来确定。
消息头SIP请求消息实例:INVITEsip:**********.0.1:5060;User=phoneSIP/2.0Call-ID:***********************.0.1Via:SIP/2.0/UDP 127.0.0.1:5061From:<sip:************.0.1:5061;User=phone>;tag=29005358336B53 4F610A000To:<sip:**********.0.1:5060;User=phone>Contact:sip:************.0.1:5061CSeq:1 INVITEMax-Forwards:70Content-Type: application/SDPContent-Length:168v=0o=UserA 2890844526 2890844526 IN IP4 s=Session SDPc=IN IP4 192.0.0.1t=0 0m=audio 49172 RTP/AVP 0 8a=rtpmap:0 PCMU/8000a=rtpmap:8 PCMA/8000a=sendonlyINVITE消息是其中一种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请求消息详解:INVITEsip:********************/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:*****************>From:NikolaTesla<sip:************************>;tag=76341 <=表示请求消息的发送方和目标方<=如果里面有用户名标签,地址要求用尖括号包起来<=对于INVITE消息,可以在From字段中包含tag,它也是个随机码Call-ID:**************************.org<=呼叫ID是由本地设备生成的,全局唯一值。
每次呼叫该值唯一不变<=对于用户代理发送INVITE消息,本地将生成From tag和Call-ID 全局唯一码,被叫方代理则生成To tag全局唯一码。
这三个随机码做为整个对话中对话标识(dialog indentifier)在通话双方使用。
CSeq: 1 INVITE<=CSeq,又叫命令队列(Command Seqence),每发送一个新的请求,该数自动加1* 以上几个字段是所有SIP消息体所必须的,其它头字段有些是可选的,有些在特定请求也是必须Subject: About That Power Outage...Contact:<sip:************************.org><=Contact是INVITE消息所必须的,它用来路由到被叫设备地址,也称为用户代理(UA)Content-Type: application/sdpContent-Length: 158<=最后两位附属字段说明消息体类型以及字段长度v=0 <=SDP版本号,目前都是0o=Tesla 28908445262890844526 INIP4 <=主叫源地址,类型等s=Phone Call1.3.2 响应消息格式SIP响应消息的格式,由SIP响应消息头和一组参数行组成,如0所示。
通过换行符区分命令行和每一行参数。
SIP响应消息结构消息头注意:参数行的顺序不是固定的。
对应的参数解释见错误!未找到引用源。
SIP响应消息实例:SIP/2.0 200 OKContent-Type:application/SDPVia:SIP/2.0/UDP 127.0.0.1:5061Call-ID:***************************.0.1CSeq:1 INVITEFrom:<sip:************.0.1:5061;User=phone>;tag=29005358336B 534F610A000To:<sip:**********.0.1:5060;User=phone>;tag=5358336B534F2900 CD1B0000Contact:<sip:**********.0.1:55061>Content-Length:156v=0o=HuaweiSoftX3000 1073741824 1073741824 IN IP4 127.0.0.1s=Sip Callc=IN IP4 110.111.112.113t=0 0m=audio 5060 RTP/AVP 0a=rtpmap:0 PCMU/8000200 OK消息是SIP响应消息的一种。
第一行由SIP版本号和200响应消息组成。
SIP URI是电话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类消息列表。
表1-1常见的1xx类消息列表2xx消息表示请求已经被接收、处理并被成功接受;200 :OK---请求成功。
2.4 3xx类消息(重定向响应)3xx消息表示响应给出有关用户新位置或其它可选服务的信息。