4 ms·
As the other comments have noted, it's the "control plane" that tells all the Voice-over-IP parts how to set up and tear down a call. As for the complications.
by mgsouth 3y ago
As the other comments have noted, it's the "control plane" that tells all the Voice-over-IP parts how to set up and tear down a call.
As for the complications... Yeah.
The folks who invented VoIP had a dream. They saw the existing extremely centralized, extremely locked-down phone carriers as The Enemy. Instead, they envisioned a loose decentralized federation of peers who directly contacted one another over the Internet to make calls.
Since there weren't supposed to be any all-knowing, all-powerful, all-standard-enforcing choke points, everything had to be negotiated and a consensus built up across the interconnected parts as to the call state and control. Worse, intermediate services (proxies) were allowed to be stateless. So the consensus has to be continually reinforced during and after the call.
Another design choice was to split functionality into lots of optional tiny pieces. "SIP" has a bazillion RFCs (standards specs), and some pretty byzantine control flows to implement all the interconnections. (To be fair, The Enemy is just as bad or worse. Both camps were dealing with extremely limited computing power and bandwidth in the distant past, plus incremental feature enhancement.)
My poster child is "call parking". This allows you to "park" a call from one phone by putting it on hold, and then picking it on another. The suggested SIP call from (don't remember which RFC it's part of) involves specialized "parking services"; all these do is receive a call and then later forward it. The minimal flow diagram has dozens of distinct steps involving half-a-dozen players.
SIP was a standard, not proprietary, and "good enough", so became the overwhelming standard for interconnecton of VoIP players. In reality, the vast majority of conrol flows are:
1. Phone says "hey central server, here's a phone number. Call them."
2. Central server says "Hey phone, here's an incoming call."
3. Phone says: "OK, I'll answer".
4. Phone to server: "Hang up".
5. Server to phone: "Hang up".
6. Phone: "Here's some random buttons my user pushed mid-call." (This includes digits for IVR menu trees, and on/off hold).
Audio almost always uses one of three or four popular encoding choices: 1) "Dead stupid" (G.711), 2) "Bad compression" (G.729), 3) "Oooh! Hifi!" (G.722), 4) "Something open, decent, and from the current century" (Opus). Video is usually H.263 or one of its relatives.