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

8.4 Putting a Unicast Media Stream on Hold (ユニキャストメディアストリームのホールド)

8.4 Putting a Unicast Media Stream on Hold (ユニキャストメディアストリームのホールド)

通話の一方が相手を "on hold (ホールド)" に置きたい, すなわち 1 本以上のユニキャストメディアストリームの送信を一時的に止めるよう求める場合, その当事者は相手に更新 SDP を Offer する。

ホールドに置くストリームが以前 sendrecv メディアストリームであった場合, sendonly とマークしてホールドに置く。ホールドに置くストリームが以前 recvonly メディアストリームであった場合, inactive とマークしてホールドに置く。

これは, ストリームが各方向について別々に "ホールド" に置かれることを意味する。各ストリームは独立してホールドに置かれる。ホールド中のストリームに対する Offer を受信した者は, 対応するストリームを Answer でも自動的にホールドにしてはならない。すべてのストリームがホールドにある SDP を held SDP (ホールド済み SDP) と呼ぶ。

一部の第三者呼制御 (third party call control) シナリオでは, アンサラが held SDP に held SDP で応答すると動作しない。

通常, ユーザーがホールドを "押す" と, エージェントは SDP 内のすべてのストリームの方向を sendonly とする Offer を生成し, ローカルでもミュートして, 遠端へメディアを送らず, 再生もしない。

RFC 2543 [10] は, ユーザをホールドに置くには接続アドレスを 0.0.0.0 に設定すると規定していた。通話のホールドへの使用はもはや推奨されない。ホールドされたストリームで RTCP を使えず, IPv6 で動作せず, 接続指向メディアを壊すからである。ただし, オファラが特定のメディアストリームと形式を使いたいが Offer 時点ではアドレスとポートが分からない初期 Offer では有用である。もちろん用いる場合, ポート番号はゼロにしてはならない, ゼロはストリームが無効化されたことを意味する。エージェントは接続アドレスが 0.0.0.0 の SDP を受信できなければならない, その場合ピアへ RTP も RTCP も送ってはならない。