src/net/java/sip/communicator/impl/protocol/sip/CallPeerMediaHandlerSipImpl.java
/**
     * Parses and handles the specified <tt>SessionDescription offer</tt> and
     * returns and SDP answer representing the current state of this media
     * handler. This method MUST only be called when <tt>offer</tt> is the
     * first session description that this <tt>MediaHandler</tt> is seeing.
     *
     * @param offer the offer that we'd like to parse, handle and get an SDP
     * answer for.
     * @return the SDP answer reflecting the current state of this
     * <tt>MediaHandler</tt>
     *
     * @throws OperationFailedException if we have a problem satisfying the
     * description received in <tt>offer</tt> (e.g. failed to open a device or
     * initialize a stream ...).
     * @throws IllegalArgumentException if there's a problem with
     * <tt>offer</tt>'s format or semantics.
     */
Parses and handles the specified SessionDescription offer and
returns and SDP answer representing the current state of this media
handler. This method MUST only be called when offer is the
first session description that this MediaHandler is seeing.

@param offer the offer that we'd like to parse, handle and get an SDP
answer for.
@return the SDP answer reflecting the current state of this
MediaHandler

@throws OperationFailedException if we have a problem satisfying the
description received in offer .
@throws IllegalArgumentException if there's a problem with
offer's format or semantics.
Parses and handles the specified SessionDescription offer and returns and SDP answer representing the current state of this media handler . This method MUST only be called when offer is the first session description that this MediaHandler is seeing . @param offer the offer that we ' d like to parse handle and get an SDP answer for . @return the SDP answer reflecting the current state of this MediaHandler @throws OperationFailedException if we have a problem satisfying the description received in offer . @throws IllegalArgumentException if there ' s a problem with offer ' s format or semantics .
private SessionDescription processFirstOffer(SessionDescription offer)
        throws OperationFailedException,
               IllegalArgumentException
    {
        Vector<MediaDescription> answerDescriptions
            = createMediaDescriptionsForAnswer(offer);
        SessionDescription answer
            = SdpUtils.createSessionDescription(
                    getTransportManager().getLastUsedLocalHost(),
                    getUserName(),
                    answerDescriptions);
        this.localSess = answer;
        return localSess;
    }
private SessionDescription processFirstOffer ( SessionDescription offer ) throws OperationFailedException , IllegalArgumentException { Vector < MediaDescription > answerDescriptions = createMediaDescriptionsForAnswer ( offer ) ; SessionDescription answer = SdpUtils . createSessionDescription ( getTransportManager ( ) . getLastUsedLocalHost ( ) , getUserName ( ) , answerDescriptions ) ; this . localSess = answer ; return localSess ; }
Parses and handles the specified <tt>SessionDescription offer</tt> and
 returns and SDP answer representing the current state of this media
 handler.
Parses and handles the specified <tt > SessionDescription offer< / tt > and returns and SDP answer representing the current state of this media handler .
//wrap everything up in a session description