All Downloads are FREE. Search and download functionalities are using the official Maven repository.

sip.ResponseEvent Maven / Gradle / Ivy

/**
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 * Unpublished - rights reserved under the Copyright Laws of the United States.
 * Copyright ? 2003 Sun Microsystems, Inc. All rights reserved.
 * Copyright ? 2005 BEA Systems, Inc. All rights reserved.
 *
 * Use is subject to license terms.
 *
 * This distribution may include materials developed by third parties.
 *
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 *
 * Module Name   : JSIP Specification
 * File Name     : ResponseEvent.java
 * Author        : Phelim O'Doherty
 *
 *  HISTORY
 *  Version   Date      Author              Comments
 *  1.1     08/10/2002  Phelim O'Doherty    Initial version
 *  1.2     12/15/2004  M. Ranganathan      Added getDialog method
 *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 */
package javax.sip;

import java.util.*;
import javax.sip.message.Response;

/**
 * This class represents a Response event that is passed from a SipProvider to
 * its SipListener. This specification handles the passing of Response messages
 * to the application with the event model. An application (SipListener)
 * registers with the SIP protocol stack (SipProvider) and listens for Response
 * events from the SipProvider.
 * 

* This specification defines a single Response event object to handle all * Response messages. The Response event encapsulates the Response message * that can be retrieved from {@link javax.sip.ResponseEvent#getResponse()}. * Therefore the event type of a Response event can be determined as follows: *

* eventType == ResponseEvent.getResponse().getStatusCode(); *

* A Response event also encapsulates the client transaction upon which the * Response is correlated, i.e. the client transaction of the Request * message upon which this is a Response. *

* ResponseEvent contains the following elements: *

    *
  • source - the source of the event i.e. the SipProvider sending the * ResponseEvent. *
  • clientTransaction - the client transaction this ResponseEvent is * associated with. *
  • Response - the Response message received on the SipProvider * that needs passed to the application encapsulated in a ResponseEvent. *
* * @author BEA Systems, NIST * @version 1.2 */ public class ResponseEvent extends EventObject { /** * Constructs a ResponseEvent encapsulating the Response that has been received * by the underlying SipProvider. This ResponseEvent once created is passed to * {@link SipListener#processResponse(ResponseEvent)} method of the SipListener * for application processing. * * @param source - the source of ResponseEvent i.e. the SipProvider * @param clientTransaction - client transaction upon which * this Response was sent * @param response - the Response message received by the SipProvider */ public ResponseEvent(Object source, ClientTransaction clientTransaction, Dialog dialog, Response response) { super(source); m_response = response; m_transaction = clientTransaction; m_dialog = dialog; } /** * Gets the client transaction associated with this ResponseEvent * * @return client transaction associated with this ResponseEvent */ public ClientTransaction getClientTransaction(){ return m_transaction; } /** * Gets the Response message encapsulated in this ResponseEvent. * * @return the response associated with this ResponseEvent. */ public Response getResponse() { return m_response; } /** * Gets the Dialog associated with the event or null if no dialog exists. * This method separates transaction support from dialog support. This * enables application developers to access the dialog associated to this * event without having to query the transaction associated to the event. * For example the transaction associated with the event may return 'null' * because the final response for the transaction has already been received * and the stack has no more record of the transaction. This situation can * occur when a UAC sends requests out through a forking proxy. Responses * that all refer to the same transaction may be sent by the targets of the * fork but each response may be stamped with a different To tag, thus * referring to different Dialogs on the UAC. The first final response * terminates the transaction but the UAC may want to create a Dialog on * a subsequent response. * * @return the dialog associated with the response event or null if there is no dialog. * @since v1.2 */ public Dialog getDialog() { return m_dialog; } // internal variables private Response m_response; private ClientTransaction m_transaction; private Dialog m_dialog; }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy