IP電話は、SIP*1というプロコトルを用いて実現されています。SIPは元々インターネット上の会議を行うためのプロコトルとして設計され、IPネット上でのリアルタイム通信を制御する目的のプロトコルです。
図に示す通り、SIPサーバ、SIPクライアントで構成されます。SIPクライアントは、起動時、指定のSIPサーバに登録します。すると、SIPサーバ上でReadyになった通信端末として認識されます。SIPクライアント1からSIPクライアント2を呼び出すと、SIPクライアント同士での通信ネゴシエーションが行われ、通信がOKとなると、RTPと呼ばれるデータトランスポートが開きます。RTPを用いて、音声や画像等のデータストリームが通信されて、電話やTV会議として成立する、というわけです。
ただ、その2に示すように、SIPサーバでRTPを中継するような設定もできて、この方が柔軟な設計がいろいろできます。暗号化とかコーデックの違いとかを吸収できたりね。