Change-Log for JAIN SIP v1.1
General
- Introduced the javax.sip package structure.
Package javax.sip
- Added Timeout Class defining two types of timeouts, RETRANSMIT and
TRANSACTION.
- Deleted SipEvent and defined granularity into the RequestEvent, ResponseEvent
and TimeoutEvent.
- Mandated single SipListener in the system.
- Added new ObjectInUseException to replace UnableToDeleteProviderException
- Moved Parameters interface to javax.sip.header package.
- Replaced SIPParseException with java.text.ParseException.
- Deleted SipListenerAlreadyRegisteredException, SipListenerNotRegisteredException,
UnableToDeleteProviderException and SipParseException.
- Added ClientTransaction and ServerTransaction objects.
- Changed transaction identifier from long to ClientTransaction and ServerTransaction
objects.
- Added Dialogue object.
- Removed incorrect use of IllegalArgumentException.
- Change TransportUnavailableException to TransportNotSupportedException.
- Added Router object that shows configuration of default route and outbound
proxy.
- Defined properties format for static SipStack configuration.
- Added TransactionAlreadyExistsException.
ListeningPoint.java
- Supported TLS over TCP and SCTP transport in Listening Point class.
- Deleted the DEFAULT_PORT constant and replaced with the PORT_5060 and
PORT_5061 constants.
SipProvider.java
- Added setListeningPoint method to SipProvider class.
- Added TransactionDoesNotExistException on sendRequest and sendResponse
methods.
- Added getNewServerTransaction(Request) and getNewClientTransaction(Request).
- Changed SipException to IdHeaderNotAvailableExcetpion on the getCallIdHeader
method on SipProvider.
- SipListenerAlreadyRegisteredException and SipListenerNotRegisteredException
use on the SipProvider interface now return silently.
- Moved send sendBye(long transactionId, boolean isServerTransaction)
from Provider to Dialogue.
- Deleted extraneous methods on SipProvider, namely:
- public long sendAck(long clientTransactionId, String body, String
bodyType, String bodySubType)
- public long sendAck(long clientTransactionId, byte[] body, String
bodyType, String bodySubType)
- public void sendResponse(long serverTransactionId, int statusCode,
byte[] body, String bodyType, String bodySubType)
- public void sendResponse(long serverTransactionId, int statusCode,
String body, String bodyType, String bodySubType)
- public void sendResponse(long serverTransactionId, int statusCode)
- public Request getTransactionRequest(long transactionId, boolean
isServerTransaction)
- public Response getTransactionResponse(long transactionId, boolean
isServerTransaction)
SipStack.java
- Added create and delete methods for ListeningPoints.
- Replaced UnableToDeleteProviderException with ObjectInUseException
on deleteProvider method.
- Added getIPAddress method.
- Added getRetransmissionFilter utility for User Agents.
- Added getRouter method.
- Deleted setStackName method.
SipFactory.java
- Updated to ensure only one instance of a SipStack per IP Address.
- Updated to ensure only one instance MessageFactory, HeaderFactory and
AddressFactory is ever returned by the SipFactory.
- Added resetFactory method to switch between implementations from different
vendors.
- Removed SipException of createSipStack on the SipFactory as it is never
thrown.
- Added properties argument to createSipStack and defined expected values
of properties object.
SipListener.java
- Deleted processTimeout, processRequest and processResponse with generic
SipEvent argument and replaced with finer grained Event mechanism.
Package javax.sip.address
- Deleted SipURL.
- Added TelURL interface.
- Added SipURI inteface.
- Renamed get/setAddress to get/setURI in NameAddress.
- Removed explicit clone method on NameAddress.
- Deleted removeDisplayName and hasDisplayName on NameAddress.
- Removed SipParseException of setDisplayName method of NameAddress.
- Renamed NameAddress to Address.
- Removed SipParseException of createNameAddress method on AddressFactory.
- Deleted createSipURL(InetAddress host), createSipURL(String host),
createSipURL(String user, InetAddress host),
createSipURL(String user, String host) on the AddressFactory.
- Added createAddress(String address), createTelURL(String phoneNumber) and
createSipURI(String user, String host) on the AddressFactory.
Package javax.sip.header
- Added TooManyHopsException to Header package.
- Changed exception on decrementMaxForwards method in MaxForwardsHeader to TooManyHopsException.
Added Headers
- Added the following new RFC3261 Headers - AuthenticationInfoHeader,
CallInfoHeader, ContentDispositionHeader, ContentLanguageHeader, ErrorInfoHeader,
InReplyToHeader, MimeVersionHeader, MinExpiresHeader, SupportHeader.
- Added ReasonHeader which is an ExtensionHeader to support RFC3326.
- Added RAckHeader and RSeqHeader which are Extension headers to support
RFC3262.
- Added AllowEventsHeader, EventHeader and SubscriptionState which are
extension headers to support RFC3265.
- Added PathHeader which is an extension header to support draft-willis-sip-path-08.txt.
Deleted Headers
- EncodingHeader
- EncryptionHeader
- EndpointHeader
- HideHeader
- NameAddressHeader
- OptionTagHeader
- ProductHeader
- ResponseKeyHeader
- SecurityHeader.
HeaderFactory.java
- Added create methods for AlertInfo, AuthenticationInfoHeader, CallInfoHeader,
ContentDispositionHeader, ErrorInfoHeader, InReplyTo, MimeVersion, ReplyTo.
- Added create methods for extension RFC's, AllowEventsHeader, EventHeader,
PathHeader, RAckHeader, RSeqHeader, ReasonHeader, SubscriptionStateHeader.
- Deleted createDateHeader(String date), createEncryptionHeader(String
scheme), createExpiresHeader(String date), createExpiresHeader(Date date),
createHeader(String name, String value), createHideHeader(String hide), createResponseKeyHeader(String
scheme), createRetryAfterHeader(String date), createRetryAfterHeader(Date
date), createViaHeader(String host, int port, String transport), createViaHeader(String
host), createViaHeader(int port, String host), createViaHeader(InetAddress
host), createViaHeader(int port, InetAddress host), createViaHeader(URI uri),
createViaHeader(String host, String transport).
New Utility classes
- HeaderAddress
- Encoding
- OptionTag
- Parameters
Deleted methods in Headers
- hasQValue and removeQValue in AcceptHeader.
- hasQValue and removeQValue in AcceptLanguageHeader.
- getMethod and setMethod in Allow Header and replaced with methods
handling an Iterator.
- get/set/has/removeAction, get/set/has/removeComment, getExpiresAsDate,
getExpiresAsDeltaSeconds, setExpires(Date expiryDate), has/removeQValue,
has/removeExpires, set/isWildcard, ACTION_PROXY and ACTION_REDIRECT in ContactHeader.
- setDate(String date), get/setDate(Date date) in DateHeader.
- getEncoding and setEncoding in Encoding Header and replaced with methods
handling an Iterator.
- getValue and setValue in Header.
- getDeltaSeconds, setDeltaSeconds and isDate in ExpiresHeader.
- get/setValue in Header.
- remove/hasDelay in TimestampHeader.
- get/set/has/removeComment and has/removeDuration in RetryAfterHeader.
- get/set/set/has/removeMaddr, get/set/set/has/removeHost, get/set/has/removePort,
get/set/has/removeComment, get/setProtocolVersion, get/setTransport, get/set/has/removeTTL,
has/removeReceived, has/removeBranch, setReceived(InetAddress received), set/isHidden,
UDP and TCP in ViaHeader.
- get/setAgent in WarningHeader.
Added methods in Headers
- Added getAlertInfo and setAlertInfo in AlertInfoHeader.
- Added get/set RetryAfter attribute to RetryAfterHeader.
- Added getAuthenticationInfo and setAuthenticationInfo in AuthenticationInfoHeader.
- Added digest, realm, username and response accessors to AuthorizationHeader.
Exceptions
- Removed SIPParseException of setSequenceNumber in CSeqHeader.
- Throw ParseException on setParameter in ParametersHeader.
- Removed IllegalArgumentException in EncodingHeader.
- Changed SIPParseException to InvalidArgumentException on setContentLength
in ContentLengthHeader.
- Changed SIPParseException to InvalidArgumentException on setMaxForward
in MaxForwardsHeader.
- Changed SIPException to IllegalAccessException on decrementMaxForward
in MaxForwardsHeader.
Inheritance
- ExpiresHeader no longer extends DateHeader, inherets directly from
Header.
- ProxyRequireHeader now extends RequireHeader as opposed to OptionTagHeader.
- RetryAfterHeader no longer extends ExpiresHeader.
Data types
- Changed SequenceNumber from long to int in CSeqHeader.
- Changed duration from long to int in RetryAfterHeader.
- Changed date from Date to Calender in DateHeader.
Package javax.sip.message
Request.java
- Deleted all header accessor methods, use those defined in Message.
- Added INFO method as defined in RFC2976.
- Added PRACK method as defined in RFC3262.
- Added SUBSCRIBE and NOTIFY as defined in RFC3265.
- Added UPDATE method as defined in RFC3311.
- Added MESSAGE method as defined in RFC3428.
Response.java
- Deleted all header accessor methods, use those defined in Message.
- Added 183 Session Progress, 413 Request Entity Too Large, 414 Request
URI Too Long, 416 Unsupported URI Scheme, 421 Extension Required, 423 Interval
Too Brief, 480 Temporarily Unavailable, 481 Call/Transaction Does Not Exist,
487 Request Terminated, 488 Not Acceptable Here, 491 Request Pending, 493
Undecipherable, 500 Server Internal Error, 504 Server Time-out, 505 Version
Not Supported, 513 Message Too Large.
- Deleted 303 See Other, 409 Conflict, 411 Length Rquired, 413 Entity
Too Large, 414 Request URI Too Large, 480 Temporarily Not Available, 481
Call Leg/Transaction Does Not Exist, 500 Internal Server Error, 504 Gateway
Time-out, 505 SIP Version Not Supported.
- Added 202 Accepted and 489 Bad Event as defined in RFC3265.
Message.java
- Deleted set/getEncrytionHeader on Message.
- Deleted createViaHeader(InetAddress host, int port, String transport)
and createViaHeader(InetAddress host, String transport).
- Added createViaHeader(SipURI sipURI).
- Added the mandatory MaxForwardsHeader with the set/get accessor methods.
- Made ViaHeader mandatory, hence deleted hasViaHeaders(), removeViaHeaders()
methods.
- Deleted isRequest(), hasBody(), hasHeaders(), hasHeaders(String headerName),
setHeaders(String headerName, List headers), setHeader(Header header, boolean
first), getHeader(String headerName, boolean first), addHeader(Header header,
boolean top), addHeaders(String headerName, List headers, boolean top), removeHeaders(String
headerName), (String headerName, boolean first), getBodyAsBytes(), setBody(ContentTypeHeader
contentTypeHeader, String body).
- Deleted all optional specific Header accessor methods and replced with
generic mechanism to acces optional headers.
- Added getHeader(String headerName), addHeader(Header header), removeHeader(String
headerName), setHeaders(List headers), getContent, getRawContent, setContent(Object
body, ContentTypeHeader contentTypeHeader), getContentDisposition(), setContentDisposition(ContentDisposition
contentDisposition).
- Changed HeaderIterator to ListIterator
MessageFactory.java
- Added createCancelRequest(Request) method.
- Added createCancelRequest(Request) method.