SIPサーバ(エスアイピーサーバ)とは | 意味や読み方など丁寧でわかりやすい用語解説
SIPサーバ(エスアイピーサーバ)の意味や読み方など、初心者にもわかりやすいように丁寧に解説しています。
読み方
日本語表記
SIPサーバー (エスアイピーサーバー)
英語表記
SIP server (エスアイピーサーバー)
用語解説
SIPサーバとは、IPネットワーク上で音声通話やビデオ会議、インスタントメッセージなどのリアルタイム通信セッションを確立、変更、終了するために中心的な役割を果たすソフトウェア、またはその機能を提供するシステムである。SIPという用語はSession Initiation Protocol(セッション開始プロトコル)の略で、これはインターネットプロトコル(IP)を用いて様々なマルチメディア通信を制御するための標準プロトコルである。従来の電話網における交換機のような役割をインターネット上で担い、通信相手を探し出し、両者を接続する橋渡しをする。たとえば、IP電話やWeb会議システム、ユニファイドコミュニケーション環境の構築において、SIPサーバは欠かせない基盤技術となっている。これにより、ユーザーは場所やデバイスに縛られずに、多様な通信サービスを利用できる。
SIPサーバは、SIPプロトコルに基づいて動作する。SIPは主に通信セッションの「制御」を担当し、実際の音声や映像などの「メディア」データそのものは、通常、RTP(Real-time Transport Protocol)などの別のプロトコルを用いてエンドツーエンドで直接やり取りされる。SIPサーバは、ユーザーが通信を開始しようとする際に、そのユーザーが誰であるか、どこにいるか、そして誰と通信したいかを把握し、セッションを適切に確立するための指示を出す。
SIPサーバには、その機能に応じていくつかの種類がある。最も一般的なものは以下の通りである。
-
プロキシサーバ (Proxy Server): これはSIPサーバの主要な機能の一つで、クライアントからのSIPリクエストを受け取り、そのリクエストを次の適切なSIPサーバやユーザーエージェントへ転送する役割を持つ。プロキシサーバは、着信先の正確な場所を知らない場合でも、設定されたルーティングルールやレジストラサーバの情報に基づいて、最適な経路を判断してリクエストを転送する。また、認証、認可、帯域制御、ルーティングポリシーの適用など、様々な付加的なサービスを提供することもある。プロキシサーバはステートフル(状態を保持する)にもステートレス(状態を保持しない)にも動作可能で、ステートフルなプロキシサーバはセッションの状態を監視し、信頼性の高い通信を保証する。
-
レジストラサーバ (Registrar Server): このサーバは、SIPユーザーエージェント(IP電話機やソフトフォンなど)がネットワークに接続した際に、自身の現在の連絡先(IPアドレスやポート番号など)を登録するための機能を提供する。ユーザーエージェントは、REGISTERメッセージをレジストラサーバに送信し、自身のSIP URI(たとえば "sip:user@example.com" のような形式)と現在のIPアドレスの関連付けを登録する。この登録情報が、後続の着信通話のルーティングに利用される。レジストラサーバは、これらの情報をロケーションサーバ(Location Server)と呼ばれるデータベースに保存し、他のSIPサーバがユーザーの現在位置を照会できるようにする。
-
リダイレクトサーバ (Redirect Server): リダイレクトサーバは、SIPリクエストを受け取ると、そのリクエストを直接転送するのではなく、宛先の別のSIP URIをクライアントに通知する。クライアントはこの通知を受けて、示された新しいURIへ直接リクエストを再送信する。これにより、リダイレクトサーバ自身はセッションの処理に関与せず、負荷を軽減できる。主に、ユーザーの場所が頻繁に変わる場合や、複数の電話番号を持つユーザーに対するルーティングを効率化する際に利用される。
これらのサーバは、単一のソフトウェアとして統合されていることもあれば、それぞれ独立したコンポーネントとして動作することもある。実際のシステムでは、これらが連携して機能し、複雑な通信要求に応える。
SIPサーバの動作は、主にユーザー登録と通話確立のプロセスで理解できる。
ユーザー登録のプロセス: SIPクライアントがネットワークに接続すると、まずレジストラサーバに対してREGISTERリクエストを送信する。このリクエストには、クライアントのSIP URIと、現在のIPアドレスなどの連絡先情報が含まれる。レジストラサーバはこの情報を受け取り、ロケーションサーバ(データベース)に保存する。これにより、他のSIPユーザーがこのクライアントに連絡しようとした際に、SIPサーバがロケーションサーバを参照して、どこにリクエストを送れば良いかを特定できる。
通話確立のプロセス: たとえば、あるユーザーAがユーザーBに電話をかける場合、ユーザーAのSIPクライアントは、まず自身のプロキシサーバにINVITEリクエストを送信する。このINVITEリクエストには、ユーザーBのSIP URIが含まれている。ユーザーAのプロキシサーバは、ユーザーBのSIP URIを基に、レジストラサーバまたはロケーションサーバに問い合わせ、ユーザーBが現在どのIPアドレスにいるか、どのSIPサーバがユーザーBを管理しているかを特定する。ユーザーAのプロक्सीサーバは、特定された情報に基づいて、ユーザーBが所属するプロキシサーバ、または直接ユーザーBのSIPクライアントへINVITEリクエストを転送する。
ユーザーBのSIPクライアントがINVITEリクエストを受信すると、ユーザーBへ着信を通知し、ユーザーBが応答するとSIPクライアントは「200 OK」などの応答を返信する。この応答は、経由したSIPプロキシサーバを逆向きに辿ってユーザーAに届けられる。この一連のSIPメッセージ交換を通じて、両方のSIPクライアントは、メディア(音声・映像)を送受信するためのセッション情報(たとえば、使用するコーデックやポート番号など)を交換し合う。この交換が終わると、実際の音声や映像データは、通常、SIPサーバを介さずに、ユーザーAとユーザーBのSIPクライアント間でRTPプロトコルを用いて直接やり取りが始まる。SIPサーバはあくまでセッションの「制御」を担当するのみで、実際の「データ転送」には関与しないことが多い。通話が終了する際には、どちらかのクライアントからBYEリクエストが送られ、セッションが終了する。
このように、SIPサーバはIPネットワーク上での多様なリアルタイム通信サービスを円滑に実現するための、非常に重要なインフラストラクチャである。オープン標準であるため、異なるベンダーの機器やソフトウェア間でも相互運用が可能であり、柔軟で拡張性の高い通信システムを構築できる基盤となっている。