- SIPでSDPを交換してセッションを確立する
- SDPにはIPアドレスやUDPのポートが記載される
- それはだいたいRTPが前提になってる
- RTPを使うならRTCPも使うことになる
- そのRTCP用のIPとポートをどう決めるか
- SDPでそれを指定することで確実性をもたせたい
- RTCPに使われるポートを記載することで解決したい
a=rtcp
属性- オプションで
nettype
などがつくことも
- オプションで
- 例
a=rtcp:53020
a=rtcp:53020 IN IP4 126.16.64.4
a=rtcp:53020 IN IP6 2001:2345:6789:ABCD:EF01:2345:6789:ABCD
- メディアレベル限定
- この属性は有用なのかについての議論
- ポートが正しいものなのか確認できるのか?
- 既存の属性で定義できないか?など
- ポート番号をどのように確定するか
- RTP/RTCPにそれぞれポートを割り振る
- STUNサーバーにそこからメッセージを送る
- レスポンスに含まれるポートを使う
- メディアの送信に複数のポートを使っている場合
m=video 49170/2 RTP/AVP 31
- RTP: 49170, RTCP: 49171
- RTP: 49172, RTCP: 49173
- ただ実情として使われていない
- RTPのポートは
m=
行に記載されている- RTCPのポートもそこに書くほうがいろいろと楽では?
- 最初はそう検討していたが、冗長であるし、後方互換性が重要
- この行が理解されないと、RTPまで送ることができなくなる
- それは避けるべきだった
- 新しい属性の場合は、理解できないならそれだけ無視すればいい
- この属性はRFC3489のSTUNとあわせて使うことを想定
- そのため、一般的な問題もある
- RFC3424
- その解決策が将来的に出てくるかも
- RTP/RTCPのポート番号のペアを取得できる明示的なプロトコルとか
- IPv6が一般的になるとか
- セキュリティに関する懸念は、SDPに関するものと同様
- SDPの属性として
a=rtcp
を追加- メディアレベル限定