[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [AVT] Re: What is an RTP Session?
Thanks so much. This is just the kind of helpful info I was
hoping for.
----- Original Message -----
From: "John Lazzaro" <lazzaro@CS.Berkeley.EDU>
To: <avt@ietf.org>
Sent: Monday, October 14, 2002 4:42 PM
Subject: [AVT] Re: What is an RTP Session?
>
> > Mike Taylor" <mtaylor_eng@hotmail.com> writes:
> >
> > Furthermore, does anyone know of any commercial or public domain
> > voice conferencing apps that can create multipoint unicast
> > peer-to-peer conferences?
>
> While its not "voice" conferencing, the GPL'd sfront:
>
> http://www.cs.berkeley.edu/~lazzaro/sa/index.html
>
> does MIDI sessions using multipoint unicast. You can read about the
> details here:
>
> http://www.cs.berkeley.edu/~lazzaro/sa/sfman/user/network/
>
> and download code to play with.
>
> Basically, it works like this:
>
> -- There's a "conference SIP server" (a B2BUA, in practice)
> running at Berkeley, that keeps track of active sessions.
>
> -- When someone joins a session, it sends an SDP describing how
> to send data to itself to the Berkeley SIP server. This SDP
> includes a UDP IP/ports that the sender listens to using
> recvfrom() in a connectionless way, so that it can receive
> DGRAMs from many sources.
>
> -- The Berkeley SIP server distributes the SDP of the new
> session participant to the existing participants (if any),
> which all then start sending RTP and RTCP to the new member.
>
> -- The Berkeley SIP server sends the SDPs of the existing session
> participants to the new participant, which send starts sending
> packets to all of them. Each SDP codes the UDP IP/ports that the
> participant listens on for DGRAMs from any sender.
>
> -- The Berkeley server uses a variant of the NAT-breaking ideas
> for SIP currently working through midcom, to solve the
> problem that the "new session participant" might be behind
> a NAT box. We don't support firewalls -- in practice, about
> 25% of the people who try to demo sfront seem to fail because
> of firewall issues, from my cursory look at our logs, so this
> is a significant shortcoming.
>
> -- Receiver multiplexing is a bit sticky, because by the rules
> of SDP, the hosts need not send UDP from the same IP/ports
> pair its receiving from. Sfront gets around this by assuming
> the sending and receiving IP/ports are the same, and falls
> back on demultiplexing via SSRC (which is explicitly
> discouraged in the RTP RFC, for good reason ...) if this
> assumption is failing.
>
> -- I would recommend NOT to do multipoint in the way sfront
> does, unless you are also willing to run SRTP and authenticate
> every RTP and RTCP packet coming in. By running UDP w/o a
> connect(), literally anyone could send you a UDP packet,
> which could be crafted to exploit bugs in your decoder and
> root your machine, etc. Sfront does this sort of authentication,
> but since it predates SRTP it uses its own method to sign the
> packets.
>
> Some of what I describe about is probably not legal SIP/SDP/RTP usage,
> I tried as hard as I could to stay within the bounds of the RFCs when
> implementing it, though ...
>
> -------------------------------------------------------------------------
> John Lazzaro -- Research Specialist -- CS Division -- EECS -- UC Berkeley
> lazzaro [at] cs [dot] berkeley [dot] edu www.cs.berkeley.edu/~lazzaro
> -------------------------------------------------------------------------
> _______________________________________________
> Audio/Video Transport Working Group
> avt@ietf.org
> https://www1.ietf.org/mailman/listinfo/avt
_______________________________________________
Audio/Video Transport Working Group
avt@ietf.org
https://www1.ietf.org/mailman/listinfo/avt