SIP协议基本流程学习
SIP协议呼叫流程及协议分析
SIP协议呼叫流程及协议分析SIP(Session Initiation Protocol)是一种用于建立、修改和终止多媒体会话的通信协议。
它是一种基于文本的协议,使用标准的HTTP语法来传输消息。
SIP协议在VoIP(Voice over Internet Protocol)中广泛应用,用于呼叫控制和媒体会话管理。
一、SIP协议呼叫流程:1. 呼叫发起:- 呼叫方向代理服务器发送INVITE请求,包含目标用户的SIP地址。
- 代理服务器根据目标地址查询目标用户的位置信息,并转发INVITE请求。
2. 呼叫接收:- 目标用户的终端设备收到INVITE请求,返回100 Trying响应,表示正在处理请求。
- 终端设备根据用户设置,选择是否接受呼叫。
3. 呼叫建立:- 目标用户接受呼叫后,终端设备发送200 OK响应,表示呼叫建立。
- 代理服务器将200 OK响应转发给呼叫方。
4. 媒体协商:- 呼叫方和目标用户通过SDP(Session Description Protocol)交换媒体协商信息,包括编解码器、传输协议等。
- 双方根据媒体协商信息建立媒体传输通道。
5. 会话管理:- 呼叫方和目标用户通过SIP消息交换会话管理信息,如保持、暂停、终止等操作。
- 代理服务器负责转发这些会话管理消息。
6. 呼叫结束:- 任一方或代理服务器可以发送BYE请求,表示呼叫结束。
- 接收方返回200 OK响应,表示呼叫终止。
- 代理服务器将200 OK响应转发给发起方。
二、SIP协议分析:1. SIP消息格式:- SIP消息由起始行、头部和消息体组成。
- 起始行包含请求方法/响应状态码、URI和SIP版本。
- 头部包含多个字段,如From、To、Call-ID、CSeq等,用于传递相关信息。
- 消息体可选,用于传输媒体数据。
2. SIP地址:- SIP地址采用URI(Uniform Resource Identifier)格式,如sip:****************。
SIP协议基本流程学习课件
行動 ▪ 4xx:客戶機錯誤,表示請求消息中包含語法錯誤或者SIP伺
服器不能完成對該請求消息的處理。 ▪ 5xx:伺服器錯誤,表示SIP伺服器故障不能完成對正確消息
的處理 ▪ 6xx:全局故障,表示請求不能在任何SIP伺服器上實現。
4 SIP消息基本結構
▪ 請求消息和回應消息的格式,一般由起始行,若干 個消息頭和消息體構成。
▪ v=0 ▪ o=escene 2890844526 8000 IN IP4 138.1.0.43 ▪ s=IpPhone CALL ▪ c=IN IP4 138.1.0.43 ▪ t=0 0 ▪ m=audio 10000 RTP/AVP 8 0 18 97 ▪ a=rtpmap:8 PCMA/8000 ▪ a=rtpmap:0 PCMU/8000 ▪ a=rtpmap:18 G729/8000 ▪ a=rtpmap:97 telephone-event/8000 ▪ a=fmtp:97 0-15 ▪ a=ptime:20 ▪ a=sendrecv
1a-379300d6-1a ▪ To: "3232301"<sip:3232301@138.1.0.200> ▪ Call-ID: 10a5cd0-8a010084-13c4-40030-1a-6918b0-1a ▪ CSeq: 1 REGISTER ▪ Via: SIP/2.0/UDP 138.1.0.132:5060;branch=z9hG4bK-1a-6888-3122f5a7 ▪ Max-Forwards: 70 ▪ Supported: replaces ▪ User-Agent: Gaoke MG6000 Serial Gateway ▪ Contact: "3232301"<sip:3232301@138.1.0.132:5060> ▪ Expires: 100 ▪ Authorization: Digest
SIP协议呼叫流程及协议分析
SIP协议呼叫流程及协议分析SIP(Session Initiation Protocol)是一种用于建立、修改和终止多媒体会话的协议。
它允许用户在互联网上进行实时语音、视频通话以及即时消息传递等。
SIP协议的呼叫流程可以简要概括为:建立连接、呼叫邀请、会话建立、会话修改和会话终止。
1.建立连接:2.呼叫邀请:发起呼叫的一方(称为呼叫发起方)向被呼叫方发送一个INVITE请求,其中包括被呼叫方的SIP地址。
INVITE请求中还包含了与呼叫相关的会话描述信息(SDP)。
3.会话建立:被呼叫方收到INVITE请求后,可以采取以下步骤来进行会话建立:a.被呼叫方返回一个响应(称为200OK)给呼叫发起方,表示接受呼叫邀请。
b. 被呼叫方收到100 Trying响应后,表示已收到呼叫邀请。
c. 被呼叫方可以发送180 Ringing响应给呼叫发起方,表示正在被呼叫方正在响铃。
d.呼叫发起方接收到200OK响应后,表示会话建立成功。
4.会话修改:在会话建立后,呼叫发起方和被呼叫方之间可以根据需要对会话进行修改。
例如,可以设置音频编解码器、视频分辨率等参数。
SIP协议提供了多种消息来进行会话修改,如ACK、BYE、CANCEL、OPTIONS等。
5.会话终止:当通话结束时,任何一方可以发送BYE请求来终止通话。
接收到BYE请求的一方会发送一个200OK响应,表示通话已终止。
1.灵活性:SIP协议使用文本格式,易于阅读和理解,且允许在会话建立后对会话进行修改。
2.易于扩展:SIP协议定义了许多扩展机制,使其适应不断增长的需求和新的通信技术。
3.开放性:SIP协议是一个开放的协议,允许与其他协议(如H.323、XMPP等)进行互操作。
4.易于管理:SIP协议允许用户和终端设备具有自由度,可在各种网络环境和设备上进行使用和管理。
然而,SIP协议也存在一些挑战和问题:1.安全性:SIP协议的开放性也带来了安全问题,如拒绝服务攻击、身份伪造等。
IMS_VoLTE基础培训-SIP协议与流程
a=orient:portrait
HUAWEI TECHNOLOGIES CO., LTD.
Page 20
HUAWEI Confidential
SIP消息示例:
INVITE tel:+8675580002901 SIP/2.0(请求起始行。INVITE请求消息。请求URI,即被邀用户的当前地址为 “tel:+8675580002901”。SIP版本号为2.0) From: <sip:+867556650001@>;tag=1ccb6df3( From字段。指明请求发起方的地址为“< sip:+867556650001@ >) To: sip:66500002@;user=phone( To字段。指明请求接收方的地址为“< sip:66500002@;user=phone > ) CSeq: 1 INVITE( Cseq字段。用于将INVITE请求和其触发的响应、对应的ACK、CANCEL请求相关联) Call-ID: 20973e49f7c52937fc6be224f9e52543@( Call-ID字段。该字段唯一标识一个特定的邀请,全 局唯一) Via: SIP/2.0/UDP 154.112.2.51:5061;branch=z9hG4bKliv0vdlwdrrydvgrpix0pgx0w( Via字段。该字段用于指示该请求历经的 路径。“SIP/2.0/UDP”表示发送的协议,协议名为“SIP”,协议版本为2.0,传输层为UDP;“154.112.2.51:5061”表示发送方ATS IP地址为154.112.2.51,端口号为5061;“branch=z9hG4bkbc427dad6”为分支参数,IMS并行分发请求时标记各个分支) Contact: sip:+867556650001@ 154.112.2.51:5060( Contact字段。指示其后的请求(如BYE请求)可以直接发往< sip:+867556650001@ 154.112.2.51:5060>,而不必借助Via字段) Supported: 100rel( 100rel扩展,该字段为100类响应消息的可靠传输提供了相应的机制) Max-Forwards:70( Max-Forwards字段。表示该请求到达其目的地址所允许经过的中转站的最大值为70。) Allow:INVITE,ACK,CANCEL,OPTIONS,BYE,REGISTER,PRACK,INFO,UPDATE,SUBSCRIBE,NOTIFY,MESSAGE,REFER ( Allow字段。给出IP地址为154.112.2.51的设备支持的请求消息类型列表) Content-Length:230(表示消息长度为230个字节) Content-Type: application/sdp(表示消息中携带的消息体是单消息体且为SDP) (空行,表示下面为SDP会话描述) v=0( SDP协议版本号,目前为0版本) o=HwATS9900 1073741831 1073741831 IN IP4 154.112.2.51(发出会话的发起者、会话标识、该会话公告的版本、 IN”指网络 类型、IPV4:地址类型、创建会话的主机IP) s=Sip Call(会话名) c=IN IP4 191.134.110.3(连接数据) m=audio 10002 RTP/AVP 8 0 4 18(媒体级描述: audio音频、10002媒体流发往的传送层端口、 RTP/AVP”为传送层协议、媒体 静荷类型) a=rtpmap:8 PCMA/8000( rtpmap属性行:<静荷类型><编码名>/<时钟速率>) a=rtpmap 0 PCMU/8000 a=rtpmap 4 G723/8000 a=rtpmap 18 G729/8000 HUAWEI TECHNOLOGIES CO., LTD. Page 21 HUAWEI Confidential
网络协议知识:SIP协议的基本工作流程和通信过程
网络协议知识:SIP协议的基本工作流程和通信过程SIP协议的基本工作流程和通信过程SIP协议(Session Initiation Protocol)是一种用于建立、修改和终止多媒体传输会话的信令协议。
它被广泛地应用于互联网电话(VoIP)、视频会议、实时文本等领域。
在本文中,我们将介绍SIP协议的基本工作流程和通信过程。
一、SIP协议的基本工作流程SIP协议的基本工作流程包括会话描述、会话建立、呼叫传送和会话终止四个部分。
1.会话描述在建立会话之前,需要先进行会话描述,包括会话类型、参与者、所需资源和传输协议等信息。
这些信息被包含在SIP消息中,由发送者向接收者发送。
2.会话建立会话建立是SIP协议的核心部分,它分为两个阶段:呼叫请求和呼叫响应。
(1)呼叫请求:呼叫请求由客户端发起,它包含了所需资源和参与者的信息。
首先,客户端需要向第三方服务器发送INVITE消息,请求建立一次会话。
在INVITE消息中,需要包含被叫方的地址信息、消息头部信息和描述被呼叫方资源的SDP(Session Description Protocol)。
(2)呼叫响应:被呼叫方在收到INVITE消息之后,会返回一个响应。
响应分为三种:1xx、2xx和3xx+。
其中,1xx表示正在进行中,2xx表示成功建立,3xx+表示需要重定向。
“成功建立”的响应会包含会话描述信息,即SDP。
在响应中,还可以通过Location字段告知客户端新的地址信息。
3.呼叫传送呼叫传送是会话建立之后,实际传输媒体数据的阶段。
SIP协议支持多种传输协议,包括UDP、TCP和TLS等。
在呼叫传送消息过程中,需要用到RTCP(Real-time Transport Control Protocol)和RTP (Real-time Transport Protocol)协议进行音视频流传输控制。
4.会话终止当一次会话结束时,需要发送一个BYE消息。
BYE消息用于释放会话资源,并告知接收方会话已经结束。
sip流程
sip流程SIP(Session Initiation Protocol),会话初始化协议,是一种用于建立、修改和终止实时会话的通信协议。
它是一种应用层协议,在IP网络中使用,可以通过音频、视频、聊天和实时传真等多种媒体进行通信。
SIP定义了一系列消息和过程,用于建立、管理和终止会话,包括会话的建立、用户的注册、呼叫的传输和结束等。
下面将介绍一下SIP的工作流程。
第一步是用户注册。
在进行SIP通信之前,用户需要进行注册。
用户首先向SIP服务器发送注册请求,请求中包含了用户的身份信息。
SIP服务器收到请求后,将会验证用户的身份,如果身份验证通过,服务器会将用户的信息保存起来。
此时用户就可以进行SIP通信了。
第二步是建立会话。
在进行通信之前,需要先建立会话。
发起通信的一方先向SIP服务器发送一条邀请消息,邀请消息中包含了被邀请方的SIP地址和媒体信息。
SIP服务器收到邀请消息后,会将邀请消息传送给被邀请方。
被邀请方收到邀请消息后,可以选择接受或拒绝邀请。
如果接受邀请,被邀请方会向SIP服务器发送一条响应消息,确认会话的建立。
在会话建立后,通信双方即可通过SIP来进行实时通信。
第三步是传输媒体。
在会话建立之后,通信双方通过SIP传输媒体数据。
媒体数据可以是音频、视频或者其他类型的实时数据。
在传输媒体数据之前,需要先协商媒体参数。
通信双方通过SIP传输协商消息,协商传输的编解码方式、传输速率等参数。
在协商完成后,即可开始传输媒体数据。
第四步是会话结束。
当通信双方不再需要进行通信时,可以通过SIP来终止会话。
任何一方都可以发起会话的结束。
发起结束的一方向SIP服务器发送一条会话终止请求,请求中包含了会话的相关信息。
SIP服务器收到请求后,会将会话终止请求传送给对应的通信另一方。
通信另一方收到请求后,可以选择接受或拒绝请求。
如果接受终止请求,会话即结束。
总结起来,SIP的流程可以概括为用户注册、建立会话、传输媒体和会话结束。
SIP协议基本流程学习
SIP协议基本流程学习SIP(Session Initiation Protocol)是一种用于建立、维护和终止多媒体会话的协议。
它是一种应用层协议,使用文本形式进行通信。
SIP协议的基本流程包括注册、呼叫和终止。
接下来是呼叫过程,当用户希望与其他用户建立会话时,需要发送INVITE请求消息。
该消息包含源用户和目标用户的SIP地址。
在SIP服务器接收到INVITE请求后,它会尝试为目标用户查找位置,并返回一个临时地址给源用户。
如果目标用户同意接受呼叫,它会向该临时地址返回一个响应消息。
源用户收到响应消息后,会向目标用户发送一个ACK消息,表明呼叫已建立。
此时,源和目标用户之间就可以进行多媒体会话。
在会话进行期间,用户可以通过发送消息方法(如OPTIONS、BYE或CANCEL)来与对方进行互动。
例如,用户可以选择取消呼叫、查询对方是否在线等。
这些消息在协议中的语法和语义都有明确定义。
最后,当会话结束时,用户可以发送BYE消息来终止呼叫。
接收到该消息的用户会向发送方返回一个响应消息,从而结束会话。
需要注意的是,SIP协议是一种灵活的协议,因此在呼叫过程中可以有多种不同的流程。
例如,可以使用代理服务器来处理呼叫请求,以提供更好的性能和可伸缩性。
此外,SIP还支持通过代理服务器进行呼叫路由,以便将呼叫转发到目标用户的真实地址。
综上所述,SIP协议的基本流程涵盖了注册、呼叫和终止过程。
通过理解这些过程,用户可以更好地使用SIP协议进行多媒体通信。
同时,SIP协议的灵活性还允许用户根据实际需求进行定制,以满足不同的通信场景。
SIP协议基本流程学习
SIP协议基本流程学习SIP(Session Initiation Protocol)是一个用于建立、维护和终止多媒体会话的协议。
它是在互联网工程任务组(IETF)的会话发起协议工作组(SIPPING)中制定的,广泛用于VoIP(Voice over IP)通信系统和实时通信应用。
1. 用户代理(User Agent)注册:SIP协议的一个重要特点是每个用户代理都有一个唯一的地址,称为SIP URI(Uniform Resource Identifier)。
用户代理发送一个REGISTER请求到注册服务器,注册服务器将该用户代理的地址和服务提供商的SIP服务器地址映射关系记录在数据库中。
2. 会话建立:当一个用户代理希望建立一个会话时,它会向呼叫对象的SIP地址发送一个INVITE请求,包含了用户代理能提供的媒体类型和相关参数。
呼叫对象接收到INVITE请求后,向新的用户代理发送一个100 Trying响应,表示正在处理呼叫请求。
然后,被叫方向调解服务器发送一个180 Ringing响应,表示正在振铃。
3.呼叫会话:被叫方接听呼叫后,发送200OK响应,告知呼叫方已经接通。
接下来,两个用户代理之间通过媒体服务器传输媒体流,进行音频或视频通信。
4.会话终止:当会话结束时,一个用户代理发送BYE请求,另一个用户代理返回一个200OK响应,表示会话已经终止。
注册服务器从数据库中删除相关的映射关系。
需要注意的是,SIP协议中还涉及到一些其他的请求和响应,用于处理例如呼叫转移、呼叫等待、会议通话等其他的功能。
此外,SIP协议还支持重定向和代理。
重定向是指当一个用户代理无法处理一个请求时,它可以向客户端提供另一个地址进行重试。
代理是指在请求传输过程中,一个中介设备转发请求并根据路由表决定将请求发送到何处。
总结起来,SIP协议基本流程包括用户代理注册、会话建立、呼叫会话和会话终止。
这个流程简单明了,但背后涉及的细节非常复杂,涉及网络传输、媒体编码等多方面知识。
SIP协议初级讲义(V2.0)
SIP Redirect Server SIP Proxy Server
Location Server
SIP Proxy Server IP Network UserAgent 图例
SIP协议
私有协议
UserAgnet
2.功能实体
User Agent Proxy Server Redirect Server Registrar Server Location Server
URL的表示规则
SIP-URL = "sip:" [ userinfo "@" ] hostport url-parameters [ headers ] userinfo = user [ ":" password ] user = *( unreserved | escaped | "&" | "=" | "+" | "$" | "," ) password = *( unreserved | escaped | "&" | "=" | "+" | "$" | "," ) hostport = host [ ":" port ] host = hostname | IPv4address hostname = *( domainlabel "." ) toplabel [ "." ] domainlabel = alphanum | alphanum *( alphanum | "-" ) alphanum toplabel = alpha | alpha *( alphanum | "-" ) alphanum IPv4address = 1*digit "." 1*digit "." 1*digit "." 1*digit port = *digit url-parameters = *( ";" url-parameter ) url-parameter = transport-param | user-param | method-param | ttl-param | maddr-param | other-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 = "?" header *( "&" header ) header = hname "=" hvalue hname = 1*uric hvalue = *uric uric = reserved | unreserved | escaped reserved = ";" | "/" | "?" | ":" | "@" | "&" | "=" | "+" | "$" | "," digits = 1*DIGIT
SIP协议基本流程学习
SIP协议基本流程学习SIP(Session Initiation Protocol)是一种基于文本的通信协议,用于建立、修改和终止多媒体会话,如语音和视频通话。
它是互联网工程任务组(IETF)的标准协议,被广泛应用于VoIP(Voice over IP)服务和实时通信系统。
首先,用户A会向SIP服务器进行注册。
用户A的User Agent会通过发送REGISTER请求到SIP服务器,请求将其地址注册到服务器,以便其他用户找到它。
SIP服务器将会响应一个成功(200 OK)或失败(4xx 或5xx)的响应消息。
接下来,用户A想要和用户B建立一个语音通话。
用户A的User Agent将发送一个INVITE请求消息给SIP服务器,请求将通话邀请转发给用户B。
INVITE消息携带了一些重要的信息,如媒体类型、编码格式、用户A的IP地址和端口号等。
SIP服务器收到INVITE请求后,会尝试找到用户B,并将INVITE消息转发给用户B的User Agent。
用户B的User Agent接收到INVITE请求后,可以选择接受或拒绝通话邀请。
如果用户B接受通话邀请,他的User Agent将发送一个200 OK 响应消息给SIP服务器和用户A的User Agent。
这个响应消息中携带了一些关于通话的信息,如媒体类型、编码格式、端口号等。
一旦用户A的User Agent接收到来自用户B的200 OK响应消息,通话建立的过程就正式开始了。
用户A的User Agent将发送ACK消息给用户B的User Agent,确认接收到了200 OK响应消息。
同时,用户A和用户B的User Agents会互相交换媒体信息,以进行语音数据传输。
当用户A和用户B结束通话时,任意一方的User Agent可以发送BYE请求消息给SIP服务器,请求终止通话。
SIP服务器将向另一方的User Agent转发BYE请求消息。
一旦双方的User Agents都接收到了BYE请求消息并发送了200 OK的响应消息,通话就会终止。
SIP协议介绍培训教程
proxy
Bob’s softphone
4.INVITE
8.180 Ringring 11.200 OK
5.100 Trying 7.180 Ringring 10.200 OK
12.ACK
6.180 Ringring 9.200 OK
Conversation 13.BYE 14.200 OK
Page 26
音讯头参数
Call-ID: 全局独一识别号 Call-ID 与tags用来识别 一个对话 Cseq: 用来识别和排序事务 包括一个序列号和一个method method 必需与央求婚配
Example: INVITE sip:bob@biloxi SIP/2.0 Call-ID: a84b4c76e66710 CSeq: 314159 INVITE
CRLF :回车换行
Page 21
音讯结构
起始行: 央求行 用于央求音讯 央求行 包括 Method , Request-URI ,SIP-Version 外形行 用于照应音讯 外形行包括: SIP-Version , Status-Code , Reason-Phrase
Page 22
Response
Page 9
基本概念
客户端\效力器 客户端: 一个客户端可以是任何一个发送 SIP 央求和接纳SIP照
应的网元。客户端和最终用户可以是直连或非直连的。 User Agent和 Proxy都是客户端。 效力器: 效力器就是接受效力央求并发送照应的网元。如 proxies, user agent , 重定向效力器, registrars.
基本概念
UA 和 Proxy User Agent (UA):可以发作SIP央求或SIP照应的逻辑实体 Proxy, Proxy Server: 是一个中间实体,用来转发SIP音讯.
SIP协议基本流程学习课件
4 SIP消息基本结构 请求消息和响应消息的格式,一般由起始行,若干 个消息头和消息体构成。
SIP一般消息 = 起始行 *消息头 CRLF(空行) [消息体]
起始行 = 请求行/状态行 ( SIP请求消息起始行是请求行 (Request-Line),响应消息起始行是状态行(StatusLine))。 请求消息头至少包括From、To、CSeq、Call-ID、MaxForwards、Via 六个头字段,它们是构建SIP消息基本单元 消息体一般采用SDP(Session Description Protocol)协议, 会话描述协议
3 SIP协议消息
SIP 消息采用文本方式编码,分为两类:请 求消息和响应消息。 请求消息:用于客户端为了激活按特定操 作而发给服务器的SIP 消息。 响应消息:用于对请求消息进行响应,指 示呼叫的成功或失败状态。
请求消息类型包括: INVITE,ACK,OPTIONS,BYE,CANCEL 和 REGISTER 消息等
2 基本SIP协议功能实体
定位服务(Location Service):SIP重定位服务器或代理服务器用来获得被叫位 置的一种服务,可由定位服务器提供,但SIP协议不规定SIP服务器如何请求定位服 务。 代理,代理服务器(Proxy、Proxy sever):用于代表其他用户发出请求的中间 程序。它既是客户机也是服务器。用户请求可以直接被代理服务器处理或被转发给 别的代理服务器。代理服务器在转发之前要对消息进行解析 ,必要时还会改写请 求。 重定向服务器(Redirect server):用来接收SIP请求,将其地址映射成零个或 多个新地址,并把结果返回给客户。与代理服务器(Proxy Server)不同,它不发 出自己的SIP请求;与用户助理服务器(User Agent Server)不同,它不接受呼叫。
SIP协议呼叫流程及协议分析 (2)
SIP协议呼叫流程及协议分析一、引言本文旨在详细介绍SIP(Session Initiation Protocol)协议的呼叫流程,并进行协议分析。
SIP是一种应用层协议,用于建立、修改和终止多媒体会话,如音频和视频通话。
它是一种灵活的协议,被广泛应用于VoIP(Voice over Internet Protocol)和实时通信系统。
二、SIP协议概述SIP协议基于文本,使用类似HTTP的请求-响应模式进行通信。
它使用统一资源标识符(URI)来标识参与会话的用户和终端设备。
SIP协议的核心功能包括会话的建立、修改和终止,以及与会话相关的功能,如呼叫转移和会议。
三、SIP协议呼叫流程1. 注册过程- 用户设备向SIP服务器发送REGISTER请求,包含用户的SIP URI和认证信息。
- SIP服务器验证用户身份,并将用户的SIP URI映射到一个或多个联系地址。
- SIP服务器返回REGISTER响应,包含联系地址和过期时间。
- 用户设备定期发送REGISTER请求以保持注册状态。
2. 呼叫建立过程- 主叫用户设备向SIP服务器发送INVITE请求,包含被叫用户的SIP URI。
- SIP服务器根据被叫用户的SIP URI查找其联系地址。
- SIP服务器向被叫用户设备发送INVITE请求。
- 被叫用户设备接收INVITE请求,并向SIP服务器发送RINGING响应。
- SIP服务器将RINGING响应转发给主叫用户设备。
- 被叫用户设备接听通话后,向SIP服务器发送OK响应。
- SIP服务器将OK响应转发给主叫用户设备。
3. 呼叫修改过程- 在呼叫建立后,主叫用户设备可以发送UPDATE请求来修改呼叫参数。
- SIP服务器将UPDATE请求转发给被叫用户设备。
- 被叫用户设备接收UPDATE请求,并向SIP服务器发送OK响应。
- SIP服务器将OK响应转发给主叫用户设备。
4. 呼叫终止过程- 任一用户设备可以发送BYE请求来终止呼叫。
SIP协议呼叫流程及协议分析
SIP协议呼叫流程及协议分析SIP(Session Initiation Protocol)是一种用于建立、修改和终止多媒体会话的协议。
它被广泛应用于VoIP(Voice over Internet Protocol)和实时通信系统中。
本文将详细介绍SIP协议的呼叫流程,并进行协议分析。
一、SIP协议呼叫流程SIP协议呼叫流程主要包括注册、呼叫建立、媒体协商和呼叫结束四个阶段。
1. 注册阶段在SIP系统中,用户需要先进行注册,以便系统能够识别并定位用户。
注册阶段的流程如下:- 用户向SIP服务器发送一个REGISTER请求,请求中包含用户的身份信息。
- SIP服务器接收到REGISTER请求后,验证用户身份,并将用户信息存储在注册表中。
- SIP服务器返回200 OK响应,表示注册成功。
2. 呼叫建立阶段一旦用户完成注册,就可以进行呼叫建立。
呼叫建立阶段的流程如下:- 主叫用户向SIP服务器发送INVITE请求,请求中包含被叫用户的SIP地址。
- SIP服务器根据被叫用户的SIP地址查询注册表,获取被叫用户的位置信息,并将INVITE请求转发给被叫用户所在的终端。
- 被叫用户的终端接收到INVITE请求后,向SIP服务器发送100 Trying响应,表示正在处理请求。
- 被叫用户的终端根据INVITE请求中的媒体描述信息,与主叫用户的终端进行媒体协商。
- 被叫用户的终端向SIP服务器发送180 Ringing响应,表示正在振铃。
- 被叫用户的终端与主叫用户的终端建立媒体通道后,向SIP服务器发送200 OK响应,表示呼叫建立成功。
3. 媒体协商阶段在呼叫建立成功后,主叫用户和被叫用户之间需要进行媒体协商,以确定音视频等媒体流的传输方式和参数。
媒体协商阶段的流程如下:- 主叫用户的终端向被叫用户的终端发送媒体描述信息,包含音视频编码格式、传输协议等。
- 被叫用户的终端根据媒体描述信息,选择合适的编码格式和传输协议,并向主叫用户的终端发送媒体描述信息。
SIP协议操作过程
SIP协议操作过程1.定义会话:发起SIP会话之前,需要定义会话的目的和参数。
会话可以是语音呼叫、视频会议或其他形式的多媒体通信。
定义会话后,需要指定会话的参与方。
2.寻找服务器:SIP使用了一个类似于URL的标识符,称为SIP统一资源标识符(URI)来标识参与方。
SIP客户端需要将URI解析为IP地址,并找到相应的SIP服务器。
3.建立会话:SIP客户端向SIP服务器发送一个呼叫请求(INVITE)。
呼叫请求包含了要建立会话的参与方的信息,例如IP地址、端口号等。
SIP服务器接收到请求后,会针对参与方进行一系列操作。
5. 响应请求:SIP服务器向SIP客户端发送一个响应,指示对呼叫请求的处理结果。
响应中包含一个状态码,指示请求是否成功。
常见的状态码有200(OK)、404(Not Found)等。
6.接受会话:如果呼叫请求成功,被呼叫方(被叫方)会接受该请求。
被叫方将会返回一个接受请求(ACK),表示已经接受了呼叫请求。
7. 建立媒体连接:一旦会话被接受,SIP客户端之间需要建立一个媒体连接,用于传输语音、视频等数据。
为了建立媒体连接,SIP客户端之间使用一个被称为SDP(Session Description Protocol)的协议交换媒体信息。
8.传输媒体数据:一旦媒体连接建立,SIP客户端之间可以开始传输实际的多媒体数据。
这包括音频、视频和其他形式的数据。
媒体数据通过媒体连接传输,并且可以使用各种编解码器进行编解码。
9.修改会话:如果会话需要被修改,例如增加或删除参与方,SIP客户端可以发送一个UPDATE请求。
更新请求包含修改会话的详细信息。
SIP服务器和被呼叫方需要根据请求进行相应的处理。
10.终止会话:会话可以通过发送BYE请求来终止。
BYE请求告知对方会话的终止,并引发清理和释放连接的操作。
被呼叫方接收到BYE请求后,会响应一个200状态码,表示会话已经成功终止。
11.错误处理:在SIP会话过程中,可能会发生各种错误。
SIP协议学习
SIP响应例子
SIP/2.0 200 OK Via: SIP/2.0/UDP ;branch=z9hG4bKnashds8;received=192.0.2.3 Via: SIP/2.0/UDP ;branch=z9hG4bK74c2312983.1;received=192.0.2.2 Via: SIP/2.0/UDP ;branch=z9hG4bK776asdhds;received=192.0.2.1 To: Bob <sip:bob@>;tag=a6c85cf From: Alice <sip:alice@>;tag=1928301774 Call-ID: a84b4c76e66710 CSeq: 314159 INVITE Contact: <sip:bob@192.0.2.4> Content-Type: application/sdp Content-Length: 131 [message body(SDP)]
SIP协议安全
Authentication(鉴定):服务器或用户 代理可以在Authentication头域的challenge 参数中使用共享密钥鉴别另一个用户代 理 Encryption(加密):消息体或者一些消 息头域可以被加密处理 Digital Signatures (数字签证)
SIP协议请求过程-1
SIP注册呼叫流程
Heisenberg sends a REGISTER request to a Registrar Server. The request contains Contact headers listing the URLs for which Heisenberg wishes to receive incoming SIP calls Registrar Accepts registration and replies with 200 OK and echoes current Contact list
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
响应消息由状态码来区分,状态码包含三位整数,状 态码的第一位用于定义响应类型,另外两位用于进一 步对响应进行更加详细的说明,包括: 1xx,2xx,3xx,4xx,5xx,6xx
SIP协议基本流程及抓包分析
注册、注销流程 基本通话流程及测试抓包 呼叫前转流程 补充业务流程
1 注册、注销流程
A Register
401 Unauthorized
Register Server
Register 200 OK
查看注册周期:
REGISTER sip:138.1.0.200 SIP/2.0 From: "3232301"<sip:3232301@138.1.0.200>;tag=111c5888a010084-13c4-40030-6a-45b3662a-6a To: "3232301"<sip:3232301@138.1.0.200> Call-ID: 10a5cd0-8a010084-13c4-40030-6a-f28e7cc-6a CSeq: 1 REGISTER Via: SIP/2.0/UDP 138.1.0.132:5060;branch=z9hG4bK-6a-19e7e25e28b34 Max-Forwards: 70 Supported: replaces User-Agent: Gaoke MG6000 Serial Gateway Contact: "3232301"<sip:3232301@138.1.0.132:5060> Expires: 100 //此值注册周期大小,设备会在这个时间内重新发起注册,一 般在(1/2注册周期)时就会发起注册. 注销包时此值为0 Content-Length: 0
SIP协议基本流程交流学习
公司
徽标
提纲
SIP协议概述 SIP协议基本流程及抓包分析
SIP协议概述
SIP协议概念 基本SIP协议功能实体 SIP协议消息 SIP消息基本结构
1 SIP协议概念
SIP(Session Initiation Protocol) 会话初始协 议,“是一个应用层的信令控制协议。用于创建、 修改和释放一个或多个参与者的会话。这些会话可 以是Internet多媒体会议、IP电话或多媒体分发。 会话的参与者可以通过组播(multicast) 、网状单 播(unicast)或两者的混合体进行通信。”
INVITE sip:567767@138.1.0.13:5060 SIP/2.0 //请求行 From: "89880000"<sip:89880000@138.1.0.13>;tag=111c368-8a010053-13c4-40030-cd-7128334e-cd To: <sip:567767@138.1.0.13:5060> Call-ID: 10d4608-8a010053-13c4-40030-cd-37fe6ab0-cd CSeq: 1 INVITE Via: SIP/2.0/UDP 138.1.0.83:5060;branch=z9hG4bK-cd-32352-af6db88 Max-Forwards: 70 Supported: replaces User-Agent: Gaoke MG6000 Serial Gateway Contact: 89880000<sip:89880000@138.1.0.83:5060> Allow: INVITE,ACK,CANCEL,BYE,OPTIONS,PRACK,UPDATE,SUBSCRIBE,NOTIFY,REFER,INFO Content-Type: application/sdp Content-Length: 278 v=0 o=89880000 1377333347 4616012 IN IP4 138.1.0.83 s=Audio Session i=Audio Session c=IN IP4 138.1.0.83 t=0 0 m=audio 12000 RTP/AVP 8 0 18 97 a=rtpmap:8 PCMA/8000 a=rtpmap:0 PCMU/8000 a=rtpmap:18 G729/8000 a=rtpmap:97 telephone-event/8000 a=fmtp:97 0-16 a=ptime:20
4 SIP消息基本结构 请求消息和响应消息的格式,一般由起始行,若干 个消息头和消息体构成。
SIP一般消息 = 起始行 *消息头 CRLF(空行) [消息体]
起始行 = 请求行/状态行 ( SIP请求消息起始行是请求行 (Request-Line),响应消息起始行是状态行(StatusLine))。 请求消息头至少包括From、To、CSeq、Call-ID、MaxForwards、Via 六个头字段,它们是构建SIP消息基本单元 消息体一般采用SDP(Session Description Protocol)协议, 会话描述协议
注册员(Registrar):用来接收 REGISTER 请求消息的服务器,常与代理或重定 向服务器在同一位置,可以提供定位服务。
用户助理客户(User Agent Client):用来发起SIP请求的客户程序。
用户助理服务器(User Agent Server): 收到SIP请求后负责与用户联系并代表 用户回送响应的服务程序。该响应可以表示接受、拒绝或重定向请求消息。
初始用户注册请求不携带authorization信息
REGISTER sip:138.1.0.200 SIP/2.0 From: "3232301"<sip:3232301@138.1.0.200>;tag=111bfe8-8a01008413c4-40030-1a-379300d6-1a To: "3232301"<sip:3232301@138.1.0.200> Call-ID: 10a5c90-8a010084-13c4-40030-1a-6918b0-1a CSeq: 1 REGISTER Via: SIP/2.0/UDP 138.1.0.132:5060;branch=z9hG4bK-1a-68923122f5a7 Max-Forwards: 70 Supported: replaces User-Agent: Gaoke MG6000 Serial Gateway Contact: "3232301"<sip:3232301@138.1.0.132:5060> Expires: 100 Content-Length: 0
2 基本SIP协议功能实体
定位服务(Location Service):SIP重定位服务器或代理服务器用来获得被叫位 置的一种服务,可由定位服务器提供,但SIP协议不规定SIP服务器如何请求定位服 务。 代理,代理服务器(Proxy、Proxy sever):用于代表其他用户发出请求的中间 程序。它既是客户机也是服务器。用户请求可以直接被代理服务器处理或被转发给 别的代理服务器。代理服务器在转发之前要对消息进行解析 ,必要时还会改写请 求。 重定向服务器(Redirect server):用来接收SIP请求,将其地址映射成零个或 多个新地址,并把结果返回给客户。与代理服务器(Proxy Server)不同,它不发 出自己的SIP请求;与用户助理服务器(User Agent Server)不同,它不接受呼叫。
初始用户注册请求携带authorization信息;如果启用该配 置项,设备在第一次发起注册时就会携带authorization信 息
REGISTER sip:138.1.0.200 SIP/2.0 From: "3232301"<sip:3232301@138.1.0.200>;tag=111c028-8a010084-13c4-400301a-379300d6-1a To: "3232301"<sip:3232301@138.1.0.200> Call-ID: 10a5cd0-8a010084-13c4-40030-1a-6918b0-1a CSeq: 1 REGISTER Via: SIP/2.0/UDP 138.1.0.132:5060;branch=z9hG4bK-1a-6888-3122f5a7 Max-Forwards: 70 Supported: replaces User-Agent: Gaoke MG6000 Serial Gateway Contact: "3232301"<sip:3232301@138.1.0.132:5060> Expires: 100 Authorization: Digest username="3232301",realm="",nonce="",uri="sip:138.1.0.200",response="",algorithm= MD5 Content-Length: 0
SIP/2.0 200 OK //状态行 From: "89880000"<sip:89880000@138.1.0.13>;tag=111c368-8a010053-13c4-40030-cd-7128334e-cd To: <sip:567767@138.1.0.13:5060>;tag=102ceee0-0-13c4-386d5043-2a574e78-386d5043 Call-ID: 10d4608-8a010053-13c4-40030-cd-37fe6ab0-cd CSeq: 2 INVITE Via: SIP/2.0/UDP 138.1.0.13:5060;rport;branch=z9hG4bK7310156c8b657bac.1 Via: SIP/2.0/UDP 138.1.0.83:5060;branch=z9hG4bK-cd-323a2-1fb6192e Supported: replaces,100rel Contact: <sip:567767@138.1.0.43:5061> Record-Route: <sip:138.1.0.13:5060;lr> Content-Type: application/sdp Content-Length: 267 v=0 o=escene 2890844526 8000 IN IP4 138.1.0.43 s=IpPhone CALL c=IN IP4 138.1.0.43 t=0 0 m=audio 10000 RTP/AVP 8 0 18 97 a=rtpmap:8 PCMA/8000 a=rtpmap:0 PCMU/8000 a=rtpmap:18 G729/8000 a=rtpmap:97 telephone-event/8000 a=fmtp:97 0-15 a=ptime:20 a=sendrecv