code: public void joinRtpSession() {
          if (!this.joined.get()) {
              // Schedule first RTCP packet
              long t = this.statistics.rtcpInterval(this.initial.get());
              this.tn = this.statistics.getCurrentTime() + t;
              scheduleRtcp(this.tn, RtcpPacketType.RTCP_REPORT);
  
              // Start SSRC timeout timer
              this.ssrcTaskFuture = this.scheduler.scheduleWithFixedDelay(ssrcTask, SSRC_TASK_DELAY, SSRC_TASK_DELAY, TimeUnit.MILLISECONDS);
              this.joined.set(true);
          }
      }
docs: Upon joining the session, the participant initializes tp to 0, tc to 0, senders to 0, pmembers to 1, members to 1,
  we_sent to false, rtcp_bw to the specified fraction of the session bandwidth, initial to true, and avg_rtcp_size to the
  probable size of the first RTCP packet that the application will later construct.
  
  The calculated interval T is then computed, and the first packet is scheduled for time tn = T. This means that a
  transmission timer is set which expires at time T. Note that an application MAY use any desired approach for implementing
  this timer.
  
  The participant adds its own SSRC to the member table.