One area where OpenWebRTC has not been fully spec compliant is on the completeness of the SDP offers and answers generated by createOffer and createAnswer respectively. This had no consequences if the application followed the recommended model of first applying the offer/answer by setLocal and then fetched the local description from the PeerConnection, because by that time it is complete.

However, this was problematic for those applications that wanted to shave a couple of milliseconds off call set up time, and therefore sent the offer/answer off to the remote end before applying it on the PeerConnection. Since the offer/answer generated lacked certain data, like SSRCs for the MediaStreamTracks, ICE credentials and DTLS fingerprint, the session could not be set up.

With the recent merge of pull request #486 the last piece was added, and anyone wanting to shave some time off set up/session update can happily send off the data generated by createOffer or Answer to the other side without having to wait for the setLocal Primise to resolve.

For the offers and answers we've also recently updated the transport protocol field of the media description, from "RTP/SAVPF" to "UDP/TLS/RTP/SAVPF" to be aligned with specification updates. For a grace period OpenWebRTC will respond with the old protocol string if that is what the other end point uses.

Next we will look into adding mid to the offers/answers as well as RTP and RTCP headers.

Posted
AuthorStefan Håkansson