annotate doc/RTP-analysis @ 139:be57e06bed84

factor out common part of gsmfr-cvt-dlcap, in prep for EFR
author Mychaela Falconia <falcon@freecalypso.org>
date Tue, 13 Dec 2022 07:03:55 +0000
parents 8eb0e7a39409
children aaa0380f9958
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
136
8eb0e7a39409 doc: document command line utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1 The present package includes a utility named rtp-gsmfr-extr; this utility
8eb0e7a39409 doc: document command line utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
2 extracts a single RTP stream in either FR1 or EFR codec format from a pcap file,
8eb0e7a39409 doc: document command line utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
3 presumably captured with tcpdump on an IP network serving either an IP-based BTS
8eb0e7a39409 doc: document command line utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
4 or a gateway from an E1-based BTS to RTP - the intent is to extract a GSM call
8eb0e7a39409 doc: document command line utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
5 uplink that has been rendered into an RTP stream by a BTS. The RTP stream being
8eb0e7a39409 doc: document command line utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
6 extracted must be fully continuous without any gaps, using Themyscira
8eb0e7a39409 doc: document command line utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
7 RTP-BFI-extension BFI marker packets in those 20 ms windows where no good
8eb0e7a39409 doc: document command line utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
8 traffic frame has been received. rtp-gsmfr-extr verifies continuity of the RTP
8eb0e7a39409 doc: document command line utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
9 stream being extracted: any detected discontinuity (either a sequence number
8eb0e7a39409 doc: document command line utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
10 jump indicating packet loss or a timestamp jump indicating an intentional gap
8eb0e7a39409 doc: document command line utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
11 generated at the source) will be reported, and the extraction will stop there.
8eb0e7a39409 doc: document command line utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
12
8eb0e7a39409 doc: document command line utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
13 To run rtp-gsmfr-extr, you need to have a pcap file (obviously), and you need to
8eb0e7a39409 doc: document command line utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
14 identify the RTP stream to be extracted by either source or destination IP:port.
8eb0e7a39409 doc: document command line utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
15 rtp-gsmfr-extr will look at every UDP packet that matches this src-IP-port or
8eb0e7a39409 doc: document command line utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
16 dest-IP-port filter, and then check for valid RTP, verify the expected increment
8eb0e7a39409 doc: document command line utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
17 in sequence and timestamp numbers, check for either FR1 or EFR payload (or a
8eb0e7a39409 doc: document command line utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
18 Themyscira BFI marker for FR & EFR), and finally write the extracted frame
8eb0e7a39409 doc: document command line utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
19 stream to a gsmx file. This gsmx output can then be analyzed with gsmrec-dump,
8eb0e7a39409 doc: document command line utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
20 or decoded to playable WAV with gsmfr-decode or gsmefr-decode.