首页 文章

在SIP / SDP之后找到RTP / RTCP

提问于
浏览
0

我正在开发一个数据包捕获程序来分析RTP / RTCP流量 . 流量在移动网络中,例如VoLTE . 据我所知,我需要首先搜索SIP / SDP数据包,以获取RTP / RTCP中使用的实际地址和端口号 . 问题是我应该研究哪些信息 . 例如:

  • 源/目的地和SIP数据包中的其他信息 . 由于使用SIP代理,SIP报文的地址和SIP报头中的信息如:"Via","To"和"From"等,与RTP地址无关,对吧? (P.S.,这些领域的真正目的是什么?)

  • 在SDP中,o = line和c = line之间有什么区别? RTP会使用其中之一吗?

  • 我必须找到调用者和被调用者SDP中支持的通用编解码器和有效负载类型来确定RTCP端口 . 如果它们支持多种媒体类型的编解码器,那么两端是否可以使用不同的编解码器?

  • 如果涉及STUN,TURN或ICE,我还应该研究什么?

有很多协议,很难掌握它们以获得所需的特定信息 . 谢谢 .

1 回答

  • 2

    SIP数据包中的源/目的地和其他信息 . 由于使用SIP代理,SIP报文的地址和SIP报头中的信息如:“Via”,“To”和“From”等,与RTP地址无关,对吗? (P.S.,这些领域的真正目的是什么?)

    这些信息与您的RTP / RTCP信息无关,这些信息仅与SIP代理和与SIP会话相关的信息相关的双方有关 .

    SDP中o = line和c = line之间有什么区别? RTP会使用其中之一吗?

    O line也是您不需要知道的,它关于发起者客户信息或标识符 . C = line保存会话的默认地址,如果您有多个媒体(如RTP和RTCP),则可以是会话级属性或媒体级属性 . 如果它在SDP中的会话级属性,那么它将出现在m = line之前 . 如果会话是非ICE会话,则此地址将用于您的媒体 .

    我必须找到调用者和被调用者SDP支持的通用编解码器和有效负载类型,以确定RTCP端口 . 如果它们支持多种媒体类型的编解码器,那么两端是否可以使用不同的编解码器?

    您将在m = line中找到与编解码器相关的信息,该信息将保存该媒体的媒体名称,传输类型和默认端口,在非ICE媒体的情况下,此端口将用于该相应媒体 . m =也将保存编解码器相关信息,这些是空格分隔值 . 除非您选择的编解码器与另一个最不可能的编解码器互操作,否则您不能使用不同的编解码器 .

    如果涉及STUN,TURN或ICE,我还应该研究什么?

    你会发现这些信息为a = line,所有a = line出现在m = line之后,直到另一个m = SDP结尾的行是相应的媒体属性,让我们为候选人说你会看到像a =候选行一样的ICE候选人,你也可以看到a = ice-pwd,a = ice-ufrag等 . 假设你有音频m =带有RTP和RTCP组件的行,那么你也可以看到一个= rtcp行,其端口值是RTCP默认值端口,在这种情况下,端口出现在m = line是RTP默认端口 . 有关SDP的更多详细信息,请查看SDP RFC . 您也可以检查ICE RFC以获取与ICE相关的属性详细信息 .

相关问题