FreeCalypso > hg > rtp-debug-utils
annotate doc/RTP-analysis @ 17:ab18adf989e3 default tip
pcm-study: new program pcm16-frag-extr
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Tue, 29 Oct 2024 00:32:33 +0000 |
parents | 5216e7fb1c9e |
children |
rev | line source |
---|---|
0
05ff0f7ac977
initial commit: split from gsm-codec-lib
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1 The present package includes a number of utilities for analyzing RTP streams |
05ff0f7ac977
initial commit: split from gsm-codec-lib
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2 that have been captured with tcpdump or equivalent tools in pcap format. In |
05ff0f7ac977
initial commit: split from gsm-codec-lib
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
3 order to use any of these utilities, you need to have a pcap file (obviously), |
05ff0f7ac977
initial commit: split from gsm-codec-lib
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
4 and you need to identify the RTP stream to be analyzed or extracted by either |
05ff0f7ac977
initial commit: split from gsm-codec-lib
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
5 source or destination IP:port. All tools begin by applying a filter, |
05ff0f7ac977
initial commit: split from gsm-codec-lib
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
6 considering only those packets that are UDP in IPv4 (no IPv6 support currently), |
05ff0f7ac977
initial commit: split from gsm-codec-lib
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
7 and only those that match the specified source or destination IP:port. Every |
05ff0f7ac977
initial commit: split from gsm-codec-lib
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
8 matched packet is checked for a valid RTP header, and then the actual RTP stream |
05ff0f7ac977
initial commit: split from gsm-codec-lib
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
9 analysis or extraction takes place, depending on the specific tool: |
05ff0f7ac977
initial commit: split from gsm-codec-lib
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
10 |
05ff0f7ac977
initial commit: split from gsm-codec-lib
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
11 rtp-cont-check This program checks the selected RTP stream for continuity. It |
05ff0f7ac977
initial commit: split from gsm-codec-lib
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
12 verifies that every matched packet has the same SSRC, that the |
05ff0f7ac977
initial commit: split from gsm-codec-lib
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
13 sequence number always increments by 1 from each individual |
05ff0f7ac977
initial commit: split from gsm-codec-lib
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
14 packet to the next, and that the RTP header timestamp always |
05ff0f7ac977
initial commit: split from gsm-codec-lib
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
15 increments by 160 units. (The assumption is that the |
05ff0f7ac977
initial commit: split from gsm-codec-lib
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
16 application at hand is in the traditional telephony domain, |
05ff0f7ac977
initial commit: split from gsm-codec-lib
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
17 with a sampling rate of 8000 samples/s and 20 ms packetization |
05ff0f7ac977
initial commit: split from gsm-codec-lib
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
18 for RTP.) This tool also looks at the capture time deltas |
05ff0f7ac977
initial commit: split from gsm-codec-lib
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
19 between successive packets and reports the observed minimum and |
05ff0f7ac977
initial commit: split from gsm-codec-lib
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
20 maximum; by seeing min and max delta-T, a developer can easily |
05ff0f7ac977
initial commit: split from gsm-codec-lib
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
21 notice timing aberrations that aren't caught by RTP header |
05ff0f7ac977
initial commit: split from gsm-codec-lib
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
22 sequence number and timestamp checks. |
05ff0f7ac977
initial commit: split from gsm-codec-lib
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
23 |
05ff0f7ac977
initial commit: split from gsm-codec-lib
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
24 rtp-g711-extr This program focuses on a single selected RTP stream like the |
05ff0f7ac977
initial commit: split from gsm-codec-lib
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
25 others, enforces its continuity just like rtp-cont-check, and |
05ff0f7ac977
initial commit: split from gsm-codec-lib
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
26 then further enforces that every RTP packet be a 160-byte |
05ff0f7ac977
initial commit: split from gsm-codec-lib
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
27 payload, presumed to be either PCMU or PCMA. (The payload type |
05ff0f7ac977
initial commit: split from gsm-codec-lib
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
28 number is NOT considered, only the payload length.) The |
05ff0f7ac977
initial commit: split from gsm-codec-lib
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
29 selected G.711 RTP stream is then extracted and written into a |
05ff0f7ac977
initial commit: split from gsm-codec-lib
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
30 raw binary file. |
05ff0f7ac977
initial commit: split from gsm-codec-lib
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
31 |
4
5216e7fb1c9e
doc: update for new FR/EFR RTP payload formats
Mychaela Falconia <falcon@freecalypso.org>
parents:
0
diff
changeset
|
32 rtp-gsmfr-dump This program focuses on a single selected RTP stream like the |
5216e7fb1c9e
doc: update for new FR/EFR RTP payload formats
Mychaela Falconia <falcon@freecalypso.org>
parents:
0
diff
changeset
|
33 others, enforces its continuity just like rtp-cont-check, and |
5216e7fb1c9e
doc: update for new FR/EFR RTP payload formats
Mychaela Falconia <falcon@freecalypso.org>
parents:
0
diff
changeset
|
34 then expects the RTP payload to be one of GSM FR or EFR formats |
5216e7fb1c9e
doc: update for new FR/EFR RTP payload formats
Mychaela Falconia <falcon@freecalypso.org>
parents:
0
diff
changeset
|
35 listed in the FR-EFR-formats document. Each recognized FR/EFR |
5216e7fb1c9e
doc: update for new FR/EFR RTP payload formats
Mychaela Falconia <falcon@freecalypso.org>
parents:
0
diff
changeset
|
36 or BFI payload is then dumped in human-readable form on stdout, |
5216e7fb1c9e
doc: update for new FR/EFR RTP payload formats
Mychaela Falconia <falcon@freecalypso.org>
parents:
0
diff
changeset
|
37 similarly to the gsmrec-dump utility from Themyscira Wireless |
5216e7fb1c9e
doc: update for new FR/EFR RTP payload formats
Mychaela Falconia <falcon@freecalypso.org>
parents:
0
diff
changeset
|
38 GSM codec libraries & utilities package. |
5216e7fb1c9e
doc: update for new FR/EFR RTP payload formats
Mychaela Falconia <falcon@freecalypso.org>
parents:
0
diff
changeset
|
39 |
5216e7fb1c9e
doc: update for new FR/EFR RTP payload formats
Mychaela Falconia <falcon@freecalypso.org>
parents:
0
diff
changeset
|
40 rtp-gsmfr-extr This program operates like rtp-gsmfr-dump, imposing the same |
5216e7fb1c9e
doc: update for new FR/EFR RTP payload formats
Mychaela Falconia <falcon@freecalypso.org>
parents:
0
diff
changeset
|
41 expectations on the selected RTP stream, but the latter stream |
5216e7fb1c9e
doc: update for new FR/EFR RTP payload formats
Mychaela Falconia <falcon@freecalypso.org>
parents:
0
diff
changeset
|
42 is then extracted and written into a gsmx binary file, as |
5216e7fb1c9e
doc: update for new FR/EFR RTP payload formats
Mychaela Falconia <falcon@freecalypso.org>
parents:
0
diff
changeset
|
43 defined in the GSM codec libraries and utilities package. |
0
05ff0f7ac977
initial commit: split from gsm-codec-lib
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
44 |
05ff0f7ac977
initial commit: split from gsm-codec-lib
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
45 rtp-jitter-view This program analyzes a single selected RTP stream just like |
05ff0f7ac977
initial commit: split from gsm-codec-lib
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
46 rtp-cont-check, but instead of reporting minimum and maximum |
05ff0f7ac977
initial commit: split from gsm-codec-lib
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
47 time deltas for the entire stream, it prints the individual |
05ff0f7ac977
initial commit: split from gsm-codec-lib
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
48 capture time delta between every successive pair of packets. |