[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Ccrtp-devel] Multicast and TTL - Again

From: Federico Montesino Pouzols
Subject: Re: [Ccrtp-devel] Multicast and TTL - Again
Date: Thu, 14 Sep 2006 16:20:41 +0200 (CEST)
User-agent: SquirrelMail/1.4.5

Hi Tom,

First, yes, you are right setMulticast should be called before calling
setTimeToLive on a socket object. Otherwise, a socket error object is
returned (that should warn about multicast mode not being enabled on
the socket).

Do I supppose it right that RTP packets are being sent with TTL=32?
If so, I think the problem could be sorted out by moving the setMulticastTTL
method (in the RTPSession base classes) to the protected or public
sections. Then, you would just have to do s->setMulticastTTL(32) (or
setMulticastTTL(32) within a derived class). This is a bug that should
be fixed for the next release. Could you confirm if this works for you?

As an alternative to allow for setting multicast parameters of the control
(RTCP) socket, a "getCSO" method could be added, but I think the first
solution is tidier.

On Wed, September 13, 2006 8:45 pm, Tom Anwyll wrote:
> Not sure if anyone is following this thread. Not much
> discussion on this.
> FWIW, here's where I'm at so far:
> I guess no one has ever used ccRTP multicast across
> subnets, becuase as it stands, it does not work. Using
> an RTPSession object (as in the example code), the RTP
> packets TTL field WILL ALWAYS be 1, despite doing a
> getDSO()->setTimeToLive(ttl)call. So, in essence,
> ccRTP multicast is broken outside of the local
> network.
> If you want to do multicast across networks, *I think*
> one must use a SymmetricRTPSession object. The code
> snippet below does set the TTL correctly:
> SymmetricRTPSession* s = new
> SymmetricRTPSession(InetHostAddress(""));
> s->addDestination(InetHostAddress(""),18800);
> s->getDSO()->setMulticast(true);
> s->getDSO()->setTimeToLive(32);
> However, the RTCP packets TTL's are still set to 1, so
> I suppose that RTCP information will never travel
> beyond the local network. I assume RTP will work
> without RTCP.
> If anybody has some advice or good ideas, please feel
> free to chime in.
> Thanks,
> Tom
> --- Tom Anwyll <address@hidden> wrote:
>> Hello RTP Gurus,
>> I am having trouble setting the TTL on a multicast
>> socket. Despite my best efforts, ethereal still
>> shows the TTL field of my packets set to 1.
>> FYI, I'm using ccRTP 1.3.6 and commoncpp 1.3.22
>> code snippet
>> RTPSession* s = new RTPSession(
>> INetHostAddress(""));
>> s->addDestination(
>> InetHostAddress(""),18800);
>> s->getDSO()->setMulticast(true); // <-- This was
>> needed to avoid crash on next line -- not sure if
>> this is right
>> s->getDSO()->setTimeToLive(32);
>> Any ideas about what I am doing wrong or how to set
>> multicast TTL's > 1?
>> TIA,
>> Tom
>> ---------------------------------
>>  All-new Yahoo! Mail - Fire up a more powerful email
>> and get things done faster.>
> _______________________________________________
>> Ccrtp-devel mailing list
>> address@hidden
> __________________________________________________
> Do You Yahoo!?
> Tired of spam?  Yahoo! Mail has the best spam protection around
> _______________________________________________
> Ccrtp-devel mailing list
> address@hidden

reply via email to

[Prev in Thread] Current Thread [Next in Thread]