/**
   * Returns the {@link CallJabberImpl} containing a {@link CallPeerJabberImpl} whose corresponding
   * jingle session has the specified jingle <tt>sid</tt>.
   *
   * @param sid the jingle <tt>sid</tt> we're looking for.
   * @return the {@link CallJabberImpl} containing the peer with the specified <tt>sid</tt> or
   *     <tt>null</tt> if we couldn't find one matching it.
   */
  public T findSID(String sid) {
    Iterator<T> calls = getActiveCalls();

    while (calls.hasNext()) {
      T call = calls.next();
      if (call.containsSID(sid)) return call;
    }

    return null;
  }
  /**
   * Returns the {@link CallPeerJabberImpl} whose session-init's ID has the specified IQ
   * <tt>id</tt>.
   *
   * @param id the IQ <tt>id</tt> we're looking for.
   * @return the {@link CallPeerJabberImpl} with the specified <tt>id</tt> or <tt>null</tt> if we
   *     couldn't find one matching it.
   */
  public U findCallPeerBySessInitPacketID(String id) {
    Iterator<T> calls = getActiveCalls();

    while (calls.hasNext()) {
      T call = calls.next();
      U peer = call.getPeerBySessInitPacketID(id);
      if (peer != null) return peer;
    }

    return null;
  }
  /**
   * Returns the {@link CallPeerJabberImpl} whose jingle session has the specified jingle
   * <tt>sid</tt>.
   *
   * @param sid the jingle <tt>sid</tt> we're looking for.
   * @return the {@link CallPeerJabberImpl} with the specified <tt>sid</tt> or <tt>null</tt> if we
   *     couldn't find one matching it.
   */
  public U findCallPeer(String sid) {
    Iterator<T> calls = getActiveCalls();

    while (calls.hasNext()) {
      T call = calls.next();
      U peer = call.getPeer(sid);
      if (peer != null) return peer;
    }

    return null;
  }