onvif / specs

ONVIF Network Interface Specifications
Other
325 stars 87 forks source link

Support ICE for RTSP #439

Open sirzooro opened 1 month ago

sirzooro commented 1 month ago

RFC 7825 defines ICE support for RTSP 2.0. Out of the box it not compatible with RTSP 1.0 - "This extension mechanism was not possible in RTSP 1.0 as it would break RTSP 1.0 syntax and cause compatibility issues.". It looks that problem is with enhanced Transport header syntax from RTSP 2.0, so RTSP 1.0 clients would not be able to parse it correctly. However this extension also requires to use feature tags setup.ice-d-m and setup.rtp.rtcp.mux. It seems safe to send DESCRIBE with Supported: setup.ice-d-m, setup.rtp.rtcp.mux header to check if server supports it. Servers which do not support it should respond with 551 Option Not Supported. Some poorly implemented servers may ignore this header, so second check is required - verify that returned SDP contains a=rtsp-ice-d-m attribute. Support for RTCP mux can be checked in a similar way - in second step look for a=rtcp-mux attribute in SDP. When these checks will succeed, client could assume that server will support RTSP 2.0 Transport syntax and ICE feature.

Note: client and server should still use Transport header in RTSP 1.0 way. The points is to support new ABNF syntax, and recognize new RTP profiles (e.g. RTP/AVP/D-ICE) and few new Transport attributes: ICE-ufrag, ICE-Password, candidates, RTCP-mux.

HansBusch commented 2 weeks ago

ONVIF supports RTSP 1.0 and not 2.0. As ONVIF now supports ICE for WebRTC please refer to that specification.

sirzooro commented 2 weeks ago

Yes, I know this. But I would like to have ICE for RTSP. I presented proposal how it could be added to RTSP 1.0.

HansBusch commented 5 days ago

In case your company is Full or Contributing member please feel free to make a concrete proposal. Otherwise we will close this as won't address.