Sip G729附件中的歧义

Sip G729附件中的歧义,sip,voip,sdp,Sip,Voip,Sdp,在SIP SDP中: 如何通过读取SDP媒体属性来检测G729A编解码器? 例如,SDP下面说这是一个G729B编解码器 m = audio 33712 RTP/AVP 18 101 a = rtpmap:18 G729/8000 a = fmtp:18 annexb=yes a = rtpmap:101 telephone-event/8000 a = fmtp:101 0-15 如果我得到“annexb=no”,这是否意味着G729a??或者当我得到“annexa=yes”时,只有它G72

在SIP SDP中:

如何通过读取SDP媒体属性来检测G729A编解码器? 例如,SDP下面说这是一个G729B编解码器

m = audio 33712 RTP/AVP 18 101
a = rtpmap:18 G729/8000
a = fmtp:18 annexb=yes
a = rtpmap:101 telephone-event/8000
a = fmtp:101 0-15
如果我得到“annexb=no”,这是否意味着G729a??或者当我得到“annexa=yes”时,只有它G729a。根据G729编解码器有各种附件,如A、B、C、D、E、F等。。。如果我想检测它们中的每一个,我可以依赖字符串“附件”,例如我想检测G729F,我可以依赖属性字符串“annexf=yes”?

来自第2.1.9节

    annexb: indicates that Annex B, voice activity detection, is
    used or preferred.  Permissible values are "yes" and "no"
    (without the quotes); "yes" is implied if this parameter is
    omitted.
更多详情见第4.5.6节(G.729、G.729a和G.729b)和第4.5.7节(G.729d和G.729e)

一般来说,G.729/G.729a/G.729b具有相同的格式(G.729b添加了额外的带有confort噪声的帧)

G.729附件C:

本附录描述了ITU-T G.729和附录a完整版本的浮点算法替代实现

G.729d和G.279e定义了不同的帧格式(并且在SDP媒体行中标识不同)

G.729附件F:

本附录对整合附录B和D进行了说明,从而定义了DTX 附件D的功能

G.729附件G:

本附录对整合附录B和E进行了说明,从而定义了DTX 附件E的功能

因此G.729f和G.729g没有引入新的格式,而是使用G.729d和G.279e中的帧格式:(在RF3551上:)

语音活动检测器(VAD)和舒适性噪声发生器(CNG) G.729附录B中规定的算法可与附录D和 除G.729和G.729附录A框架外,附录E框架。这个 附录D和附录E的运算算法细节 B CNG在G.729附录F和G中有规定。注意,附录F 和G不引入任何新的编码。接收者必须接受 舒适噪音框架(如果未限制其使用) 示意。RFC3555中G729D和G729E的MIME注册[7] 指定可与MIME或SDP一起使用的参数,以限制 舒适性噪音框架的使用

上述参数为附录B=是|否


就SDP有效载荷中的表示而言

  • G729、G729a(和G729c):
    • m中的数字=行:18
    • a=rtpmap:18 G729/8000
    • a=fmtp:18附录B=否(或不存在)
  • G729b
    • m中的数字=行:18
    • a=rtpmap:18 G729/8000
    • a=fmtp:18附录B=是
  • G729d
    • m中的数字=行:n(动态)
    • a=rtpmap:n G729D/8000
    • a=fmtp:n附录B=no(或不存在)
  • G729e
    • m中的数字=行:n(动态)
    • a=rtpmap:n G729E/8000
    • a=fmtp:n附录B=no(或不存在)
  • G729f
    • m中的数字=行:n(动态)
    • a=rtpmap:n G729D/8000
    • a=fmtp:n附录B=yes
  • G729g
    • m中的数字=行:n(动态)
    • a=rtpmap:n G729E/8000
    • a=fmtp:n附录B=yes

  • 回答JohnG先生,如果这个或任何答案解决了你的问题,请点击复选标记来考虑。这向更广泛的社区表明,你已经找到了一个解决方案,并给回答者和你自己带来了一些声誉。杰桑坦德先生没有义务这样做。你的意思是,当我们进入SDP时,“annexa=no”或“annexb=yes”意味着它的G729B,当我们进入“annexb=no”或“annexa=yes”意味着它的G729A。所有其他附件(C、D、E、F、G、H、I、C+、J)都可以从SIP SDP其他属性中检测到。@JohnG实际上不是。没有附件A参数。存在附录B=是参数表示对舒适性噪声发生器的支持。这既区分了附录A/附录B,也区分了附录D/附录F和附录E/附录G。附录a/B是RTP代码18(固定),而附录D/附录F、附录E/附录G是动态分配的RTP,并用参数a=rtpmap nn G729D/8000或a=rtpmap nn G729E/8000表示(我相信),其中nn是动态分配的RTP。@JohnG check RFC 4856,G723有一个附录a参数,表示语音活动检测支持。@。。。。它是与G729附录a:D不同的附录a