我正在编写一个数据包捕获程序来分析RTP/RTCP流量。流量在移动网络中,例如VoLTE。我知道我需要首先在SIP/SDP数据包中搜索以获得RTP/RTCP中使用的实际地址和端口号。问题是我应该调查哪些信息。例如:
有这么多的协议,很难掌握它们,以获得一个特定的信息所需。谢谢。
发布于 2015-12-12 16:52:37
SIP数据包中的源/目的地和其他信息。由于使用了SIP代理,SIP头中的SIP数据包和信息的地址(如"Via“、" to”和"From“等)与RTP地址无关,对吗?(P.S.,这些领域的真正目的是什么?)
RIght,这些信息与您的RTP/RTCP信息无关,这些只是关于SIP代理的信息和与SIP会话相关的两个方面的信息。
o=线和c=线在SDP中有什么区别?RTP会使用其中之一吗?
O行也是您不需要知道的东西,它是关于发起人客户信息或标识符的。C=行保存会话的默认地址,如果您有多个媒体(如RTP和RTCP ),则可以是会话级别属性或媒体级别属性。如果它的会话级别属性在SDP中,那么它将出现在m=行前面。如果会话是非ICE会话,则此地址将用于媒体。
我必须找到调用方和被调用方的SDP中支持的通用编解码器和有效负载类型,以确定RTCP端口。如果一个媒体类型支持多个编解码器,那么两端是否可以使用不同的编解码器?
您将在m=行中找到与编解码器相关的信息,它将保存该媒体的媒体名称、传输类型和默认端口,如果使用非ICE媒体,则该端口将用于相应的媒体。m=将保存编解码器相关的信息,这些都是空间分隔的值。您不能使用不同的编解码器,除非您选择的编解码器与其他编解码器是可互操作的,这是最不可能的。
如果有眩晕,转弯或冰,我还应该调查什么?
您会发现这些信息都是a=行,所有的a=行都会出现在m=行之后,直到m=的另一条m=行是相应的媒体属性,假设对于候选人来说,您将看到类似于a=candidate行的东西作为ICE候选,您还可以看到a=ice-pwd,a=ice-ufrag等。如果您有带有RTP和RTCP组件的音频m=行,那么您也可以看到端口值为RTP默认端口的a=rtcp行,在这种情况下,端口出现在RTP默认端口中。有关SDP的更多细节,您可以查看SDP RFC。此外,您还可以检查冰RFC的相关属性详细信息。
https://stackoverflow.com/questions/34242138
复制相似问题