§ 1.1 Module 1 — When Voice Became Data
Mr. Watson — come here — I want to see you.— Alexander Graham Bell, 1876, over a circuit that guaranteed his timing
By the end of this lesson
Historical note
On March 10, 1876, Alexander Graham Bell summoned Thomas Watson over a private wire strung between two rooms. Within two years the wire had become a network: on January 28, 1878, George W. Coy opened the first commercial telephone exchange in New Haven, Connecticut — twenty-one subscribers, a switchboard improvised partly from carriage bolts and teapot-lid handles, and human operators cross-connecting wire pairs by hand. The architecture those operators improvised ruled real-time communication for the next century: for every call, reserve a continuous electrical path end to end, and hold it — exclusively — until the parties hang up. The reservation bought perfection. Delay was constant, jitter was zero, nothing could arrive out of order, because timing was enforced by physics rather than software. It also fixed the economics: capacity had to be dedicated whether or not anyone was speaking, so the service was priced by the minute and the mile, and the network could carry nothing but calls. This lesson examines that bargain closely, because everything WebRTC does is a response to giving it up.

Almon Strowger’s first electromagnetic selector, which survives in a museum. A Kansas City undertaker who suspected operators of routing his customers to a competitor patented the machine that removed them from the loop in 1891. Every automatic exchange for the next eighty years is a descendant of this object.
ReinraumCC0Wikimedia Commons
The telephone network — the PSTN, built on circuit switching — divides every call into two phases. First comes setup: the network finds and reserves a path of wire segments and switch contacts from one handset to the other. In 1878 the switch was a person with a cord board; from 1892 it was increasingly Almon Strowger's electromechanical stepping switch (patented 1891, first installed in La Porte, Indiana, in 1892 — Strowger was a Kansas City undertaker who suspected operators of routing his customers to a competitor), later the crossbar switch (Bell System No. 1 Crossbar, 1938), and eventually computers signaling to each other over a separate control network (Signaling System No. 7, standardized in 1980). Then comes the conversation phase, during which the network does nothing at all. The path is nailed up; electricity flows through it as if the two telephones were joined by a single wire.
It is worth being precise about what this buys, because the rest of this course is an attempt to buy it back. On an established circuit, end-to-end delay is fixed at essentially the propagation time of the medium — roughly 5 µs per kilometer in copper, about 20 ms coast to coast across the United States — plus a small, constant transit time through each switch. There is no queueing, because nothing shares the path. There is no reordering, because a single path cannot overtake itself. There is no loss short of physical failure, because no buffer ever overflows. The circuit does not merely make jitter small; it makes jitter impossible by construction.
The price is exclusivity. A circuit is consumed by a call whether or not anyone is speaking, and conversational speech is astonishingly sparse: each direction of a two-way conversation carries voice energy only about 40 percent of the time. The other 60 percent — pauses, listening, breaths — occupies reserved capacity that nobody else may touch. Worse, the reservation is all-or-nothing: a network engineered to hold thousands of simultaneous 4 kHz voice paths open for minutes at a time is structurally incapable of carrying the traffic computers generate, which arrives in bursts of microseconds separated by silences of seconds. The circuit architecture did not merely fail to anticipate the web; it was arithmetically incompatible with it.

Operators at a Bell System switchboard. Setting up a call meant a person physically joining two wire pairs and holding them joined for its whole duration. This is the reservation the lesson describes, performed by hand — and the reason the circuit’s timing guarantee was never in doubt.
The U.S. National ArchivesNo restrictionsWikimedia Commons
Reserving a physical copper pair per call was tolerable inside a town and ruinous between towns, so the Bell System multiplexed its trunks — first in frequency (analog carrier systems, beginning with the Type A carrier in 1918), and then, decisively, in time. In 1962, Illinois Bell put the first T1 carrier system into commercial service between central offices in Chicago: the first digital transmission system in the public network, designed at Bell Labs, and the ancestor of the framing inside every digital telephone trunk since.
T1 rests on two numbers derived a generation earlier. Harry Nyquist's 1928 analysis of telegraph transmission established that a band-limited signal is fully captured by sampling at twice its highest frequency; the telephone voiceband, filtered to 300–3,400 Hz, therefore needs 8,000 samples per second. Each sample is quantized to 8 bits using companded pulse-code modulation — an idea patented by Alec Reeves in 1938 and the entire subject of the next lesson. Eight bits, 8,000 times per second: 64,000 bits per second. That channel is the DS0, and it is the atom of the digital telephone network — the reason "64 kbps" recurs through forty years of telecom standards.
A T1 interleaves 24 DS0s by time. Each frame carries one 8-bit sample from each of the 24 channels plus a single framing bit: 24 × 8 + 1 = 193 bits, repeated every 125 µs — 8,000 frames per second, 1.544 Mb/s on the wire. Notice what the frame does not contain: no addresses, no headers, no lengths, no checksums. A sample's position within the frame identifies which call it belongs to, and the frame's fixed recurrence supplies the timing. Everything a packet network must spend header bytes and buffer memory to express, time-division multiplexing (TDM) expresses with position and clock — which is precisely why it can guarantee timing, and precisely why it cannot share.
Check your understanding
Auto-graded check
1 auto-graded question with an explanation for every wrong answer. Requires JavaScript. (m1-l1-check1)

Racks and the main distribution frame of a 1905 exchange. Capacity here is physical: every simultaneous call needs its own path through this ironwork, which is precisely why Erlang had to work out how many paths to build.
Miller, Kempster B. [from old catalog]No restrictionsWikimedia Commons
Interactive 3D instrument
The T1 frame — position is the address
A 3D instrument you drive yourself, one variable at a time. It needs JavaScript and WebGL, so it is not shown in this static copy of the page.
G.114 budgets one-way mouth-to-ear delay, but the only latency number WebRTC hands you is RTCRemoteInboundRtpStreamStats.roundTripTime, and that covers the network path only. Halving RTT omits capture buffering, encode, the jitter buffer, decode, and render — on a laptop that is another 60–150 ms, and on a Bluetooth headset add 100–300 ms more that no API reports. Teams routinely certify a call as "80 ms, well inside G.114" when the real mouth-to-ear figure is over 300 ms.
Build the budget explicitly: roundTripTime/2 + jitterBufferDelay/jitterBufferEmittedCount + totalDecodeTime/framesDecoded + a measured constant for device I/O. Chrome also exposes jitterBufferTargetDelay and totalProcessingDelay, which capture most of the receive-side pipeline. For headsets, measure once with a loopback tone and a phone recorder; there is no programmatic answer.
If circuits are reserved, how many trunks must a telephone company build? The question was answered by Agner Krarup Erlang, a mathematician at the Copenhagen Telephone Company, in a line of work beginning with his 1909 paper The Theory of Probabilities and Telephone Conversations and culminating in his 1917 blocking formula. Erlang modeled call arrivals as a Poisson process and defined offered load as a = λh: the call arrival rate multiplied by the mean holding time. His "B" formula gives the probability that a call arrives to find all c trunks busy — and is simply refused, with a busy signal. The refused caller does not wait; on a circuit network there is nowhere to wait.
function erlangB(a, c) { // a: offered load in erlangs, c: trunks
let b = 1; // zero trunks: every arriving call is blocked
for (let k = 1; k <= c; k++) {
b = (a * b) / (k + a * b);
}
return b; // P(all c trunks busy) for Poisson arrivals
}
Listing 1.1 — Erlang's 1917 blocking formula, computed by its standard recurrence.
Check your understanding
Auto-graded check
1 auto-graded question with an explanation for every wrong answer. Requires JavaScript. (m1-l1-check2)
The numbers explain a century of telephone pricing. Offer 5 erlangs of load to 10 trunks and about 1.8 percent of calls are refused — the classic "P.02" grade of service that Bell engineers provisioned toward. Push blocking down to a tenth of a percent and you need 13 trunks: three additional circuits, purchased and maintained, that stand idle nearly all the time. The circuit network's quality is bought with capacity that mostly does nothing, and its failures are absolute — the unlucky 1.8 percent get no service whatsoever.
The packet alternative spends a different currency. A shared link refuses no one: every arriving packet is admitted and queued. The cost is delay, and it is paid by everyone. For a link at utilization ρ serving fixed-size packets of service time S, the M/D/1 queueing model gives a mean wait of Wq = ρS / 2(1 − ρ). At half utilization that is half a service time — negligible. At ρ = 0.96 it is twelve service times, and as ρ approaches 1 it grows without bound. Leonard Kleinrock worked out this style of analysis for communication networks in his 1961–62 MIT dissertation, published as Communication Nets in 1964 — queueing theory arriving in networking a few years before the network it would describe.
Here is the whole tradeoff in one sentence: the circuit refuses some users entirely so that admitted users experience perfection, while the packet network admits everyone and degrades continuously under load. And the economics point one way. Because each direction of a conversation is idle roughly 60 percent of the time, a statistically shared link can carry more than twice the conversations of its reserved equivalent before quality collapses. Packets won on cost. They lost — catastrophically, as the next section shows — on timing. The exercise at the end of this lesson has you build both models and watch the two currencies move.

A crossbar exchange. Faster and more reliable than stepping switches, and still doing the identical job — nailing up one dedicated path per call, and holding it whether or not anyone is speaking.
NTT Public CorporationPublic domainWikimedia Commons
Interactive minigame
Two benches, one load — blocking versus queueing
A 3D instrument you drive yourself, one variable at a time. It needs JavaScript and WebGL, so it is not shown in this static copy of the page.
"Toll quality" is not a metaphor. Toll circuits were the long-distance trunks customers paid per-minute tolls to use, and their audio quality — 64 kb/s companded PCM, the codec later standardized as G.711 (CCITT, 1972) — became the reference against which all telephone audio is judged. The measuring instrument is the mean opinion score of ITU-T P.800: panels of listeners rate speech from 1 (bad) to 5 (excellent), and toll quality means scoring about 4.0, where G.711 itself scores roughly 4.1. Delay has its own budget: ITU-T G.114 recommends at most 150 ms one-way before conversational interactivity degrades — people begin talking over each other. The analog and digital PSTN sailed under that bar without trying; a domestic long-distance circuit's delay, being propagation plus switching, ran a few tens of milliseconds.
When the first mass-market packet voice product appeared — VocalTec's Internet Phone, released by Alon Cohen and Lior Haramaty in February 1995 — it was, by these measures, not a telephone. It ran half-duplex, walkie-talkie style, over dial-up modems, with latency measured in large fractions of a second. Its existence proved demand; its quality defined the gap. The bar packet voice had to clear was never "intelligible." It was "indistinguishable from a wire that a century of engineering had made perfect," on a network that guarantees nothing.
An ACR MOS is the arithmetic mean of scores from a human listening panel. Every "MOS" on every dashboard is an estimator — usually the ITU-T G.107 E-model R-factor mapped to a 1–5 scale, or a vendor regression. The E-model was calibrated on narrowband codecs with 1990s packet-loss concealment; feed it Opus at 48 kHz with DTX and NetEq time-stretching and it returns values above 4.5 or below 1.0. Two vendors will report different MOS for the identical call, and neither is wrong.
Report the inputs, not the scalar: loss rate, concealedSamples/totalSamplesReceived, jitter buffer delay, and codec. If leadership insists on one number, publish which estimator and version produced it, and never compare across vendors or across your own releases without re-baselining.
Packet switching was invented, deliberately, by discarding the circuit's central assumption. Paul Baran's 1964 RAND report series On Distributed Communications proposed chopping messages into independently routed blocks so a network could survive damage; Donald Davies at the UK's National Physical Laboratory arrived at the same design in 1965 and gave the blocks their lasting name, packets. On October 29, 1969, in Leonard Kleinrock's lab at UCLA, student Charley Kline sent the first ARPANET message toward SRI — the system crashed after two characters, "LO". Each packet in such a network is routed on its own and queued at every hop. For bursty computer traffic this is exactly right. For voice it resurrects, all at once, everything the circuit had abolished: variable delay, reordering, and loss.
The obvious reflex — run voice over TCP and let retransmission fix the loss — makes matters worse, which is why real-time media instead rides UDP, the transport that promises nothing and therefore never delays you.
A common error
"TCP is more reliable than UDP, so it must be better for a phone call." Reliability is the wrong axis. A retransmitted syllable arrives a round-trip late — after its playback moment has passed — so the receiver must either freeze or discard it anyway; TCP has spent time and bandwidth delivering data that is now worthless. Worse, TCP delivers bytes strictly in order, so one lost packet stalls every packet behind it (head-of-line blocking) and turns a single loss into a burst of delay. For interactive media, late data is worse than lost data: a 20 ms gap can be concealed; a half-second stall cannot.
Packet voice itself is nearly as old as the ARPANET. In 1973–74 Danny Cohen at USC's Information Sciences Institute ran the first packet voice experiments across the ARPANET under the Network Voice Protocol, later written up as RFC 741 (1977). NVP proved the physics — compressed speech could cross a packet network and be reassembled — but offered no standard framing, so every experiment was bespoke and nothing interoperated. The durable answer took until January 1996: RTP, RFC 1889, by Henning Schulzrinne, Stephen Casner, Ron Frederick, and Van Jacobson. Its two crucial header fields — a media-clock timestamp and a sequence number — are exactly the information TDM had carried implicitly in slot position and frame recurrence, now made explicit so a receiver can reorder and re-time what the network scrambled. Its companion protocol RTCP reports back what the network did to the stream. Both sit inside every WebRTC packet you will ever send.
This is the course's central tension, and you now hold both ends of it. The circuit guarantees timing by reserving physics and pays in blocking, idle capacity, and per-minute-per-mile prices; the packet network shares statistically, wins on cost by a wide margin, and surrenders every timing guarantee. Everything that follows in this book — RTP timestamps, jitter buffers, congestion control, retransmission that races the playback clock — is one project: rebuilding the circuit's guarantee in software, statistically, at the edges of a network that refuses to make it. The next lesson begins at the bottom of that rebuild, with the DS0's own question: how a pressure wave in air becomes 64,000 bits per second.
Build both economic models — circuit blocking and packet queueing — and watch each architecture pay in its own currency; then verify the circuit's guarantees against scenarios.
Lab 1
Circuits vs packets: the economics simulator
Graded in the browser against 4 assertions; the editor and harness require JavaScript.
Check your understanding
Auto-graded check
5 auto-graded questions with an explanation for every wrong answer. Requires JavaScript. (m1-l1-ex2)
What the specifications say, and what the browsers actually do, are two different documents. These are the divergences that cost production teams their weekends.
Erlang-B assumes a fixed DS0 per call and blocked-calls-cleared: when the trunk group is full you get a busy signal and existing calls are untouched. Packet media has no admission control anywhere in the path, so overload does not block the 101st call — it degrades all 100 that were already fine. An SFU at 95 % CPU does not refuse work; it adds encode latency to every participant simultaneously, which is why capacity incidents present as "everyone's audio got choppy at once" rather than "new calls failed".
Implement the busy signal yourself. Cap publishers per SFU node, cap total forwarded bitrate, and reject or redirect at the signaling layer on CPU, packet-rate, and port-count thresholds. Set the threshold at the knee (typically 60–70 % CPU for an SFU), not at saturation, because the degradation is not graceful.
The Impossible Call · Module 1, Lesson 1