[VOIPSEC] Interactive Connectivity Establishment (ICE)
Dan Wing
dwing at cisco.com
Tue Nov 15 12:55:42 CST 2005
> Sorry for my not very clear sentence, I will try to explain
> what I wanted to say.
>
> This is the call flow of ICE-05:
Note the current specification is ice-06, but let's talk about
this flow.
> Agent A TURN,STUN Servers Agent B
> |(1) Gather Addresses | |
> |-------------------->| |
> |(2) Offer | |
> |------------------------------------------>|
> | |(3) Gather Addresses |
> | |<--------------------|
> |(4) Answer | |
> |<------------------------------------------|
> |(5) Media | |
> |<------------------------------------------|
> |(6) Media | |
> |------------------------------------------>|
> |(7) STUN Checks | |
> |<------------------------------------------|
> |(8) STUN Checks | |
> |------------------------------------------>|
> |(7) Offer | |
> |------------------------------------------>|
> |(8) Answer | |
> |<------------------------------------------|
> |(9) Media | |
> |<------------------------------------------|
> |(10) Media | |
> |------------------------------------------>|
>
>
> Figure 1
>
> No problem for me about early media : a terminal can send
> RTP/RTCP packets as soon as it knows where to send it.
Ok.
> The problem is call establishment. In the case of agent A can
> receive media at the first try, if agent B doesn't validate
> this try agent A receives media. A new SDP offer/answer is
> done. The media channels are cut for agent A. Then new
> channels are established right. So agent A will see its video
> session broken for a short period (maybe just 1 sec). But for
> video communications, it is not very clean to see that.
>
> So yes, for me the problem comes from RE-INVITE because an
> user doesn't expect cuts. I think RE-INVITE can be used to
> forward a call for example. There is a reason why it is no
> more in the call flow of ICE-06, isn't there ?
Several things need to occur for the problem you're describing
to exhibit itself. And there is a mechanism defined to avoid
the problem if you find the problem exhibiting itself too often
for your liking. The conditions that need to occur are:
1. The re-Invite can only causes a change in the path if there
was more than one viable path between the two endpoints (that
is, more than one a=candidate line was in the offer or in the
answer, and more than one were routable), and;
2. Assuming you did have more than one candidate path, and
assuming that more than one 'worked' (that is, a successful
ICE exchange occured), yes, you could have a more optimal
path selected, and;
3. Assuming that newly-selected path also has different delay
characteristics than the original path, the receiver's jitter
buffer will underrun or overrun.
I believe it's that last case you are describing, but to get
to that point you need the other conditions to be true as
well.
To avoid hitting problem #3, connectivity preconditions
<http://www.ietf.org/internet-drafts/draft-ietf-mmusic-connectivity-precon-0
1.txt>
can be used to ensure ICE connectivity prior to alerting the
end users.
-d
More information about the Voipsec
mailing list