時々WebRTCの処理を書こうとしては毎回大まかな流れ忘れて調べるところから始めるのがそろそろ無駄に思えてきたので

Vanilla ICE

0.

A:Offerを作成する側

B:Answer返す側

A

1.RTCPeerConnectionにチャンネル追加する(映像、音声、dataChannelどれでもいいから一つ)

2.1の操作後に発火するonnegotiationneededでcreateOfferしてsetLocalDescriptionする

3.onicecandidateで流れてくる、e.candidateがnullの場合それが最後なのでこの時点でのLocalDescriptionをBへ送る(TrickleICEなら2の時点から送信開始)

B

4.受け取ったものをsetRemoteDescriptionする、createAnswerしてsetLocalDescriptionすればonicecandidateに流れてくるのでAと同様に待つ

5.Bは全部集めたらLocalDescriptionをAに送る

A

6.受け取ったものをsetRemoteDescriptionする、ここからAとBで接続の試行が始まる。