メインコンテンツまでスキップ

5. SDP 仕様 (SDP Specification)

SDP セッション記述はメディアタイプ「application/sdp」で表されます(第 8 節参照)。

SDP セッション記述は UTF-8 エンコーディングの ISO 10646 文字セットを使用したテキスト形式です。SDP フィールド名と属性名は UTF-8 の US-ASCII サブセットのみを使用しますが、テキストフィールドと属性値は完全な ISO 10646 文字セットを使用できます (MAY)。

SDP 記述フォーマット

SDP セッション記述は複数行のテキストで構成され、フォーマットは以下の通りです。

<type>=<value>

<type> は大文字小文字を区別する 1 文字でなければならず (MUST)、<value><type> によってフォーマットが決まる構造化テキストです。

SDP 記述構造

SDP セッション記述はセッションレベルのセクションと 0 個以上のメディアレベルのセクションで構成されます。必須の行は REQUIRED、オプションの行は OPTIONAL で、すべての行はここに示す順序で現れなければなりません (MUST)。オプション項目は「*」でマークされています。

セッション記述 (Session description):

  • v= (プロトコルバージョン)
  • o= (発信者とセッション識別子)
  • s= (セッション名)
  • i=* (セッション情報)
  • u=* (記述の URI)
  • e=* (電子メールアドレス)
  • p=* (電話番号)
  • c=* (接続情報 - すべてのメディアに含まれる場合は不要)
  • b=* (0 個以上の帯域幅情報行)
  • 1 つ以上の時間記述(「t=」と「r=」行)
  • z=* (タイムゾーン調整)
  • k=* (暗号化キー)
  • a=* (0 個以上のセッション属性行)
  • 0 個以上のメディア記述

時間記述 (Time description):

  • t= (セッションがアクティブな時間)
  • r=* (0 個以上の繰り返し時間)

メディア記述 (Media description, if present):

  • m= (メディア名とトランスポートアドレス)
  • i=* (メディアタイトル)
  • c=* (接続情報 - セッションレベルに含まれる場合はオプション)
  • b=* (0 個以上の帯域幅情報行)
  • k=* (暗号化キー)
  • a=* (0 個以上のメディア属性行)

SDP の例

v=0
o=jdoe 2890844526 2890842807 IN IP4 10.47.16.5
s=SDP Seminar
i=A Seminar on the session description protocol
u=http://www.example.com/seminars/sdp.pdf
[email protected] (Jane Doe)
c=IN IP4 224.2.17.12/127
t=2873397496 2873404696
a=recvonly
m=audio 49170 RTP/AVP 0
m=video 51372 RTP/AVP 99
a=rtpmap:99 h263-1998/90000

サブセクション

5.1 プロトコルバージョン ("v=")

v=0

「v=」フィールドはセッション記述プロトコルのバージョンを示します。本メモはバージョン 0 を定義します。マイナーバージョン番号はありません。

5.2 発信者 ("o=")

o=<username> <sess-id> <sess-version> <nettype> <addrtype> <unicast-address>

「o=」フィールドはセッションの発信者(ユーザー名とユーザーホストのアドレス)、セッション識別子とバージョン番号を示します。

5.3 セッション名 ("s=")

s=<session name>

「s=」フィールドはテキストのセッション名です。各セッション記述には「s=」フィールドが 1 つだけなければなりません (MUST)。

5.4 セッション情報 ("i=")

i=<session description>

「i=」フィールドはセッションに関するテキスト情報を提供します。

5.5 URI ("u=")

u=<uri>

「u=」フィールドはセッションに関する詳細情報への URI を含みます。

5.6 電子メールアドレスと電話番号 ("e=" と "p=")

e=<email-address>
p=<phone-number>

「e=」フィールドは会議を担当する人の電子メールアドレスを含みます。「p=」フィールドは電話番号を含みます。

5.7 接続データ ("c=")

c=<nettype> <addrtype> <connection-address>

「c=」フィールドは接続データに必要な情報を含みます。

5.8 帯域幅 ("b=")

b=<bwtype>:<bandwidth>

「b=」フィールドは推奨されるセッション帯域幅を示します。

5.9 タイミング ("t=")

t=<start-time> <stop-time>

「t=」行はセッションの開始時刻と終了時刻を指定します。

5.10 繰り返し時間 ("r=")

r=<repeat interval> <active duration> <offsets from start-time>

「r=」行は繰り返しセッションの時間を指定します。

5.11 タイムゾーン ("z=")

z=<adjustment time> <offset> <adjustment time> <offset> ...

「z=」行は夏時間やその他のタイムゾーンオフセット変更を補正するためのタイムゾーン調整を指定します。

5.12 暗号化キー ("k=")

k=<method>
k=<method>:<encryption key>

「k=」フィールドは暗号化キーを伝えるために使用されます。

5.13 属性 ("a=")

a=<attribute>
a=<attribute>:<value>

属性は SDP を拡張する主な手段です。属性はセッションレベルまたはメディアレベルで定義できます。

5.14 メディア記述 ("m=")

m=<media> <port> <proto> <fmt> ...

メディア記述は「m=」行から始まり、メディアストリームを記述するのに十分な情報を含みます。


注意: 第 5 章には多くの技術的詳細と ABNF 構文定義が含まれています。完全な仕様については RFC 4566 公式文書 を参照してください。