Sip 将SDP媒体类型应用程序与RTP/AVP一起使用(m=应用程序<;端口>;RTP/AVP<;有效负载>;)

Sip 将SDP媒体类型应用程序与RTP/AVP一起使用(m=应用程序<;端口>;RTP/AVP<;有效负载>;),sip,freeswitch,sdp,Sip,Freeswitch,Sdp,我试图熟悉SIP SDP的解剖结构。这是我的坦堡VC单元的SDP示例 v=0 o=tandberg 1 3 IN IP4 192.168.1.94 s=- c=IN IP4 192.168.1.94 b=AS:768 t=0 0 m=audio 47032 RTP/AVP 97 98 99 100 101 9 15 8 0 102 b=TIAS:64000 a=rtpmap:97 MP4A-LATM/90000 a=fmtp:97 profile-level-id=24;object=23;bi

我试图熟悉SIP SDP的解剖结构。这是我的坦堡VC单元的SDP示例

v=0
o=tandberg 1 3 IN IP4 192.168.1.94
s=-
c=IN IP4 192.168.1.94
b=AS:768
t=0 0
m=audio 47032 RTP/AVP 97 98 99 100 101 9 15 8 0 102
b=TIAS:64000
a=rtpmap:97 MP4A-LATM/90000
a=fmtp:97 profile-level-id=24;object=23;bitrate=64000
a=rtpmap:98 MP4A-LATM/90000
a=fmtp:98 profile-level-id=24;object=23;bitrate=56000
a=rtpmap:99 MP4A-LATM/90000
a=fmtp:99 profile-level-id=24;object=23;bitrate=48000
a=rtpmap:100 G7221/16000
a=fmtp:100 bitrate=32000
a=rtpmap:101 G7221/16000
a=fmtp:101 bitrate=24000
a=rtpmap:9 G722/8000
a=rtpmap:15 G728/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:0 PCMU/8000
a=rtpmap:102 telephone-event/8000
a=fmtp:102 0-15
m=video 47034 RTP/AVP 122 121 120 34 31
b=TIAS:768000
a=rtpmap:122 H264-RCDO/90000
a=fmtp:122 profile-level-id=008016;max-mbps=42000;max-fs=3600;max-smbps=323500
a=rtpmap:121 H264/90000
a=fmtp:121 profile-level-id=428016;max-mbps=35000;max-fs=3600;max-smbps=323500
a=rtpmap:120 H263-1998/90000
"a=fmtp:120 custom=1280,720,3;custom=1024,768,4;custom=1024,576,2;custom=800,600,3;cif4=2;custom=720,480,2;custom=640,480,2;
custom=512,288,1;cif=1;custom=352,240,1;qcif=1;sqcif=1;maxbr=7680"
a=rtpmap:34 H263/90000
a=fmtp:34 cif4=2;cif=1;qcif=1;sqcif=1;maxbr=7680
a=rtpmap:31 H261/90000
a=fmtp:31 cif=1;qcif=1;maxbr=7680
a=rtcp-fb:* nack pli
a=content:main
a=label:11
a=answer:full
m=application 5071 UDP/BFCP *
a=floorctrl:c-s
a=confid:1
a=floorid:2 mstrm:12
a=userid:1
a=setup:passive
a=connection:new
m=video 47036 RTP/AVP 120 34 31
b=TIAS:768000
a=rtpmap:120 H263-1998/90000
"a=fmtp:120 custom=1280,720,3;custom=1024,768,4;custom=1024,576,2;custom=800,600,3;cif4=2;custom=720,480,2;custom=640,480,2;custom=512,
288,1;cif=1;custom=352,240,1;qcif=1;sqcif=1;maxbr=7680"
a=rtpmap:34 H263/90000
a=fmtp:34 cif4=2;cif=1;qcif=1;sqcif=1;maxbr=7680
a=rtpmap:31 H261/90000
a=fmtp:31 cif=1;qcif=1;maxbr=7680
a=rtcp-fb:* nack pli
a=content:slides
a=label:12
m=application 47038 RTP/AVP 103
a=rtpmap:103 H224/4800
所以我的理解是RTP/AVP协议只能用于媒体类型的音频或视频。考虑到这一点,我不理解最后两行:

m=application 47038 RTP/AVP 103
a=rtpmap:103 H224/4800

有什么想法吗?

您可以使用SDP在两个对等方之间协商会话。一个会话可以由多个媒体线路组成。如果我们想在内部使用音频和视频(=视频通话),我们需要两条媒体线路。基于媒体线路,描述为:

m=媒体端口协议fmt

媒体可以是:

是媒体类型。当前定义的媒体为“音频”, “视频”、“文本”、“应用程序”和“消息”

所以在我们的例子中,我们需要两条媒体线路,一条用于音频,一条用于视频。每个媒体线路都描述了传输协议端口(例如,用于音频的UDP),其中应接收音频

因此,在您的示例中,SDP消息的发送方希望在端口47038上接收数据包。此外,我们使用RTP传输信息。AVP代表音频视频配置文件(请参阅)。在RTP中,我们有一系列预定义的编解码器编号,例如编号0代表PCM U-law。在您的例子中,您正在使用一些动态范围->其想法是我应该能够在RTP中扩展编解码器映射。因此,RTP定义了一个动态编解码器编号范围(=96-127)。 我们使用的是动态编解码器,必须对该编解码器进行更详细的描述。这是媒体行下方的
a=
-行(属性行)的工作

RFC 4566:

属性是扩展SDP的主要手段。属性可能 被定义为“会话级别”属性,“媒体级别” 属性,或两者兼而有之

媒体描述可以有任意数量的属性(“A=”字段) 这是媒体特有的。这些被称为“媒体级” 属性并添加有关媒体流的信息。属性 也可以在第一个媒体字段之前添加字段;这些 “会话级别”属性传递适用的附加信息 对整个会议而言,而不是对个别媒体而言

因此,您
a=
-行描述了上述媒体行使用H224编解码器进行RTP,其中RTP中的有效负载类型编号设置为103。我猜
4800
代表编解码器的采样率

希望有帮助

所以我的理解是RTP/AVP协议只能用于媒体类型的音频或视频

没有这样的限制

是媒体类型。当前定义的媒体为“音频”, “视频”、“文本”、“应用程序”和“消息”,尽管此列表 将来可能会延长(见第8节)

特定于应用程序的消息也可以通过RTP发送,在您的例子中是

m=应用程序47038 RTP/AVP 103

a=rtpmap:103 H224/4800

行是指用于远程摄像机控制的有效负载格式