深入解析音视频流媒体SIP协议交互过程

打印 上一主题 下一主题

主题 806|帖子 806|积分 2418

一、弁言

在音视频流媒体传输过程中,SIP(Session Initiation Protocol)协议发挥着举足轻重的作用。本文将详细全面地介绍音视频流媒体传输中的SIP协议,包罗其基本概念、交互过程、关键信令以及应用场景
二、SIP协议基本概念

1. 定义:

SIP是一种应用层控制协议,用于创建、修改和开释一个或多个参与者的会话。
2. 功能:

SIP协议主要实现以下功能:
(1)用户定位:通过SIP协议,可以找到终端用户的当前位置。
(2)会话建立:在找到用户后,SIP协议负责建立会话。
(3)会话修改:在会话过程中,SIP协议支持修改会话参数。
(4)会话开释:竣事会话时,SIP协议负责开释相关资源。
三、SIP协议交互过程概述

1. 注册过程

(1)用户端(UAC)向SIP服务器发送注册请求。
(2)SIP服务器(UAS)验证用户信息,并存储在数据库中。
(3)SIP服务器向用户端发送注册乐成相应。
2. 约请过程

(1)UAC向UAS发送INVITE请求,约请对方加入会话。
(2)UAS收到INVITE请求后,向UAC发送100 Trying相应。
(3)UAS向UAC发送180 Ringing相应,表示正在响铃。
(4)UAS担当约请,向UAC发送200 OK相应。
(5)UAC收到200 OK相应后,向UAS发送ACK确认。
(6)会话建立,开始传输音视频数据。
3. 会话修改过程

(1)UAC向UAS发送RE-INVITE请求,请求修改会话参数。
(2)UAS收到RE-INVITE请求后,向UAC发送100 Trying相应。
(3)UAS同意修改,向UAC发送200 OK相应。
(4)UAC收到200 OK相应后,向UAS发送ACK确认。
4. 会话开释过程

(1)UAC向UAS发送BYE请求,表示要竣事会话。
(2)UAS收到BYE请求后,向UAC发送200 OK相应。
(3)会话竣事,资源开释。
四、SIP协议关键信令


  • 方法(Method):SIP协议中的方法包罗INVITE、ACK、OPTIONS、BYE、CANCEL、REGISTER等。
  • 相应(Response):SIP协议中的相应包罗1xx(临时相应)、2xx(乐成相应)、3xx(重定向相应)、4xx(客户端错误相应)、5xx(服务器错误相应)和6xx(全局错误相应)。
  • 头域(Header):SIP协议中的头域包罗To、From、Contact、Call-ID、CSeq等。
  • 消息体(Body):SIP协议中的消息体用于携带会话描述协议(SDP)等信息。
五、协议交互示例

以视频会议的SIP协议交互为例,假设有两个用户,Alice和Bob,他们要通过视频会议系统进行通话。以下是整个过程的SIP协议交互步骤和详细表明。
1. Alice注册到SIP服务器

  1. REGISTER sip:example.com SIP/2.0
  2. Via: SIP/2.0/UDP alice-pc.example.com;branch=z9hG4bKnashds7
  3. To: <sip:alice@example.com>
  4. From: <sip:alice@example.com>;tag=1928301774
  5. Call-ID: a84b4c76e66710
  6. CSeq: 1 REGISTER
  7. Contact: <sip:alice@alice-pc.example.com>
  8. Max-Forwards: 70
  9. Content-Length: 0
复制代码


  • REGISTER: SIP方法,用于注册用户位置。
  • Via: 标识请求的传输路径。
  • To: 指定注册用户的地址。
  • From: 指定注册用户的地址,并包罗一个标签(tag)用于匹配相应。
  • Call-ID: 通话的唯一标识符。
  • CSeq: 请求序列号,用于匹配请求和相应。
  • Contact: 指定用户当前的联系方式。
  • Max-Forwards: 限定请求的最大转发次数。
  • Content-Length: 消息体的长度,这里为0,由于没有消息体。
2. SIP服务器相应Alice的注册请求

  1. SIP/2.0 200 OK
  2. Via: SIP/2.0/UDP alice-pc.example.com;branch=z9hG4bKnashds7
  3. To: <sip:alice@example.com>;tag=1234567
  4. From: <sip:alice@example.com>;tag=1928301774
  5. Call-ID: a84b4c76e66710
  6. CSeq: 1 REGISTER
  7. Contact: <sip:alice@alice-pc.example.com>
  8. Expires: 3600
  9. Content-Length: 0
复制代码


  • 200 OK: SIP相应代码,表示注册乐成。
  • ToFrom: 包罗了请求中的标签。
  • Expires: 指定注册的有效期。
3. Alice发起视频会议约请

  1. INVITE sip:bob@example.com SIP/2.0
  2. Via: SIP/2.0/UDP alice-pc.example.com;branch=z9hG4bK74bf9
  3. To: <sip:bob@example.com>
  4. From: <sip:alice@example.com>;tag=1928301774
  5. Call-ID: a84b4c76e66710
  6. CSeq: 2 INVITE
  7. Contact: <sip:alice@alice-pc.example.com>
  8. Content-Type: application/sdp
  9. Content-Length: 151
  10. (v=0
  11. o=alice 2890844526 2890844526 IN IP4 alice-pc.example.com
  12. s=
  13. c=IN IP4 alice-pc.example.com
  14. t=0 0
  15. m=audio 49170 RTP/AVP 0
  16. m=video 51372 RTP/AVP 31
  17. a=rtpmap:31 LPCM/8000)
复制代码


  • INVITE: SIP方法,用于发起会话。
  • Content-Type: 指定消息体的类型,这里是SDP(Session Description Protocol)。
  • Content-Length: 消息体的长度。
  • SDP: 描述了会话的媒体信息,包罗音频和视频的端口、编码格式等。
4. Bob的SIP服务器转发INVITE请求

Bob的SIP服务器收到Alice的INVITE请求后,会将其转发给Bob。
5. Bob相应INVITE请求

  1. SIP/2.0 200 OK
  2. Via: SIP/2.0/UDP alice-pc.example.com;branch=z9hG4bK74bf9
  3. To: <sip:bob@example.com>;tag=456789
  4. From: <sip:alice@example.com>;tag=1928301774
  5. Call-ID: a84b4c76e66710
  6. CSeq: 2 INVITE
  7. Contact: <sip:bob@bob-pc.example.com>
  8. Content-Type: application/sdp
  9. Content-Length: 145
  10. (v=0
  11. o=bob 2890844527 2890844527 IN IP4 bob-pc.example.com
  12. s=
  13. c=IN IP4 bob-pc.example.com
  14. t=0 0
  15. m=audio 49172 RTP/AVP 0
  16. a=rtpmap:0 PCMU/8000
  17. m=video 49174 RTP/AVP 96
  18. a=rtpmap:96 H264/90000)
复制代码


  • m=audio 49172 RTP/AVP 0: 表示Bob的音频流使用端口49172,使用RTP协议,音频编码为PCMU。
  • m=video 49174 RTP/AVP 96: 表示Bob的视频流使用端口49174,使用RTP协议,视频编码为H264。
6. Alice确认会话

收到Bob的200 OK相应后,Alice发送ACK请求以确认会话。
  1. ACK sip:bob@bob-pc.example.com SIP/2.0
  2. Via: SIP/2.0/UDP alice-pc.example.com;branch=z9hG4bK74bf9
  3. To: <sip:bob@example.com>;tag=456789
  4. From: <sip:alice@example.com>;tag=1928301774
  5. Call-ID: a84b4c76e66710
  6. CSeq: 3 ACK
  7. Content-Length: 0
复制代码


  • ACK: SIP方法,用于确认INVITE请求的最终相应。
  • CSeq: 序列号增加,表示新的请求。
7. 媒体传播输

在Alice发送ACK后,Alice和Bob之间的媒体流开始传输。音频和视频数据通过RTP协议在Alice和Bob之间直接传输,而不通过SIP服务器。
8. 竣事会话

假设Alice想要竣事通话,她会发送BYE请求。
  1. BYE sip:bob@bob-pc.example.com SIP/2.0
  2. Via: SIP/2.0/UDP alice-pc.example.com;branch=z9hG4bK74bf9
  3. To: <sip:bob@example.com>;tag=456789
  4. From: <sip:alice@example.com>;tag=1928301774
  5. Call-ID: a84b4c76e66710
  6. CSeq: 4 BYE
  7. Content-Length: 0
复制代码


  • BYE: SIP方法,用于制止一个已经建立的会话。
9. Bob确认竣事会话

Bob收到BYE请求后,发送200 OK相应以确认会话竣事。
  1. SIP/2.0 200 OK
  2. Via: SIP/2.0/UDP alice-pc.example.com;branch=z9hG4bK74bf9
  3. To: <sip:bob@example.com>;tag=456789
  4. From: <sip:alice@example.com>;tag=1928301774
  5. Call-ID: a84b4c76e66710
  6. CSeq: 4 BYE
  7. Content-Length: 0
复制代码
六、SIP协议应用场景


  • VoIP电话:SIP协议广泛应用于VoIP电话系统,实现语音通话、视频通话等功能。
  • 即时通讯:SIP协议可用于即时通讯软件,实现笔墨聊天、语音聊天、视频聊天等功能。
  • 视频会议:SIP协议支持多方视频会议,进步企业沟通效率。
  • IoT设备:SIP协议可用于物联网设备之间的通讯,实现远程监控、控制等功能。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

立聪堂德州十三局店

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表