001: /**
002: * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
003: * Unpublished - rights reserved under the Copyright Laws of the United States.
004: * Copyright © 2003 Sun Microsystems, Inc. All rights reserved.
005: * Copyright © 2005 BEA Systems, Inc. All rights reserved.
006: *
007: * Use is subject to license terms.
008: *
009: * This distribution may include materials developed by third parties.
010: *
011: * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
012: *
013: * Module Name : JSIP Specification
014: * File Name : ListeningPoint.java
015: * Author : Phelim O'Doherty
016: *
017: * HISTORY
018: * Version Date Author Comments
019: * 1.1 08/10/2002 Phelim O'Doherty
020: *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
021: */package javax.sip;
022:
023: import java.io.*;
024: import java.text.ParseException;
025:
026: /**
027: * This interface represents a unique IP network listening point,
028: * which consists of port transport and IP. A ListeningPoint is a Java
029: * representation of the socket that a SipProvider messaging entity uses to send
030: * and receive messages.
031: * <p>
032: * The ListeningPoint also includes an optional sent-by string parameter.
033: * If set, this string will be placed in the sent-by parameter of the
034: * top most Via header of outgoing requests.
035: *
036: * @author BEA Systems, NIST
037: * @version 1.2
038: */
039:
040: public interface ListeningPoint extends Cloneable, Serializable {
041:
042: /**
043: * Gets the port of the ListeningPoint. The default port of a ListeningPoint
044: * is dependent on the scheme and transport. For example:
045: * <ul>
046: * <li>The default port is 5060, if the transport UDP and the scheme is
047: * <i>sip:</i>.
048: * <li>The default port is 5060, if the transport is TCP and the scheme
049: * is <i>sip:</i>.
050: * <li>The default port is 5060, if the transport is SCTP and the scheme
051: * is <i>sip:</i>.
052: * <li>The default port is 5061, if the transport is TLS over TCP and the
053: * scheme is <i>sip:</i>.
054: * <li>The default port is 5061, if the transport is TCP and the scheme
055: * is <i>sips:</i>.
056: * </ul>
057: *
058: * @return the integer value of the port.
059: */
060: public int getPort();
061:
062: /**
063: * Gets the transport of the ListeningPoint.
064: *
065: * @return the string value of the transport.
066: */
067: public String getTransport();
068:
069: /**
070: * Gets the IP of the ListeningPoint.
071: *
072: * @since v1.2
073: * @return the string value of the IP address.
074: */
075: public String getIPAddress();
076:
077: /**
078: * Sets the sentBy string for this ListeningPoint. The sentBy String is
079: * placed in the top most Via header of outgoing requests. This parameter
080: * is optional and if it is not set, the top most Via header will use the
081: * IP address and port assigned to the listening point for the sentBy field.
082: *
083: * @param sentBy the sentBy string to be set in requests top most Via
084: * headers.
085: * @throws ParseException which signals that an error has been reached
086: * unexpectedly while parsing the sentBy value.
087: * @since v1.2
088: */
089: public void setSentBy(String sentBy) throws ParseException;
090:
091: /**
092: * Gets the sentBy attribute of the ListeningPoint.
093: *
094: * @return the string value of the sentBy attribute.
095: * @since v1.2
096: */
097: public String getSentBy();
098:
099: /**
100: * This method indicates whether the specified object is equal to this
101: * Listening Point. The specified object is equal to this ListeningPoint
102: * if the specified object is a ListeningPoint and the transport and port
103: * in the specified Listening Point is the same as this Listening Point.
104: *
105: * @param obj the object with which to compare this ListeningPoint.
106: * @return true if this ListeningPoint is "equal to" the obj argument;
107: * false otherwise.
108: */
109: public boolean equals(Object obj);
110:
111: //Constants
112:
113: /**
114: * Transport constant: TCP
115: */
116: public static final String TCP = "TCP";
117:
118: /**
119: * Transport constant: UDP
120: */
121: public static final String UDP = "UDP";
122:
123: /**
124: * Transport constant: SCTP
125: *
126: */
127: public static final String SCTP = "SCTP";
128:
129: /**
130: * Transport constant: TLS over TCP
131: */
132: public static final String TLS = "TLS";
133:
134: /**
135: * Port Constant: Default port 5060. This constant should only be used
136: * when the transport of the ListeningPoint is set to UDP, TCP or SCTP.
137: */
138: public static final int PORT_5060 = 5060;
139:
140: /**
141: * Port Constant: Default port 5061. This constant should only be used
142: * when the transport of the Listening Point is set to TLS over TCP or TCP
143: * assuming the scheme is "sips".
144: */
145: public static final int PORT_5061 = 5061;
146:
147: }
|