ブラウザにおけるWebRTCのロードマップ

Chrome/Firefox/EdgeのWebRTCアップデート情報のまとめ．

# API実装状況

各ブラウザにおける実装状況は次を参照．(@gtk2さん作)

[WebRTC Object Member](https://webrtccheck.firebaseapp.com/)

# Chrome

`◯:デフォルト △:オプション/flag`
(A):Android，(i):iOS

## M47-M51

| 項目     | M47 | M48 | M49 | M50 | M51 |備考 |
|:---    |:---:|:---:|:---:|:---:|:---:|:---|
| gUM HTTPS化                                       | ◯ |    |    |    |    |  |
| Proxy handling                                    | △ |    |    |    |    | LANアドレスの情報隠蔽 |
| MediaDevices.enumerateDevices()                   | ◯ |    |    |    |    |  |
| MediaStream recording API                         | △ |    | ◯ |    |    |  |
| RTC Event log                                     | △ |    | ◯ |    |    | WebRTCの診断用ログ |
| Audio output device selection                     | ◯ |    |    |    |    |  |
| ECDSA                                             | △ |    |    | ◯ |    |  |
| VP9                                               |    | ◯ |    |    |    |  |
| H.264                                             |    |    |    | △ |    | フラグで設定切り替え |
| 音声付きスクリーン共有                            |    |    |    | △ |    |  |
| PeerConnection offer/Answerのエラーハンドラ強制化 |    |    |    | ○ |    | エラーハンドラの設定が必須 |
| 受信側で複数種類のコーデックをサポート            |    |    |    | ○ |    |  |
| 帯域推定の改善                                    |    |    |    | ○ |    | メッシュ接続での帯域推定を改善 |
| Opus v1.1.2                                       |    |    |    | ○ |    |  |
| Audio Screen Share                                |    |    |    |    | ◯ |  |
| Canvas CaptureStream                              |    |    |    |    | ◯ |  |
| FirefoxとのH.264相互接続性の向上                  |    |    |    |    | ◯ |  |

## M52-M56

| 項目                                                 | M52 | M53 | M54 | M55 | M56 |備考 |
|:---                                                  |:---:|:---:|:---:|:---:|:---:|:---|
| H.264(デスクトップ)                                  |  ○ |     |     |     |     |    |
| RTCCertificateのIndexedDBによる永続化                |  ○ |     |     |     |     |    |
| コマンドラインスイッチによるAECチューニングのテスト  |  ○ |     |     |     |     |    |
| Opus可変フレームサイズ対応                           |  ○ |     |     |     |     |    |
| Camera2 API support on Android                       |     | ○  |     |     |     |    |
| getUserMedia() Promise                               |     | ○  |     |     |     |  |
| 複数のPeerConnectionのログを同時に記録               |     |     |  ○ |     |     |  |
| Opus 1.1.3                                           |     |     |  ○ |     |     |  |
| New screen share picker UI                           |     |     |  ○ |     |     |  |
| UDPポートの範囲設定                                  |     |     |  ○ |     |     | 組織の管理者がUDPポートの範囲を制限できる |
| iOSのビデオパフォーマンスの改善                      |     |     |  ○ |     |     |  |
| ICE restart時に新しいufragでSTUN bindig request      |     |     |  ○ |     |     |  |
| (A,i)AppRTCMobileへリネーム                          |     |     |     | ○  |     |  |
| (A)スクリーンキャプチャ                              |     |     |     | △  |     |  |
| (i)ビデオの縦横切替                                  |     |     |     | ○  |     |  |
| (A)Camera2での自動フォーカス，videoの安定化          |     |     |     | ○  |     |  |
| 送信側での帯域推定                                   |     |     |     | ○  |     | RTCP拡張 |
| ビデオの定期的な統計情報の取得                       |     |     |     | ○  |     |  |
| End-to-Endの遅延を統計情報に記録                     |     |     |     | ○  |     |  |
| 利用者が存在しない場合のスクリーンキャプチャ一時停止 |     |     |     | ○  |     |  |
| H.264 profile-level-idのチェック                     |     |     |     | ○  |     |  |
| Vendor prefix削除(RTCPeerConnection)                 |     |     |     |     | ○  | 旧名webkitRTCPeerConnection |
| RTCPeerConnection.getStats Promise                   |     |     |     |     | ○  |  |
| RED/RTXバグ回避策の削除                              |     |     |     |     | ○  | デフォルトSDPを利用する場合，影響なし． |
| RTCPeerConnection.getStats Promise                   |     |     |     |     | ○  |  |
| H.264 Hardware encode(>Windows 8.1)                  |     |     |     |     | ○  |  |
| MediaStreamTrack.getSources削除                      |     |     |     |     | ○  |  |
| (A)非推奨のカメラ一覧取得メソッドの削除              |     |     |     |     | ○  | *C-1 |
| 残響エコーキャンセラ                                 |     |     |     |     | ○  |  |
| H.264 level-idc negotiation                          |     |     |     |     | ○  | level-asymmetry-allowedのパラメータに応じてlevelを変える |
| (A)H.264 Hardware encode/decode                      |     |     |     |     | ○  |  |
| (A)onCameraDisconnected                              |     |     |     |     | ○  |  |
| (i)キャプチャしたビデオ解像度の変更                  |     |     |     |     | ○  |  |
| (A)スクリーンシェア                                  |     |     |     |     | ○  |  |

*C-1 getDeviceNames, getDeviceCount, getDeviceName(index), getNameOfFrontFacingDevice, getNameOfBackFacingDevice

## M57-M61

| 項目                                                 | M57 | M58 | M59 | M60 | M61 |備考 |
|:---                                                  |:---:|:---:|:---:|:---:|:---:|:---|
| RTCRtpMuxPolicyを"require"へ変更                     |  ○ |     |     |     |     | 既存は"negotiate"．下位互換性を維持する場合は"negotiate"と明示する． |
| getUserMediaのエラー判定の変更                       |  ○ |     |     |     |     | audio capture deviceへのアクセスが出来たかを元に変定する |
| 既存のVoiceEngine API(VoE APIs)の廃止                |  ○ |     |     |     |     | 今後のアップデートでAPIが削除．   |
| 統計にエコー検出を追加                               |  ○ |     |     |     |     | chrome://webrtc-internalsで有効化  |
| H.264 HWエンコードのサポート(Mac)                    |  ○ |     |     |     |     |    |
| DTMFで複数のビットレートをサポート                   |  ○ |     |     |     |     |    |
| (A)H.264 HWエンコードのサポート(Chrome)              |  ○ |     |     |     |     |    |
| (A)Full HD，4k サポート                              |  ○ |     |     |     |     |    |
| (A)独自メトリクスの実装を許可                        |  ○ |     |     |     |     |    |
| (i)最大ビットレートの設定                            |  ○ |     |     |     |     |    |
| (i)Bluetoothサポート                                 |  △ |     |     |     |     | A2DPは未サポート   |
| (i)videoの画面回転                                   |  ○ |     |     |     |     |    |
| Promise-based RTCPeerConnection.getStats()           |     | ○  |     |     |     |    |
| Opus 120ms encoding                                  |     | ○  |     |     |     | 120ms周期のエンコーディングでオーバヘッドを削減  |
| RTCPeerConnection.setConfiguration()                 |     | ○  |     |     |     |    |
| 認証付きHTTPプロキシのサポート                       |     | ○  |     |     |     |    |
| (A)WebRTC Android Library (.aar)の生成               |     | ○  |     |     |     | Android Studio projectでWebRTCをサポート |
| VP9 HWエンコードのサポート                           |     | ○  |     |     |     |    |
| Video jitter buffer処理の変更                        |     | ○  |     |     |     |    |
| 音声出力のデバッグ録音                               |     | ○  |     |     |     |    |

# Firefox

`◯:デフォルト △:オプション/flag`

## 40-45

| 項目     | 40   | 41 | 42   | 43  | 44 | 45  | 備考 |
|:---      |:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---|
| ALPN対応                             | ◯ |   |  |    |  |  |  |  |  | |  |
| Perfect Forward Security(PSA)       |   | ◯ |   |   |  |  |  |  |  | |  |
| IPv6                                |   | ◯ |   |   |  |  |  |  |  | |  |
| Control Ice candidate generation    |   | ◯ |   |   |  |  |  |  |  | |  LANアドレスの隠蔽 |
| ExtentionのOffer/Answer拒否設定       |   | ◯ |   |   |  |  |  |  |  | |  |
| H.264                               |   | ◯ |   |   |  |  |  |  |  | |  |
| ICE-TCP                             |   | ◯ |   |   |  |  |  |  |  | |  |
| Canvas MediaStream                  |   | △ |   | ◯ |  |  |  |  |  | |  |
| MediaStreamTrack.applyConstraints   |   |   |   | ◯ |  |  |  |  |  | |  カメラ解像度の変更 |
| スクリーン共有マルチモニタ対応             |   |   |   | △ |  |  |  |  |  | |  共有スクリーンを選択 |
| RTCPeerConnection canTrickleIceCandidates |  |   |   |  | ◯ |  |  |  |  | | リモートのTrickleICE対応可否を判定 |
| DataChannel-bufferedAmountLow event |   |   |   |   | ◯ |  |  |  |  | | DataChannelバッファ溢れの監視 |
| Vendor prefix削除(PeerConnection)    |   |   |   |   | ◯ |  |  |  |  | | gUMはFF36で削除済み |
| 音声32KHz対応                        |   |   |   |   | ◯ |  |  |   | |  | | 
| MediaStream.addTrack()/removeTrack()|   |   |   |   | ◯ |  |  |   | |  | | 
| Canvas MediaStream(Mobile)          |   |   |   |   | ◯ |  |  |   | |  | | 
| MediaRecorder API                   |   |   |   |   | ◯ |  |  |  | |  | | 
| スクリーン共有でgUMの解像度指定           |   |   |   |   | ◯ |  |  |  | |  | | 
| Delay-Agnostic AEC                  |   |   |   |   |   | △ |  |  | |  | | 
| 周期波形のWebAudio対応                |   |   |   |   |   | ◯ |  |  | |  | | 
| 音声パフォーマンスの改善                 |   |   |   |   |   | ◯ |  |  | |  | | 

## 46-50

| 項目                                            | 46  | 47  | 48  | 49  | 50 | 備考 |
|:---                                             |:---:|:---:|:---:|:---:|:---:|:---|
| Delay-Agnostic AEC                              |     |     | ○ |  |  |遅延時間非依存のエコーキャンセラ|
| VP9                                             | △  |     |   |  |  | テスト中．->51で対応 |
| Simulcast                                       | ○ |   |  |  |  |         |
| パルス音源の全二重サポート(Linux)                     | ◯ |   |  |  |  |     |
| リモートTrack単位でRTCRtpReceiver追加               | ◯  |     |   |   |   | |
| gUMでエコーキャンセラのON/OFF指定                     | ◯ |   |  |  |  | 
| WebRTCセッションの履歴クリア                          |   | ◯ | |  |  |about:webrtcのセッション履歴のクリア|
| RTCRtpSender.setParameters Promise              |   | ◯ |  |  | ||
| RTCRtpEncodingParameters.scaleResolutionDownBy  |   | ◯ |  | | | 解像度縮小(Simulcast/RtpSender) |
| マルチプロセスモード(e10s)でのJumbo frame動作の許可     |  | ◯  |  |  | |  |
| モノラルOpusのサポート                               |  | ◯  |  |  | | 
| IPv6における高負荷状態の改善                         |  | ◯  |  |  | | 
| 音声全二重モードのデフォルト化                         |  |  | △ | ○ |  |Windowsは49でサポート|
| ICE restart/update                              |  |  | ○ |   | | IPアドレス変更や，インターフェスのダウンに伴う再ネゴシエーションのサポート |
| MediaStreamとMediaStreamTrackの複製               |  |  | ○ |  |  | *F-1 | 
| MediaRecoder API@Androidソフトウェアコーデック対応      |  |  | ○ |  | | |
| JabraヘッドセットとLogitech C920の音声歪み修正         |  |  | ○ |  | | |
| MediaStream.getTrackById()                      |  |  |   | ○ | | |
| gUM(cam+mic)で取得に失敗したソース以外はgUMを継続      |  |  |   | ○ |  | |
| ontrackとonaddstreamの発火条件見直し               |  |  |   | ○ |  | | 
| SDPネゴシエーション中のa=inactive有効化               |  |  |   | ○ |  | | 
| RTCPeerConnection.addTrackで任意のストリームを追加    |  |  |   | ○ |  | | 
| 'b=TIAS'による帯域制限有効化                        |  |  |   | ○ |  | | 
|  REMBデフォルト化                                  |  |  |   | ○ |  | | 
| OSXでのAVFoundation対応                          |  |  |   | ○ |  | | 
| ICE consent freshness                           |  |  |   | ○ |  | | 
| 全Constraintsが渡されたとき，ダウン/アップサンプリング無効化 |  |  |   | ○ |  | | 
| mochitestsを使った，NAT・TURNのテスト自動化             |  |  |   | ○ |  | | 
| Win7での高ビットレート時の送受信パケットロス事象修正        |  |  |   | ○ |  | | 
| mochitestsを使ったNAT・TURNのテスト自動化             |  |  |   | ○ |  | | 
| TMMBRデフォルト化                                  |  |  |   | ○ |  | 送信側に最大メディアストリームビットレートを要求する| 
| MediaStream.onaddtrack()                        |  |  |   |   | ○ | webrtc-pcのSDP再ネゴやvideo, audioの変化で発生 | 
| MediaStreamTrack.readyState/onended             |  |  |   |   | ○ | | 
| MediaStreamAudioSourceNodeのGCバグ修正            |  |  |   |   | ○ | | 
| バックグラウンドスレッドによる再生位置とリスナのスケジュール最適化|  |  |   |   | ○ | | 
| IIR filterへ新しいIIRFilterNodeの追加              |  |  |   |   | ○ | | 
| 新しい仕様の音声フィルタの追加                         |  |  |   |   | ○ | | 
| SDP再ネゴでrecvonlyとした後にビデオが描画されない問題の修正 |  |  |   |   | ○ | | 
| Delay-Agnostic AEC                              |  |  |   |   | ○ | Chrome M51からのフィードバック | 
| MediaStreamTrack.getConstraints() + getSettings()|  |  |   |   | ○ | | 
| H.264 codecのPacketization mode修正              |  |  |   |   | ○ | | 
| FEC                                             |  |  |   |   | △ | FF51で正式対応 | 
| SDP m-line変更(UDP/TLS/RTP/SAVPF)               |   |  |    |  |  |  |   |  | |JSEP仕様変更 |

*F-1：[Changing Firefox MediaStreams to accommodate cloning](http://blog.telenor.io/webrtc/2016/04/29/webrtc-cloning-in-firefox.html)

## 51-55

| 項目                                                   | 51  | 52  | 53  | 54  | 55  | 備考 |
|:---                                                    |:---:|:---:|:---:|:---:|:---:|:---  |
| VP9                                                    | ○  |     |     |     |     | Offer/AnswerでVP9と明示する必要あり．明示しない場合はH.264． |
| 自ホストが持つIPアドレス，ルーティング通知の制御       | ○  |     |     |     |     | *F-2   |
| VP9                                                    | ○  |     |     |     |     |      |
| RTCPeerConnection.removeStreamの削除                   | ○  |     |     |     |     |      |
| NAT <-> symmetric NATでの単体テスト                    | ○  |     |     |     |     |      |
| mediaDevices.ondevicechange                            | △  | ○  |     |     |     | Macは51で対応．WindowsとLinuxは52． |
| NACK有効時にH.264用FECの送信を無効化                   | ○  |     |     |     |     |      |
| Screenシェアリング許可設定のダイアログ化               |     | ○  |     |     |     | 以前の事前登録制ホワイトリストは無効化 |
| DTMFサポート                                           |     | ○  |     |     |     | ダイアルトーン |
| SDP再ネゴ/トラック置き換えによる解像度低下バグ修正     |     | ○  |     |     |     |      |
| ICE切断状態の検出サポート                              |     | ○  |     |     |     |      |
| MediaStreamsのアクティブ/非アクティブ，停止操作の追加  |     | ○  |     |     |     |      |
| SetValueCurveAtTimeイベント計算時に線形補間を実行      |     | ○  |     |     |     | ConstantSourceNodeによる波形合成に利用 |
| ConstantSourceNode                                     |     | ○  |     |     |     |      |
| 同一解像度で複数のFPSを表現する能力を追加              |     | ○  |     |     |     |      |
| webrtc.org stable branch 49へのアップデート            |     |     | ○  |     |     |      |
| libvpx 1.6.1へのアップデート                           |     |     | ○  |     |     | VP8/VP9 code SDK |
| TRUN/TLSサポート                                       |     |     | ○  |     |     |      |
| MediaRecorderのパフォーマンス改善(30FPS対応)           |     |     | ○  |     |     |      |
| (A)音声全二重サポート                                  |     |     | △  | ○  |     | 54で全OSが音声二重をサポート     |
| SDP再ネゴシエーションで帯域幅を再設定                  |     |     | ○  |     |     |      |
| RTCStatsTypeの項目名の仕様準拠                         |     |     | ○  |     |     | ハイフン(-)のヌケを修正 |
| プロファイラ項目の追加(Canvas frame capturing)         |     |     | ○  |     |     |      |
| canvasのビデオストリームにタイムスタンプ付与           |     |     | ○  |     |     |      |
| 有効なICE TCPが同一のsrc portが失敗すると落ちてしまう  |     |     | ○  |     |     |      |
| REDで誤り検出訂正を未使用時に"empty" fmtpを出力しない  |     |     | ○  |     |     |      |
| ICE TCP有効化                                          |     |     |     |  ○  |     | media.peerconnection.ice.tcp |
| Citrix audioデバイス再オープン失敗でハングアップしない |     |     |     |  ○  |     |  |
| Nightlyでスクリーンシェアリングプレビューの正常表示    |     |     |     |  ○  |     |  |
| RTP toffset, abs-time, 3gpp:video-orientation          |     |     |     |  ○  |     | RTPの拡張機能群．abs-time *F-3 |
| ログ機構の置き換え(PRLogModuleInfo -> LazyLogModule)  |     |     |     |  ○  |     |  |

*F-2 [WebRTC IP Address Handling Requirements](https://tools.ietf.org/html/draft-ietf-rtcweb-ip-handling-02)
*F-3 [abs-send-time](https://webrtc.org/experiments/rtp-hdrext/abs-send-time/)

# Edge

実装済みに近い順からステータスを列挙すると次の通り．

```
S:  Supported
Pb: Preview build
Id: In development
Uc: Under consideration
D:  Deprecated
NP: Not currently planned
```

## 実装状況

| 項目                                                   | Status | 備考 |
|:---                                                    |:------:|:---  |
| VP9 Video Playback                                     | S      |      |
| ORTC                                                   | S      |      |
| WebSocket                                              | S      |      |
| Web Speech API (synthesis)                             | S      | 音声合成 |
| WebSocket                                              | S      |      |
| abs-send-time                                          | Pb     |      |
| Google Receiver Estimated Maximum Bitrate(goog-remb)   | Pb     |      |
| PLI,  Generic NACK feedback messages                   | Pb     | RFC 4585 |
| RTP Retransmission                                     | Pb     | RFC 4588 |
| H.264/AVC                                              | Pb     |      |
| VP8                                                    | Pb     |      |
| WebRTC v1.0 API                                        | Pb     |      |
| packetization-mode = 1                                 | Pb     | RFC 7742 |
| Web Speech API(input)                                  | Id     |      |
| DataChannel                                            | Uc     |      |

# 参考資料

## Chrome
- [Chromeリリーススケジュール](https://www.chromium.org/developers/calendar)
- [WebRTC Conference Japan 2016のGoogle発表資料](https://docs.google.com/presentation/d/1Z44qq92kMnqweDoqiPw1ro84TdTVeCiwFrmIy8N_pKI/edit#slide=id.g1193d3ae62_2_73)
- [Kranky Geek WebRTC 2015 - What's next for WebRTC?](http://www.slideshare.net/webrtclive/kranky-geek-google-team)
- [Implement an audio output device API for the web](https://bugs.chromium.org/p/chromium/issues/detail?id=438023)
- [How to get a WebRTC Diagnostic Recording from Chrome 49+](http://www.tokbox.com/blog/how-to-get-a-webrtc-diagnostic-recording-from-chrome-49/)
- [M47 release note](https://developers.google.com/web/updates/2015/10/chrome-47-webrtc)
- [M48 release note](https://groups.google.com/forum/#!topic/discuss-webrtc/_5hL0HeBeEA)
- [M49 release note](https://groups.google.com/forum/#!topic/discuss-webrtc/mcApW-3YADI)
- [M50 release note](https://groups.google.com/forum/#!topic/discuss-webrtc/JuXLl5BJoJE/discussion)
- [M51 release note](https://groups.google.com/forum/#!topic/discuss-webrtc/GdsmhrVaxdU)
- [M52 release note](https://groups.google.com/forum/#!msg/discuss-webrtc/bDfxOA8XiJI/R6QOrQDMBgAJ)
- [M53 release note](https://groups.google.com/forum/#!msg/discuss-webrtc/ism_KD14rzc/ZqnoEANVBQAJ)
- [M54 release note](https://groups.google.com/forum/#!searchin/discuss-webrtc/M54%7Csort:relevance/discuss-webrtc/S5yex8rNIjA/aTU3ycFdAwAJ)
- [M55 release note](https://groups.google.com/forum/#!topic/discuss-webrtc/BqqFMSR6s1E)
- [M56 release note](https://groups.google.com/forum/#!topic/discuss-webrtc/DyeVS9IMTLc)
- [M57 release note](https://groups.google.com/forum/#!topic/discuss-webrtc/xXjeKbW_JYI)
- [M58 release note](https://groups.google.com/forum/#!topic/discuss-webrtc/13BE3fbHcLU)
- [M59 release note](https://groups.google.com/forum/#!topic/discuss-webrtc/ogPObezLpHw)
- [PSA: WebRTC M60 Release Notes](https://groups.google.com/forum/#!topic/discuss-webrtc/iw3c5xYXOUw)
- [PSA: WebRTC M61 Release Notes](https://groups.google.com/forum/#!msg/discuss-webrtc/8gJyg8EFPdo/OxUdyMjXBwAJ)

## Firefox
- [Media/WebRTC](https://wiki.mozilla.org/Media/WebRTC)
- [Firefox releases](https://www.mozilla.org/en-US/firefox/releases/)
- [Media/WebRTC/ReleaseNotes/43 - MozillaWiki](https://wiki.mozilla.org/Media/WebRTC/ReleaseNotes/43)
- [Media/WebRTC/ReleaseNotes/44 - MozillaWiki](https://wiki.mozilla.org/Media/WebRTC/ReleaseNotes/44)
- [Media/WebRTC/ReleaseNotes/45 - MozillaWiki](https://wiki.mozilla.org/Media/WebRTC/ReleaseNotes/45)
- [Media/WebRTC/ReleaseNotes/46 - MozillaWiki](https://wiki.mozilla.org/Media/WebRTC/ReleaseNotes/46)
- [Media/WebRTC/ReleaseNotes/47 - MozillaWiki](https://wiki.mozilla.org/Media/WebRTC/ReleaseNotes/47)
- [Media/WebRTC/ReleaseNotes/48 - MozillaWiki](https://wiki.mozilla.org/Media/WebRTC/ReleaseNotes/48)
- [Media/WebRTC/ReleaseNotes/49 - MozillaWiki](https://wiki.mozilla.org/Media/WebRTC/ReleaseNotes/49)
- [Media/WebRTC/ReleaseNotes/50 - MozillaWiki](https://wiki.mozilla.org/Media/WebRTC/ReleaseNotes/50)
- [Media/WebRTC/ReleaseNotes/51 - MozillaWiki](https://wiki.mozilla.org/Media/WebRTC/ReleaseNotes/51)
- [Media/WebRTC/ReleaseNotes/52 - MozillaWiki](https://wiki.mozilla.org/Media/WebRTC/ReleaseNotes/52)
- [Media/WebRTC/ReleaseNotes/53 - MozillaWiki](https://wiki.mozilla.org/Media/WebRTC/ReleaseNotes/53)
- [Media/WebRTC/ReleaseNotes/54 - MozillaWiki](https://wiki.mozilla.org/Media/WebRTC/ReleaseNotes/54)
- [Media/WebRTC/ReleaseNotes/55 \- MozillaWiki](https://wiki.mozilla.org/Media/WebRTC/ReleaseNotes/55)

## Edge
- [Platform status](https://developer.microsoft.com/en-us/microsoft-edge/platform/status/)
- [Edge ORTC/WebRTC Q&A](http://internaut.com:8080/~baboba/iit-tutorial/slides/edge.pdf)
- [MicrosoftEdge/Status](https://github.com/MicrosoftEdge/Status)
- [API Catalog](https://developer.microsoft.com/en-us/microsoft-edge/platform/catalog/)
- [Introducing WebRTC 1.0 and interoperable real-time communications in Microsoft Edge](https://blogs.windows.com/msedgedev/2017/01/31/introducing-webrtc-microsoft-edge/#G7bkZUJT12owiLsq.97)

## Safari
- [Safari 11\.0](https://developer.apple.com/library/content/releasenotes/General/WhatsNewInSafari/Safari_11_0/Safari_11_0.html)
- [Announcing WebRTC and Media Capture \| WebKit](https://webkit.org/blog/7726/announcing-webrtc-and-media-capture/)
- [A Closer Look Into WebRTC \| WebKit](https://webkit.org/blog/7763/a-closer-look-into-webrtc/)
- [Safari Technology Preview 32, with WebRTC, is Now Available \| WebKit](https://webkit.org/blog/7627/safari-technology-preview-32/)
- [Release Notes for Safari Technology Preview 33 \| WebKit](https://webkit.org/blog/7751/safari-technology-preview-33/)
- [Release Notes for Safari Technology Preview 34 \| WebKit](https://webkit.org/blog/7760/release-notes-for-safari-technology-preview-34/)
- [Release Notes for Safari Technology Preview 35 \| WebKit](https://webkit.org/blog/7786/release-notes-for-safari-technology-preview-35/)
- [Release Notes for Safari Technology Preview 36 \| WebKit](https://webkit.org/blog/7833/release-notes-for-safari-technology-preview-36/)