【音视频】SIP(推流中涉及SIP信息分析)

概述

RFC3261 中文翻译 中文RFC RFC文档 RFC翻译 RFC中文版

本文仅仅是对sip的基本了解,主要是实现sip的基本交互,详细参考上述文档

INVITE请求处理事例

GB28181平台向目标设备发送获取视频的请求(INVITE)

INVITE sip:34020000001320000001@221.230.1.1:15060 SIP/2.0
Via: SIP/2.0/UDP 121.229.21.99:15060;rport;branch=z9hG4bK881052973
From: <sip:34020000002000000001@3402000000>;tag=410052973
To: <sip:34020000001320000001@231.230.1.1:15060>
Call-ID: 184052872
CSeq: 8549084 INVITE
Content-Type: APPLICATION/SDP
Contact: <sip:34020000002000000001@121.229.21.99:15060>
Max-Forwards: 70
User-Agent: LiveGBS v240830
Subject: 34020000001320000001:0200000001,34020000002000000001:0
Content-Length: 222

参数分析

  • INVITE sip:34020000001320000001@231.230.1.1:15060 SIP/2.0
    • INVITE:SIP 请求方法,用于发起会话或通话
    • sip: 目标sip标识符@目标服务器IP地址:目标服务器的监听端口号
  • Via: SIP/2.0/UDP 121.229.21.99:15060;rport;branch=z9hG4bK881052973
    • via:经过的代理,主要是用于追踪路由,对于整体逻辑不影响
  • From: <sip:34020000002000000001@3402000000>;tag=410052973
    • 请求发起方:告知接受者谁发起的请求
    • tag:发起方的标识符,主要用于区分同一个设备的多个会话
  • To: <sip:34020000001320000001@231.230.1.1:15060>
    • 请求到达的目标地址:也就接收地址
  • Call-ID: 184052872
    • 用于表示一个会话 :同一个会话,所有的请求和响应都会使用相同的Call-ID,从而确保它们可以被正确的关联
  • CSeq: 8549084 INVITE
    • 请求序列号+方法:主要就是用来区分同一个会话中的多个请求
  • Content-Type: APPLICATION/SDP
    • 请求体的媒体类型:该处表示请求体内容是一个SDP消息
  • Contact: <sip:34020000002000000001@121.229.21.99:15060>
    • 发起请求的设备IP地址:注意后续也就是通过这个地址来回复请求或者进行后面的通信

SDP信息

v=0
o=34020000001320000001 0 0 IN IP4 121.229.21.99
s=Play
c=IN IP4 121.229.21.99
t=0 0
m=video 30196 RTP/AVP 96 97 98
a=recvonly
a=rtpmap:96 PS/90000
a=rtpmap:97 MPEG4/90000
a=rtpmap:98 H264/90000
y=0200000001
  • v=0
    • 版本号,SDP协议
  • o=34020000001320000001 0 0 IN IP4 121.229.21.99
    • o:会话创建者的会话标识符,也就是创建会话的设备
    • IN:表示会话地址类型和使用的IP地址
  • s=Play
    • 会话名称:此处是播放会话
  • c=IN IP4 121.229.21.99
    • 连接信息:此处是连接sip服务端的地址信息
  • t=0 0
    • 会话时间范围:开始时间到结束时间,此处表示的是一个实时流媒体
  • m=video 30196 RTP/AVP 96 97 98
    • m:媒体描述,这里表示有一个视频流
    • 端口号+支持的协议类型
      • 96 PS
      • 97 MPEG4
      • 98 H264
  • a=recvonly
    • 会话属性:这里表示只接收数据
  • a=rtpmap:96 PS/90000
    • 媒体流的编码格式:96表示ps(播放顺序),90000则是媒体流的时钟频率
  • a=rtpmap:97 MPEG4/90000
    • 同上
  • a=rtpmap:98 H264/90000
    • 同上
  • y=0200000001
    • 某种设备或者会话标识符
       

补充

INVITE请求中 from地址和Contact地址不同的原因

  • From地址是逻辑上的标识符,用于标识发起者(用于标识谁发起了请求)
    • 此处的From地址是静态的,根据平台的设定条件,一般是跟注册的时候使用的ID相同
  • Contact
    • 后面两者沟通使用的地址:用于指定发起者的实际联系地址,告诉接收者如何直接联系发起者。这是一个动态地址,可能包括实际的 IP 和端口

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值