FrontPage

SIPropプロジェクトとは?

SIP系のOSSを、開発するプロジェクトです。
SIPropVer.2.0の完成と雷電の開発開始に合わせて、定義し直されました。

目的

 
「メディア (通信媒体)の世界を広げる」

という目的の元、SIPに関するのOSSアプリを提案・開発するプロジェクトである。
この目的を果たすために、他プロジェクトと提携し、いろいろなプロダクトを立ち上げている。プロジェクト一覧はこちら

イメージ図:

raiden_base_s.PNG

SIPropプロジェクト が認識する問題とその解決

一般の IP 電話において、SIP は相手を呼び出す機能(シグナリングという)を実現する通信プロトコルとして利用されている。そのため、現状では「SIP は IP 電話のための通信プロトコルである」と誤解されがちである。

しかし、インターネットの通信プロトコル規約である RFC において、SIP の目的は次のように規定されている。

SIP (Session Initiation Protocol) は、インターネットのエンドポイント(ユーザーエージェントと呼ばれる)が
お互いを発見し、共有を望むセッションの特性に合意することを可能にすることで、これらのプロトコルと
協調して動作する。セッションの参加者と見込まれるものの場所を特定するため、および他の機能のために、
SIPは、ユーザーエージェントが登録リクエストやセッションへの招待およびその他のリクエストを送ることが
できる、ネットワークホスト(プロキシサーバーと呼ばれる)のインフラを生成することを可能にする。
SIPは、下位のトランスポートプロトコルから独立し、確立されるセッションのタイプに依存せずに動作する、
セッションを生成・修正・終了するためのしなやかで多目的なツールである。

すなわち、SIPは
「(IP電話を含む)様々なネットワーク・アプリケーションのためにセッションの管理を行う、汎用セッション・プロトコル」
なのである。

 

本来、汎用セッション・プロトコルであるはずの SIP が、IP 電話に付随する通信プロトコルとして語られることが多いのは、IP 電話が SIP が提供するセッション管理機能を必要とする最もメジャーなアプリケーションであり、他に SIP を必要とするアプリケーションが見つからないことに原因がある。

さらに、近年の通信事業各社によるNGNやFMCと呼ばれる試みは、「シグナリング・プロトコルとしての SIP」を推し進めるものであり、SIP の本来の「汎用セッション・プロトコルとしてのSIP」という設計意図からの乖離を生み出している。

このような状況により SIP は、大きなジレンマを抱え込むことを意味している。「汎用セッション・プロトコルとしての SIP」では、特定のアプリケーションに依存しない汎用セッション・プロトコルとしての地位を保ち続けるべきであるが、「シグナリング・プロトコルとしての SIP」では、通信事業者のシステムも含めたシグナリングに必要な機能が拡充が求められるからである。

 

そこで、SIPropプロジェクト は、 SIP が抱えるジレンマをより望ましい形で解決する方策を見出す議論をするためのコミュニティとして、さまざまな活動を行っている。

そのアプローチは概ね2つの方向性に整理することができる。

  1. シグナリング・プロトコルとしての SIP の拡張
    独自の追加規格が乱立している現状を抜本的に解決するためには、通信事業に利害を持たない中立の立場からの提案が有効である。
    既に SIPropプロジェクト は、通信事業者間の SIP による通信の相互接続性を確保を目標に規格提案や実装提供を行っている。
  2. 汎用セッション・プロトコルとしての SIP の拡張
    SIP の汎用セッション・プロトコルとしての特性を堅持するためには、さまざまアプリケーションでのセッション管理の方策を検討し、共通のセッション管理機能を見出して規格化する必要がある。
    SIPropプロジェクト では IP 電話以外の SIP アプリケーションの提案も行う。

以上の2つのアプローチは垂直方向と水平方向の全く異なるベクトルを持っているが、実は相互に密接な関係を持つ。

例えば (1) でIP 電話のために開発された実装の一部は、(2) の新たなアプリケーションの獲得に役立つかもしれない。また逆に (2) の新たなアプリケーション獲得のために考えられた規格は、(1) の相互接続のための設計・実装のヒントになるかもしれない。

 

上記のバイ・ディレクション・アプローチは、SIP の問題解決には有効であり、SIP の利用範囲を拡大に寄与すると考えられる。そして、汎用セッション・プロトコルとしての SIP の拡張こそが、目的である「メディア (通信媒体)の世界を広げる」につながると SIPropプロジェクト は考えており、実践している。

汎用セッション・プロトコルとしての SIP とは

OSI参照モデルの層構造(出典:Wikipediaの「OSI参照モデル」より)

osi_proto.png

  • 第7層 - アプリケーション層
    • 具体的な通信サービス(例えばファイル転送、メール転送、遠隔データベースアクセスなど)を提供。
  • 第6層 - プレゼンテーション層
    • データの表現方法。
  • 第5層 - セッション層
    • 通信プログラム間の通信の開始から終了までの手順。
  • 第4層 - トランスポート層
    • ネットワークの端から端までの通信管理(エラー訂正、再送制御等)。
  • 第3層 - ネットワーク層
    • ネットワークにおける通信経路の選択(ルーティング)。データ中継。

SIPropプロジェクトが考える層構造~

上記のOSI参照モデルに、SIPを適用しようとした場合、下記の構造が想定される。

  • 第5層 - セッション層
    • 通信プログラム間 セッションの通信の開始から終了までの手順。
      • すなわち、SIPネットワークと考えられる。
  • 第4層 - トランスポート層
    • ネットワーク Peer(Node,Resource)の端から端までの通信管理(エラー訂正、再送制御等)。
      • すなわち、P2Pネットワークやオーバーレイネットワークと考えられる。
 
 

これらから、下記のような層構造をSIPropプロジェクトは、考えている。

  • アプリケーション層
    • アプリケーションのための機能を提供する
      • HTTPやFTPなどのアプリケーション用プロトコル
      • NGN+IMSでいうところの「アプリケーション基盤」に相当する。
  • セッション層
    • セッション管理や認証、パーミッションを提供する
      • SIPそのもの
      • NGN+IMSでいうところの「サービス・ストラタム」に相当する。
  • トランスポート層
    • Peerやリソースへのリーチャビリティーを提供する
      • P2Pやオーバーレイネットワーク
      • NGN+IMSでいうところの「トランスポート・ストラタム」に相当する。
  • ネットワーク層
    • ネットワークを提供する
      • 現在のTCPネットワーク
      • NGN+IMSでいうところの「物理レイヤー」に相当する。
 
 

これらの適用例:HTTPの場合

  • アプリケーション層
    • HTTP通信をする
      • 送信先としては、Socket(TCP)ではなく、SIPスタックやSIPropなどのHTTPをSIPでラップするためのアプリを想定している。
  • セッション層
    • HTTPをSIPに載せて、通信をし、認証やパーミッションチェックを行う。
      • SIP-URIベースのSIP IX網ルーティングを想定している。
  • トランスポート層
    • SIPをオーバーレイネットワークに載せて、相手リソースへ、通信を行う。
      • DHTであれば、ハッシュによるリソースへのルーティングを想定している。この層により、リーチャビリティーが確保される。
  • ネットワーク層
    • 現在のTCP/IPネットワークに相当する通信を行う。
      • Socketによる通信を想定している。

参考資料

  • SIPropプロジェクト解説
  • 汎用セッション・プロトコルとしての SIP を考える
  • VoIPと他の世界との橋渡しをするために
    • SIerさん向けの資料
      SIのオプションとしてのVoIPとは?という視点で書いた提案資料のネタとなる資料
      そういう提案書の書かなければならないときに参考になれば。。。
    • 上記をベースにちゃんと体裁を整えてみたサンプル資料
      すでに、受注システムがあるという前提で、それ用のオプションとしてVoiceシステム(CTIシステム)を拡張開発しましょうという提案資料。。。

プロジェクト一覧

プロジェクト分類

シグナリング・プロトコルとしての SIP の拡張を考えたプロジェクト

  • SIPropVer.2.0
    • 世界的に問題となっているVoIP相互接続問題を解決
      • この目的は、下記のプロジェクトに受け継がれている
  • HOTARUプロジェクト
    • SIPropと同様にVoIP相互接続問題を解決(トップダウン方式)
      • 最終的には、誰も利用できるクライアント側のSIPミドルウェア(SIP Stack)となる
      • 汎用セッション・プロトコルとしての SIP用のStackとして使用されることも考えられる
  • SIP IXプロジェクト
    • SIPropの最終目的であるSIP網の形成を目指したプロジェクト
      • SIPパケットのルーティングをするための網となる
      • 汎用セッション・プロトコルとしての SIPをルーティングすることも考えられる

汎用セッション・プロトコルとしての SIP の拡張を考えたプロジェクト

  • 雷電
    • クライアント間マッシュアップ用UA Servletアプリケーションサーバ
      • SIPやHTTPなどセッションやトランスポートに依存せずに、アプリケーションを書く基盤を作る
  • 俺流プロトコル実装入門
    • Web系技術者など普段プロトコルなどを意識する必要のない人に、プロトコルに興味を持ってもらうため
      • 多方面の方々から「汎用セッション・プロトコルとしての SIP」の新しい使い方が提案されることを期待している
  • P2P SIPの実装検討プロジェクト
    • P2P世界にSIPを適用したらどうなるか?を模索するプロジェクト
      • 「汎用セッション・プロトコルとしての SIP」の新しい定義を作成する

プロジェクト推進団体

本家プロジェクト

共同プロジェクト

提携プロジェクト

中の人の意見

noritsunaの主張

名前の由来

  • 読み:しっぷろっぷ
  • 意味:SIP と Interop(Interoperability、相互接続性)の造語
  • ロゴマーク:
    Logo_SIProp.jpg