How VoIP Works
VoIP is a method of sending digitally encrypted voice transmissions across the internet, bypassing the standard (PSTN) telephone network.
VoIP is a class of peer-to-peer application, which uses ‘handshaking' to establish a link and a subsequent data-stream between peered IP devices, which may be IP phones, computers, PDAs, or other types of device.
VoIP call-setup and other signalling functions typically involve the exchange of relatively short message components comprising single packets rather than long packet sequences. Accordingly, VoIP signalling is usually implemented in UDP (User Datagram Protocol), rather than the more robust and ‘heavier' TCP, though this is sometimes used in specialised VoIP applications. UDP contains less error-correction and verification information than does TCP thereby reducing ‘overhead'.
Once data exchange – e.g. a conversation – is initiated, encoded audio is carried in the payloads of a sequence of short packets, each preceded by three protocol headers:
- IP Header, carrying the IP Address of sending and recieving devices with a flag signifying the data type
- UDP Header, carrying the source and destination logical ports
- RTP (Realtime Transport Protocol) Header carrying packet sequence and timing code
RTP is fundamental to VoIP as data packets must be translated in the right sequence to produce intelligible speech. In fact VoIP can be thought of as a type of streaming media, similar to QuickTime or Real Audio, using RTP to ensure the voice data does not become garbled or disordered during transmission.
In typical VoIP bitstreams, the IP and UTP headers may contain more data than the audio payload itself.
VoIP media packets are transported across the intervening IP network the same way as any other data traffic. At the remote device, they are re-sequenced, decoded and the payload data played back, reproducing the input audio signal as a copy of the original sound.
It is worth reflecting that VoIP is a practical possibility because of the sheer processing power of modern computer chips; the microchips powering computers 10 years ago would not have been able to cope with the load even if these processing techniques existed then.