Hi all,
I'm creating an application that uses SIP as signalling protocol, so I need to wait for the ICE candidates list to be completed to send it to the other client. I am using 2 TURN servers and 1 STUN server, and it has been proven that all of them are needed to work in all networks that I need.
The problem is that Chrome creates an SDP with all the candidates and the result is a big SDP that can be found here
http://d.pr/n/RM17
Between Chrome's everything works great with these big SDPs, but when Firefox receives a big SDP like this, an exception is thrown with this message:
Could not negotiate answer SDP; cause = ERR
SDP Parsing Error: End of line beyond end of buffer.
After some search I found the function sdp_parse where this fails, and it seems that the SDP does not fit in the created buffer.
Also it seems like Firefox SDP parser is limited to a 16bits uint length.
http://people.mozilla.org/~choller/firefox/coverage/mc-coverage-20121101-482d32e2b348/media/webrtc/signaling/src/sipcc/core/sdp/sdp_main.c.gcov.html#894
If I define only the STUN server, the SDP is smaller(with less candidates) and it works with Firefox.
Who's wrong? Does the SDP's have a limit defined in some RFC or is it just an assumption made by Firefox that the SDP will never reach this size?