在 SIP/SDP 之后查找 RTP/RTCP
Find RTP/RTCP after SIP/SDP
我正在开发一个数据包捕获程序来分析 RTP/RTCP 流量。
流量在移动网络中,例如 VoLTE。我知道我需要先在 SIP/SDP 数据包中搜索以获取 RTP/RTCP 中使用的实际地址和端口号。问题是我应该查看哪些信息。例如:
- Source/Destination等SIP包中的信息。自从
使用SIP代理,SIP包的地址和信息在
SIP header like: "Via", "To" and "From", 等等,没有关系
使用 RTP 地址,对吗? (P.S., 的真正目的是什么
这些字段?)
- SDP中的o=line和c=line有什么区别? RTP 会使用其中之一吗?
- 我必须找到调用者和被调用者的 SDP 中支持的通用编解码器和有效负载类型以确定 RTCP 端口。如果他们支持一种媒体类型的多个编解码器,两端是否可以使用不同的编解码器?
- 如果涉及 STUN、TURN 或 ICE,我还应该检查什么?
协议太多,很难掌握所有协议以获得所需的特定信息。谢谢
Source/Destination and other information in the SIP packets. Since SIP
proxy is used, the address of the SIP packet and information in SIP
header like: "Via", "To" and "From", etc., have nothing to do with the
RTP addresses, right? (P.S., what is the really purpose of these
fields?)
对了,这些信息与你的RTP/RTCP信息无关,这些只是关于SIP代理的信息和与SIP会话相关的信息。
What is the difference between o= line and c= line in SDP? Will the
RTP uses one of them?
O线也是你不需要知道的,它是关于发起者客户信息或标识符的。 C= 行包含会话的默认地址,如果您有多种媒体(如 RTP 和 RTCP),这可以是会话级别属性或媒体级别属性。如果它在 SDP 中的会话级属性那么它将出现在 m= 行之前。如果会话是非 ICE 会话,则此地址将用于您的媒体。
I have to find the common codecs and payload types supported in caller
and callee's SDP to determine RTCP ports. If they support more than
one codec for a media type, is it possible for the two ends to use
different codec?
您将在 m= 行中找到与编解码器相关的信息,其中包含该媒体的媒体名称、传输类型和默认端口,如果是非 ICE 媒体,则该端口将用于相应的媒体。 m= 也将保存编解码器相关信息,这些是 space 分隔值。您不能使用不同的编解码器,除非您选择的编解码器可以与另一个最不可能的编解码器互操作。
If there are STUN, TURN or ICE involved, what else should I look into?
你会发现这些信息为 a= 行,所有 a= 行都出现在 m= 行之后,直到 SDP 末尾的另一 m= 行是相应的媒体属性,假设对于候选人你会看到类似 a =candidate 行作为 ICE 候选人,您可能还会看到 a=ice-pwd、a=ice-ufrag 等。假设您有音频 m= 带有 RTP 和 RTCP 组件的行,那么您可能还会看到带有端口的 a=rtcp 行值是 RTCP 默认端口,在这种情况下,出现在 m= 行中的端口是 RTP 默认端口。有关 SDP 的更多详细信息,您可以查看 SDP RFC. Also you can check ICE RFC 以获取与 ICE 相关的属性详细信息。
我正在开发一个数据包捕获程序来分析 RTP/RTCP 流量。 流量在移动网络中,例如 VoLTE。我知道我需要先在 SIP/SDP 数据包中搜索以获取 RTP/RTCP 中使用的实际地址和端口号。问题是我应该查看哪些信息。例如:
- Source/Destination等SIP包中的信息。自从 使用SIP代理,SIP包的地址和信息在 SIP header like: "Via", "To" and "From", 等等,没有关系 使用 RTP 地址,对吗? (P.S., 的真正目的是什么 这些字段?)
- SDP中的o=line和c=line有什么区别? RTP 会使用其中之一吗?
- 我必须找到调用者和被调用者的 SDP 中支持的通用编解码器和有效负载类型以确定 RTCP 端口。如果他们支持一种媒体类型的多个编解码器,两端是否可以使用不同的编解码器?
- 如果涉及 STUN、TURN 或 ICE,我还应该检查什么?
协议太多,很难掌握所有协议以获得所需的特定信息。谢谢
Source/Destination and other information in the SIP packets. Since SIP proxy is used, the address of the SIP packet and information in SIP header like: "Via", "To" and "From", etc., have nothing to do with the RTP addresses, right? (P.S., what is the really purpose of these fields?)
对了,这些信息与你的RTP/RTCP信息无关,这些只是关于SIP代理的信息和与SIP会话相关的信息。
What is the difference between o= line and c= line in SDP? Will the RTP uses one of them?
O线也是你不需要知道的,它是关于发起者客户信息或标识符的。 C= 行包含会话的默认地址,如果您有多种媒体(如 RTP 和 RTCP),这可以是会话级别属性或媒体级别属性。如果它在 SDP 中的会话级属性那么它将出现在 m= 行之前。如果会话是非 ICE 会话,则此地址将用于您的媒体。
I have to find the common codecs and payload types supported in caller and callee's SDP to determine RTCP ports. If they support more than one codec for a media type, is it possible for the two ends to use different codec?
您将在 m= 行中找到与编解码器相关的信息,其中包含该媒体的媒体名称、传输类型和默认端口,如果是非 ICE 媒体,则该端口将用于相应的媒体。 m= 也将保存编解码器相关信息,这些是 space 分隔值。您不能使用不同的编解码器,除非您选择的编解码器可以与另一个最不可能的编解码器互操作。
If there are STUN, TURN or ICE involved, what else should I look into?
你会发现这些信息为 a= 行,所有 a= 行都出现在 m= 行之后,直到 SDP 末尾的另一 m= 行是相应的媒体属性,假设对于候选人你会看到类似 a =candidate 行作为 ICE 候选人,您可能还会看到 a=ice-pwd、a=ice-ufrag 等。假设您有音频 m= 带有 RTP 和 RTCP 组件的行,那么您可能还会看到带有端口的 a=rtcp 行值是 RTCP 默认端口,在这种情况下,出现在 m= 行中的端口是 RTP 默认端口。有关 SDP 的更多详细信息,您可以查看 SDP RFC. Also you can check ICE RFC 以获取与 ICE 相关的属性详细信息。