All Projects → hdiniz → Rtpdump

hdiniz / Rtpdump

Licence: mit
Extract audio file from RTP streams in pcap format

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to Rtpdump

Libstreaming
A solution for streaming H.264, H.263, AMR, AAC using RTP on Android
Stars: ✭ 3,167 (+5764.81%)
Mutual labels:  rtp, amr
sip3-captain-ce
SIP3 Captain (Community Edition)
Stars: ✭ 73 (+35.19%)
Mutual labels:  pcap, rtp
Pcap Analyzer
Python编写的可视化的离线数据包分析器
Stars: ✭ 694 (+1185.19%)
Mutual labels:  pcap
Hcxdumptool
Small tool to capture packets from wlan devices.
Stars: ✭ 945 (+1650%)
Mutual labels:  pcap
Webrtc
A pure Rust implementation of WebRTC API
Stars: ✭ 922 (+1607.41%)
Mutual labels:  rtp
Scapy
Scapy: the Python-based interactive packet manipulation program & library. Supports Python 2 & Python 3.
Stars: ✭ 6,932 (+12737.04%)
Mutual labels:  pcap
Node pcap
libpcap bindings for node
Stars: ✭ 849 (+1472.22%)
Mutual labels:  pcap
Moose
Multiphysics Object Oriented Simulation Environment
Stars: ✭ 652 (+1107.41%)
Mutual labels:  amr
Malcom
Malcom - Malware Communications Analyzer
Stars: ✭ 988 (+1729.63%)
Mutual labels:  pcap
Tapirx
Free and open-source medical device discovery and identification
Stars: ✭ 19 (-64.81%)
Mutual labels:  pcap
Crafter
🔬 An R package to work with PCAPs
Stars: ✭ 27 (-50%)
Mutual labels:  pcap
Rtsp Simple Server
ready-to-use RTSP / RTMP server and proxy that allows to read, publish and proxy video and audio streams
Stars: ✭ 882 (+1533.33%)
Mutual labels:  rtp
Libsrtp
Library for SRTP (Secure Realtime Transport Protocol)
Stars: ✭ 768 (+1322.22%)
Mutual labels:  rtp
Homer
HOMER - 100% Open-Source SIP / VoIP Packet Capture & Monitoring
Stars: ✭ 855 (+1483.33%)
Mutual labels:  pcap
Tcpreplay
Pcap editing and replay tools for *NIX and Windows - Users please download source from
Stars: ✭ 745 (+1279.63%)
Mutual labels:  pcap
Mts
Project of Multi-protocol Test Tool opensourced by Ericsson
Stars: ✭ 34 (-37.04%)
Mutual labels:  rtp
Mfem
Lightweight, general, scalable C++ library for finite element methods
Stars: ✭ 667 (+1135.19%)
Mutual labels:  amr
Kamene
Network packet and pcap file crafting/sniffing/manipulation/visualization security tool. Originally forked from scapy in 2015 and providing python3 compatibility since then.
Stars: ✭ 827 (+1431.48%)
Mutual labels:  pcap
Webrtc
Pure Go implementation of the WebRTC API
Stars: ✭ 8,399 (+15453.7%)
Mutual labels:  rtp
Homer7 Docker
HOMER 7 Docker Images
Stars: ✭ 47 (-12.96%)
Mutual labels:  rtp

rtpdump

Extract media files from RTP streams in pcap format

codec support

This program is intended to support usual audio/video codecs used on IMS networks (VoLTE/VoWiFi).
Therefore, some codecs might be limited to usual scenarios on these networks.

  • AMR - RFC 4867
    Supports bandwidth-efficient and octet-aligned modes.
    Single-channel, single-frame per packet only.
  • H264 - RFC 6184
    Supports Single NAL Mode and some Non-Interleaved Mode streams, due to current lack of STAP-A support
Payload Type Support
1-23 NAL Unit Yes
24 STAP-A No - planned
25 STAP-B No
26 MTAP16 No
27 MTAP24 Yes
28 FU-A Yes
29 FU-B No

ipsec support

In order to support dumping VoWiFi media some support for ESP (Encapsulating Security Payload) decryption is present.

Encryption Algorithm Support
3DES CBC Yes
DES CBC No - Planned
AES CBC No - Planned

Keys are read from file 'esp-keys.txt' on the current directory by default. One key per file, for example:

[SPI] [Encryption Algorithm] [Key]
0x00d40016 des3_cbc 0x091199869ec18afd8e38f77eb1252685924937d3921a178e
0xcb97da43 des3_cbc 0xaaa316cd3fa41daa9afe6e8f42a9ae0ce2bd5128cef5a60f

Global flag -k can be used to indicate another key file path. Check -help.

replaying

Its possible to replay a RTP stream, specifying the destination host and port. The stream consumer can be a actual mobile handset or any application that can interpret RTP streams (e.g VLC).

The stream is replayed as is, taking into account the original timestamps in the pcap file and mantaining the original RTP payload type. It's up to the receiver to interpret the appropriate stream codec.

For example, VLC accepts a SDP input file:

v=0
c=IN IP4 127.0.0.1
m=audio 1234 RTP/AVP 99
a=rtpmap:99 AMR/8000

rtpdump play --host localhost --port 1234 [pcap containing amr-nb payload type 99]

usage

  • rtpdump streams [pcap]
    displays RTP streams
  • rtpdump dump [pcap] dumps a media stream.
  • rtpdump play (--host localhost --port port) [pcap] replays a RTP stream over UDP.

compiling

Checkout gopacket. Linux should be straightforward.
For Windows, make sure mingw(32/64) toolchain is on PATH for gopacket WinPcap dependency. Install WinPcap on standard location C:\WpdPack

planned features

  1. Better automation and scription support
  2. Include stream analisys, packets lost, jitter, etc
  3. Media player directly from pcap. ffmpeg support.
  4. Jitter buffer to simulate original condition, i.e. packet loss due to jitter
  5. Support multiple speach frames in audio packet

contributions

Are always appreciated.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].