Module 1 — When Voice Became Data

Module 1 Examination: When Voice Became Data

What this examination covers

Module 1 traced a single arc: the telephone network solved real-time audio by physics — circuit switching and the 1962 T1 carrier reserved a synchronous 64 kbps lane per call — and packet switching deliberately threw that guarantee away. Danny Cohen's Network Voice Protocol pushed the first packet voice across the ARPANET in 1973–74 and proved two things at once: that voice could survive a packet network, and that it needed a standard framing layer it did not yet have. The Mbone audiocast of the March 1992 IETF meeting in San Diego ran on the draft that became that layer: RTP (RFC 1889, January 1996; Schulzrinne, Casner, Frederick, and Jacobson; revised as RFC 3550 in July 2003), which rebuilt the circuit's clock as per-packet metadata, and RTCP, its feedback channel. Underneath both sit the 1972 decisions of G.711 — PCM at 8 kHz with μ-law companding — and the choice of UDP over TCP, because for a phone call late data is worse than lost data.

You have 75 minutes. The examination has three parts: Part A is code, graded per check with partial credit and hints disabled; Part B is forensic diagnosis of canned artifacts; Part C is concepts. The pass mark is 80 percent. Everything runs offline in this page — no camera, no microphone, no network.

ACoding: the wire, byte by byte

Since RFC 5761 (April 2010, Perkins and Westerlund), RTP and RTCP typically share a single port, and every receiver's first job is telling them apart: read the second byte of the packet as a full 8-bit value — 192–223 means RTCP (Sender Report = 200, Receiver Report = 201), while an RTP packet with a dynamic payload type of 96–127 puts 96–127 there (marker bit clear) or 224–255 (marker bit set), never 192–223. The capture in Problem A1, supplied as CAPTURE (an array of Uint8Arrays), is such a mixed stream: Opus on payload type 111 at the 48 kHz RTP clock (RFC 7587), interleaved with the sender's SR and the far end's RR. All multi-byte fields are big-endian.

Part A — Coding tasks≈ 50% of the examination

Three problems: demultiplex and parse a mixed RTP/RTCP capture, reconstruct stream statistics across a sequence-number wrap, and build the μ-law quantization pipeline.

Lab A1

Demultiplex and parse a mixed RTP/RTCP capture

Graded in the browser against 5 assertions; the editor and harness require JavaScript.

Lab A2

Reconstruct stream statistics across the wrap

Graded in the browser against 6 assertions; the editor and harness require JavaScript.

Lab A3

The μ-law quantization pipeline

Graded in the browser against 5 assertions; the editor and harness require JavaScript.

BForensics: four incidents

Each scenario below presents a canned artifact — counters shaped like getStats output, a spectrogram, packet timelines. Read the artifact, then answer the corresponding question in the quiz that follows. One question per scenario.

Incident 1 — choppy but lossless. A receiver reports steady packetsReceived, packetsLost = 0, and strictly contiguous sequence numbers — yet the audio is choppy, with audible gaps and stutters. The jitter buffer is repeatedly starving and refilling.

Incident 2 — the robotic tone. A test harness plays a pure 5 kHz tone into a legacy 8 kHz G.711 gateway whose anti-aliasing filter has been misconfigured out of the path. Listeners describe the result as "robotic." The spectrogram of what the far end hears is sketched in Figure E1.1: the sent tone never appears; a strong component sits at 3 kHz instead.

kHz 0 2 4 6 8 time → Nyquist = fs/2 = 4 kHz tone sent: 5 kHz (never received) tone received: 3 kHz folds about fs/2
Figure E1.1 — Incident 2 artifact: the receiver's spectrogram. The 5 kHz input is absent; energy appears at 3 kHz, mirrored about the 4 kHz Nyquist frequency.

Incident 3 — the timestamp cliff. An RTP timeline from a 48 kHz Opus stream shows this around the twelve-second mark:

seq=1999   ts=159040    arr=11.980 s
seq=2000   ts=160000    arr=12.000 s
seq=2001   ts=400000    arr=17.023 s      ts jumped +240,000 ticks = 5.0 s
seq=2002   ts=400960    arr=17.043 s

Exhibit B.3 — Incident 3 artifact: sequence numbers contiguous, RTP timestamp discontinuous by five seconds of media time.

Incident 4 — one identity, two voices. A capture at the receiver shows packets bearing a single SSRC arriving from two different transport addresses, with two interleaved sequence-number and timestamp series:

ssrc=0x5A13F00D  pt=111  seq=4021   ts=1728000    from 203.0.113.7:49170
ssrc=0x5A13F00D  pt=111  seq=17755  ts=88970240   from 198.51.100.9:61044
ssrc=0x5A13F00D  pt=111  seq=4022   ts=1728960    from 203.0.113.7:49170
ssrc=0x5A13F00D  pt=111  seq=17756  ts=88971200   from 198.51.100.9:61044

Exhibit B.4 — Incident 4 artifact: the same SSRC from two sources, two independent sequence/timestamp series.

Part B — Forensic diagnostics≈ 30% of the examination

One question per incident. Diagnose before you look at the options.

Check your understanding

Auto-graded check

4 auto-graded questions with an explanation for every wrong answer. Requires JavaScript. (m1-exam-quiz-b)

CConcepts: the numbers that hold it up

Part C examines the quantitative bedrock of the module — Nyquist (1928) and Shannon (1949) on sampling, the ITU-T G.114 guidance that one-way mouth-to-ear delay should stay at or below 150 ms, the split of labor between sequence numbers and timestamps, and RFC 3550's rule that RTCP traffic is held to 5 percent of session bandwidth.

Part C — Concept questions≈ 20% of the examination

Five questions. Do the arithmetic; the wrong options are the standard mistakes.

Check your understanding

Auto-graded check

5 auto-graded questions with an explanation for every wrong answer. Requires JavaScript. (m1-exam-quiz-c)

Examination score

The scorecard totals this page’s graded work as you go. It requires JavaScript.

The Impossible Call · Module 1 Examination