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 公式文書 を参照してください。