[jitsi-dev] REST interface and description of remote SSRCs in RTPChannel


#1

The method below (in RTPChannel) sets the values of the remote SSRCs in the channel ColibriConferenceIQ.Channel iq

However, it is called when the REST patches the details of the channel in. At this point I don't think anything has been send by the client. It is the sending of packets by the client that the bridge uses to pick up the SSRCs (rather than the details in the patch itself). Hence when I have traced this it is not setting any values (although I think you can find a -1 in place).

This seems to be the sort of thing that would cause a problem. Am I barking up the right tree?

     @Override
     public void describe(ColibriConferenceIQ.ChannelCommon commonIq)
     {
         ColibriConferenceIQ.Channel iq = (ColibriConferenceIQ.Channel) commonIq;

         // FIXME The attribute rtp-level-relay-type/Channel property
         // rtpLevelRelayType is pretty much the most important given that Jitsi
         // Videobridge implements an RTP-level relay. Unfortunately, we do not
         // currently support switching between the different types of RTP-level
         // relays. The following is a hack/workaround making sure that the
         // attribute/property in question has a value as soon as necessary and
         // before this Channel is made available to the conference focus for
         // consumption.
         iq.setRTPLevelRelayType(getRTPLevelRelayType());

         super.describe(iq);

         iq.setDirection(stream.getDirection());

         iq.setLastN(null);

         long initialLocalSSRC = getInitialLocalSSRC();

         if (initialLocalSSRC != -1)
         {
             SourcePacketExtension source = new SourcePacketExtension();

             source.setSSRC(initialLocalSSRC);
             iq.addSource(source);
         }

         Status.addLog("Setting receiveSSRCS "+Status.doSSRCArray(getReceiveSSRCs()));

         iq.setSSRCs(getReceiveSSRCs());
     }