VoIPシグナリング技術 SIP編 SDP RFC2347 RFC3261

2007.05.22 Author: hoge


SIPネタです!!!

近年、IP電話等が広く普及してきた中でその知名度を上昇さえたプロトコルが、
SIP(Session Initiation Protocol)である。
IETFによって、各種プロトコルと同様にSIPも当然ながら標準化されている。
旧来からの技術として、H.323という多機能シグナリングプロトコルも存在するが、
SIPは、より純粋にインターネットでの利用を目的として作られている。

[SIPの特徴]

1,プロトコル構造が非常に単純に出来ており、テキストベースでの動作である。
 実装も容易に出来て消費リソースも少ない。
2,既存のインターネットサービスとの相性が非常に良い。
 これは、SIP自体がセッション確立、変更、終了を行うが、
 セッション内容には一切関知しない事が理由としてあげられる。
 つまり、他既存技術との親和性が非常に良いのだ。
3,通常の電話でも広く普及している保留、転送、コールウェイティングといった、
 各種のサービスを広く提供が可能である。
4,プレゼンスサーバやその機能有無にも大きく依存するのだが、
相手URIが判明していれば、在籍状況といったプレゼンス機能の提供も可能である。
5,IM機能として、ショートメッセージをリアルタイムでの送受信を実現する。
 但し、構成や回線、採用機器によってはある程度の作り込みが必要である。

まずは、セッション開始の為に必要な"SDP"の内容を参考までに記述します。
SDPは、マルチメディアセッション記述で使用され、
SIP接続開始やSIP以外の接続開始などの宣言を実施します。

[SDP記述例]


v=0
O=sito 9501050 9501060 IN IP4 202.222.28.XX
s=SDP Tomo Creative
i=SDP Tomo Creative session protocol
u=htp://www.tomo.ne.jp/XX/sito/sdp.01.ps
e=XX@tomo.ne.jp
c=IN IP4 224.2.10.2/127
t=2873397496 2873404696
a=recvonly
m=audio 50000 RTP/AVP 0
m=video 50100 RTP/AVP 48
m=application 44563 udp XX

以上の構文は、都合により一部有り得ない記述としております。



[SDP記述方式]


Session Description
v= (protocol version)
o= (owner/creator and session identifier)
s= (session name)
i=* (session information)
u=* (URI of description)
e=* (email address)
p=* (phone number)
c=* (connection information-not required if included in all media)
b=* (bandwidth information)
One or more time descriptions
z=* (time zone adjustments)
k=* (encryption key)
a=* (zero or more session attribute lines)
Zero or more media descriptions
Time description
t= (time the session is active)
r=* (zero or more repeat times)
Media description
m= (media name and transport address)
i=* (media title)
c=* (connection information-optional if included at session-level)
k=* (encryption key)
a=* (zero or more media attribute lines)

RFCより引用