[Jingle] XEP-0177 Raw UDP Trying/Received messages
paulrw at codian.com
Thu Nov 27 09:53:15 CST 2008
I've seen that there's been some discussion of this previously, in which
I failed to participate, but I feel the need to weigh in with a few
comments, largely against the idea.
Firstly, this is unlike what is done in SIP. RTCP already exists to
provide statistics on whether media is being received, so creating a
further mechanism to do so seems redundant. As has been said
previously, ICE-UDP exists for when we want to be sure that media will
work; Raw-UDP should be a fire-and-forget mechanism.
Secondly, by following the spec a Jingle client will (at best) leak your
IP to anyone on your buddy list, should it be generating a ringing tone
as the RTP to send; at worst will send valid media. I'm opposed to
sending any media at all before the user accepts the Jingle session.
Thirdly, it's not clear what we should do if we don't receive a received
message in response to our trying message. If we're waiting for the
received before sending the session-accept, then the user will click the
"accept call" button, which will do nothing. I'd rather accept the call
when the user requests, and if media isn't working, then this should be
obvious to the users. In cases where we are using Raw-UDP, we probably
expect that failures will be the exception rather than the norm,
otherwise we would be using ICE.
By having it simply as a fire-and-forget, we have three scenarios:
Media works both ways - not a problem.
Media works neither way - both ends realise it's broken. Each client
can display a "no received media" message, so that both users can
clearly see this connection is broken. I'd say this is better than the
caller wondering why the far end is not accepting their call, while the
far end is clicking the "accept call" button and wondering why it's not
Media works one way - potential hilarity as one user thinks the far end
can't see them. But this could also happen if doing the
trying-receiving handshake in half of the cases which would fail without.
Considering then that the full handshake improves only of the scenarios,
making a further worse in my opinion, and requiring the generation and
transmission of media before the receiver has consented to do anything,
I'd rather simplify Raw-UDP, and leave all the complicated stuff to ICE-UDP.
More information about the Jingle