使用Scapy解码UDP上的RTP

时间:2017-06-23 14:42:40

标签: scapy rtp

如何使用Scapy 2.3.2解码(和操作)RTP over UDP?

我有一个名为rtp.pcap的捕获文件,其中包含一个到224.0.1.11:5016的RTP音频流。当您启用RTP over UDP协议时,Wireshark会正确解码流(默认关闭)。但是,我想做自动数据包操作,所以我想用Scapy解码它。

目前,Scapy不识别RTP,尽管存在RTP层:

>>> from scapy.all import RTP # shows that RTP layer is installed in my version
>>> pkts = sniff(offline="rtp.pcap", filter="udp dst port 5016")
>>> pkts[0].show()
[...]
###[ UDP ]###
    sport= 5004
    dport= 5016
    len= 196 <-- thats an audio pkt
[...]
###[ Raw ]###
       load= ...
[...]

1 个答案:

答案 0 :(得分:1)

以下代码强制将UDP Payload解释为RTP:

<?xml version="1.0" encoding="UTF-8"?>
<ContentView xmlns="http://xamarin.com/schemas/2014/forms" 
         xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
         xmlns:enums="clr-namespace:Test.Mobile.Models.Enums;assembly=Test.Mobile.Models"
         x:Class="Test.Mobile.UI.JobItemView">
    <ContentView.Content>
       <Label Text={Binding Title}/>
    </ContentView.Content>
</ContentView>