docs: public void setupListeners() {
  
          JingleMediaListener jingleMediaListener = new JingleMediaListener() {
              @Override
              public void mediaClosed(PayloadType cand) {
              }
  
              @Override
              public void mediaEstablished(PayloadType pt) throws NotConnectedException, InterruptedException {
                  if (isFullyEstablished()) {
                      Jingle jout = new Jingle(JingleActionEnum.SESSION_ACCEPT);
  
                      // Build up a response packet from each media manager.
                      for (ContentNegotiator contentNegotiator : contentNegotiators) {
                          if (contentNegotiator.getNegotiatorState() == JingleNegotiatorState.SUCCEEDED)
                              jout.addContent(contentNegotiator.getJingleContent());
                      }
                      // Send the "accept" and wait for the ACK
                      addExpectedId(jout.getStanzaId());
                      sendStanza(jout);
  
                      // triggerSessionEstablished();
  
                  }
              }
          };
  
          JingleTransportListener jingleTransportListener = new JingleTransportListener() {
  
              @Override
              public void transportEstablished(TransportCandidate local, TransportCandidate remote) throws NotConnectedException, InterruptedException {
                  if (isFullyEstablished()) {
                  // CHECKSTYLE:OFF
                      // Indicate that this session is active.
                      setSessionState(JingleSessionStateActive.getInstance());
  
                      for (ContentNegotiator contentNegotiator : contentNegotiators) {
                  // CHECKSTYLE:ON
                          if (contentNegotiator.getNegotiatorState() == JingleNegotiatorState.SUCCEEDED)
                              contentNegotiator.triggerContentEstablished();
                      }
  
                      if (getSessionState().equals(JingleSessionStatePending.getInstance())) {
  
                          Jingle jout = new Jingle(JingleActionEnum.SESSION_ACCEPT);
  
                          // Build up a response packet from each media manager.
                          for (ContentNegotiator contentNegotiator : contentNegotiators) {
                              if (contentNegotiator.getNegotiatorState() == JingleNegotiatorState.SUCCEEDED)
                                  jout.addContent(contentNegotiator.getJingleContent());
                          }
                          // Send the "accept" and wait for the ACK
                          addExpectedId(jout.getStanzaId());
                          sendStanza(jout);
                      }
                  }
              }
  
              @Override
              public void transportClosed(TransportCandidate cand) {
              }
  
              @Override
              public void transportClosedOnError(XMPPException e) {
              }
          };
  
          addMediaListener(jingleMediaListener);
          addTransportListener(jingleTransportListener);
      }