インターネットを介して音声通話を実現するための技術が急速に広がった昨今、「VoIP」や「SIP」という言葉が広く使われるようになりました。しかしIT業界に入ったばかりの方の中には、これらの用語について「明確に違いを説明できない……」という方もいるのではないでしょうか。
この記事では、インターネット通話の中心的な技術である「VoIP」と「SIP」について、それぞれの仕組みと違いを詳しく紹介します。
目次
VoIPとSIPの違い

VoIPとSIPは、多くのシーンで似た意味の用語として使われています。まずは2つの用語の違いについて、それぞれの意味と用途を解説します。
VoIPとは
VoIPは「Voice over Internet Protocol」の略称であり、IPネットワークを利用して音声通話を実現するための技術の総称です。音声通話を実現するために、複数のプロトコルを組み合わせて利用することで成り立っています。
VoIPによる音声通話では、音声データを一定の決まりにのっとって分割して転送するように定められています。それらの仕組みは一つひとつ、より詳細に定められたプロトコルの採用により実現します。
SIPとは
SIPは「Session Initiation Protocol」の略称で、IPネットワークを利用した通話の相手と「呼制御」と呼ばれる機能で繋がるための通信プロトコルです。
呼制御とはつまり、電話の受発信を管理する機能のことを言います。インターネットを介した音声通話における、発信・終話・保留・再開などの処理が、このSIPにより実現しているのです。この仕組みは「シグナリング」とも呼ばれています。
IP電話のアプリケーションにおける呼制御プロトコルには、SIP以外にも「H.323」などが多く使われてきました。しかし拡張性や汎用性の高さから、現在ではSIPの利用が主流となっています。
SIPはVoIPと同じような意図で利用される用語ですが、あくまで「VoIPを構成するいちプロトコル」にすぎません。VoIPによる音声通話を実現するためには、音声データを圧縮して転送できる単位に分割するプロトコルや、分割したデータを送受信するプロトコルなど、SIPの他にも複数の種類のが必要になります。
SIPの構成

SIPは大きく「SIP User Agent」と「SIPサーバー」の2つに分けられ、それぞれに音声通話を制御するための機能が備わっています。ここではSIPを構成する要素について詳しくご紹介します。

SIP User Agent
概要 |
SIPネットワークの端末デバイス
|
役割 |
電話の発信および受信を担当
|
SIP UAはSIPネットワークにおける端末デバイスで、SIP電話端末やPC、PDAで動作するSIPクライアントソフトウェア、ゲートウェイなどが例として挙げられます。
リクエストを開始する機能モジュール「UAC(User Agent Client)」と、受け取ったリクエストに対するレスポンスを生成する機能モジュール「UAS(User Agent Server)」で構成されています。
SIPサーバー
SIPサーバーはその名の通り「SIPプロトコル」を利用しているサーバーのことです。インターネットを利用して通話する端末同士を繋げる役割を担っており、音声をデジタル化してやりとりする仕組みを実現するうえで欠かせないものとなっています。
具体的にどのような機能が備わっているのか見ていきましょう。
①プロキシサーバー
概要 |
SIP通信を管理している、SIPサーバー機能の一つ
|
役割 |
UAクライアントからの通信を受信し、転送する |
SIP UAから発信リクエストを受信すると、プロキシサーバーは後述するロケーションサーバーに通話相手への接続先情報を問い合わせます。そのうえでロケーションサーバーからのレスポンスをもとに、通話相手のサーバーやUAサーバーに直接通信を転送します。
プロキシサーバーはUAクライアントに代わってデータを代理送信するため、通話相手のUAサーバーからはプロキシサーバーと通信しているように見えています。
②レジストラサーバー
概要 |
SIP通信を管理している、SIPサーバー機能の一つ
|
役割 |
UAが送信した登録要求をキャッチし、ロケーションサーバーに登録する
|
UAは起動するとすぐに自分自身の登録要求リクエストをロケーションサーバーへ送信します。レジストラサーバーの役割は、UAが送信した登録要求をキャッチし、ロケーションサーバーに登録することです。IPネットワーク内のUAは、すべてロケーションサーバーに登録されている必要があります。
UAはロケーションサーバーに登録されて初めて、他のUAと通信できるようになります。
③ロケーションサーバー
概要 |
SIP通信を管理している、SIPサーバー機能の一つ
|
役割 |
UAの位置情報(通信経路やプロキシサーバーの情報など)を保管
|
プロキシサーバーから通話相手のロケーションに対する問い合わせを受けると、ロケーションサーバーは登録された情報からメッセージの送信先を決定して返答します。
ロケーションサーバーはレジストラサーバーと合わせて一つの機能とみなせるため、両者をまとめてレジストラサーバーと呼ぶケースもあります。
④リダイレクトサーバー
概要 |
SIP通信を管理している、SIPサーバー機能の一つ
|
役割 |
SIPリクエストに対し、代わりに相手のアドレスを探索する
|
SIPサーバーが管理するUAが増えるにつれて、プロキシサーバーの代理送信による通信量も増えます。それにより、SIPサーバーへの負担が見込まれます。
そこで大規模ネットワークでは、リダイレクトサーバーを設置して「代理応答ではなくそのまま転送する」ことで、SIPサーバーの負担を減らすように工夫しています。
VoIPによる音声通話の仕組み

続いては、VoIPによる音声データの送受信がどのようにおこなわれているかを紹介します。
①音声情報をIPパケットに変換
まずは音声情報をIPネットワークで送受信できるよう、IPパケットへ変換します。
具体的には音声情報を圧縮した後、デジタルデータに変換します。その上で一定の規則に基づいてデータを分割し、順次通話相手に転送します。
②インターネットを通して相手へ送信
IPパケットに変換された音声データは、インターネットを通じて通話相手に送信されます。
ちなみにIPパケットの送信ではリアルタイムの再生を重要視しているため、UDP/IP通信の利用によるデータの欠損や損失は一定程度許容されています。
③IPパケットを電気信号に復元
通話相手に届いたIPパケットはそのままでは聞けないため、届くごとに元通りの電気信号に復元されます。
元通りに復元するためには、音声データをIPパケットに変換するときに利用した方式と同じもので復元する必要があります。
ちなみに音声データの変換と復元を行う機能を「コーデック」と呼びます。送受信するデータの中で、変換時にどの方式を利用したかを通知できるようになっています。
④電気信号を音声信号に変換
電気信号まで復元された音声データは音声信号に変換されます。
専用のIP電話機には変換する機能が備わっている場合もありますが、家庭用電話機など変換機能を持たない端末を利用する場合は、VoIPゲートウェイを設置して変換します。
SIPの課題点

IP電話のプロトコルとして普及が進むSIPですが、今後に向けた課題も出てきています。
相互接続性に乏しい
これまでVoIPを利用した音声通話は「企業オフィス内のプライベートなIPネットワーク内で利用するシステムである」として、SIPサーバーと電話機がセットで開発される傾向にありました。VoIPシステムを開発するベンダーごとに創意工夫を重ね、本来のプロトコルに対して独自拡張なども多く実装されています。
このためベンダーごとの仕様の違いが大きく、異なるベンダーのシステム同士の相互接続は保証されていないのが実情です。
NATとの相性がよくない
SIP通信は、企業のネットワークでよく利用されている「NAT」との相性がよくないという特徴があります。
SIPサーバーでは通話相手の情報をロケーションサーバーに保存して管理しています。しかしNATは、SIPサーバーの知らないところでIPアドレスやポート番号を書き換えているのです。
そのため通信経路上にNATのルーターが存在すると、通話ができない・どちらか一方の音声しか送られないといった不具合が発生する場合があります。
コミュニケーションAPI「Twilio」のご紹介
Twilio(トゥイリオ)は電話やSMS、ビデオ、チャットなど世の中にあるさまざまなコミュニケーションチャネルを、WEB・モバイルアプリケーションと繋ぐクラウドコミュニケーションAPIです。
電話に必要なあらゆる機能をコントロールできる「Programmable Voice」や、既存VoIPのインフラを世界中のキャリアと接続できる「SIP Trunking」などのサービスを提供していることから、ソフトフォンを手軽かつローコストで運用するのに役立ちます。
またTwilioと別のソフトフォンアプリを連携させることで、「自分の携帯電話をSIPソフトフォンとして利用する」といった応用もできます。ソフトフォンを有効活用したい方は、ぜひこちらもチェックしてみてくださいね。