8.3.2 Changing the Set of Media Formats (メディア形式集合の変更)
8.3.2 Changing the Set of Media Formats (メディア形式集合の変更)
セッションで用いるメディア形式のリストは変更してもよい。そのためには, オファラは m= 行の形式リストが前回の SDP の対応するメディアストリームと異なる新しいメディア記述を作成する。このリストには新しい形式を含めてもよく, 前回の SDP にあった形式を削除してもよい。ただし RTP の場合, セッション存続期間中, 特定の dynamic payload type (動的ペイロードタイプ) 番号からそのメディアストリーム内の特定コーデックへの対応を変更してはならない。例えば, A が Offer で G.711 を動的ペイロードタイプ 46 に割り当てた場合, そのセッション内の当該メディアストリームについて, 以後の Offer または Answer でもペイロードタイプ 46 は G.711 を指さなければならない。ただし, 複数のペイロードタイプ番号を同一コーデックに対応付けることは許容されるため, 更新 Offer で G.711 にペイロードタイプ 72 を用いることもできる。
SDP のシグナリング交換とメディアストリームとの間の同期が緩いため, マッピングはセッション全体を通じ固定されたままでなければならない。
Answer 内の対応するメディアストリームは第 6 節に述べるとおり構成され, メディア形式の変更をもたらすこともある。同様に第 6 節に述べるとおり, アンサラは Answer を送信し次第, Offer にあり Answer にも存在する形式のいずれかを用いてメディアの送信を開始しなければならない, (ストリームが送信を許す場合) Offer に列挙され Answer にも列挙された最も優先度の高い形式を用いるべきであり, ピアの前回の SDP にあったとしても Offer にない形式では送信してはならない。同様に, オファラが Answer を受信したとき, Answer にある形式のいずれかを用いて送信を開始しなければならない, (ストリームが送信を許す場合) 最も優先度の高いものを用いるべきであり, ピアの前回の SDP にあったとしても Answer にない形式では送信してはならない。
エージェントが (前回の SDP にあったにもかかわらず Offer または Answer に列挙しないことで) メディア形式の使用をやめた場合でも, しばらくの間はその形式でのメディア受信の準備が必要となる。いつその準備をやめてよいかをどう知るか。知る必要がある場合, 三つの手法がある。第一に, 形式変更に加えてポートを変更する。新ポートにメディアが到着したとき, ピアが旧形式での送信をやめたことが分かり, その形式での受信準備をやめてよい。この方法はメディア形式に依存しない利点がある。ただし, ポート変更はリソース予約の変更やセキュリティプロトコルの再鍵化を要することがある。第二に, あるコーデックを捨てるときに, すべてのコーデックについてまったく新しい動的ペイロードタイプ集合を用いる。新しいペイロードタイプのいずれかでメディアを受信したとき, ピアが旧形式での送信をやめたことが分かる。この方法は予約やセキュリティコンテキストには影響しないが RTP 特有であり, ごく小さなペイロードタイプ空間を浪費する。第三に, タイマーを用いる。ピアからの SDP を受信したときタイマーを設定し, 発火したら旧形式での受信準備をやめてよい。1 分は通常十分に余裕がある。場合によってはエージェントは気にせず, 常に旧形式の受信準備を続けてもよい。その場合は何もする必要はない。
もちろん, Offer されたストリームが拒否された場合, オファラは拒否を受信し次第, 新しい形式を用いた受信準備をやめてよい。