JSR 32 - JSIP v1.1 Specification
Final Change Log

Author: Phelim O'Doherty (BEA), Ranganathan Mudumbai (NIST)

ACCEPTED CHANGES

General:

Decoupled the transaction layer from the Dialog layer.
Added support for RFC3903 and RFC3581.

Package javax.sip

SipProvider
Updated architecture in SIP Provider on enhanced ListeningPoint/SipProvider Model. Change the 1-to-1 relationship between SipProvider and ListeningPoint, to 1-to-N. 
Deprecated getListeningPoint and replaced with getListeningPoints method.
Deprecated setListeningPoint method with addListeningPoint method.
Added method to getListeningPoint for a specific transport.
Added removeListeningPoint method.
Added getNewDialog method for a specific transaction.
Clarified addListener method.
Added method to enable automatic dialog support.

SipStack
Added new AUTOMATIC_DIALOG_SUPPORT config parameter to the SipStack properties documentation.
Added new FORKABLE_EVENTS config parameter to the SipStack properties documentation.
Added new USE_ROUTER_FOR_ALL_URIS config parameter to the SipStack properties documentation.
Deprecated IP_ADDRESS config parameter in the SipStack properties documentation.
Added createListeningPoint method to SipStack with IP address, Port and Transport.
Deprecated createListeningPoint method with port and transport arguments.
Add start and stop stack methods.

SipListener
Added capability to process IOException, TransactionTerminated, and DialogTerminated events.

SipFactory
Clarified model for stack creation. IPAddress is no longer a mandatory property for stack creation. IP Address should be configured via the enhanced ListeningPoint architecture. Multiple SipStack instances permitted per vendor implementation. For backwards compatibility IP Address configuration properties is still supported.

ListeningPoint
Added new getIPAddress method. Assigning IP Address to the ListeningPoint enables the stack to support multi-homed hosts.
Added new getSentBy and setSentBy methods.

Dialog
Clarified getState method - removed use of term pseudo dialogs and highlighted null.
Deprecated getFirstTransaction method to avoid stack having to track additional state.
Added createReliableProvisionalResponse and sendReliableProvisionalResponse methods.
Added createAck and createPrack methods.
Added terminateOnBye method.

DialogState
Deprecated COMPLETED state.
Added equals and hashcode methods.

TransactionState
Added equals and hashcode methods.

ResponseEvent
Added getDialog method.

RequestEvent
Added getDialog method.

Transaction
Added terminate method.
Added getApplicationData and setApplicationData methods.
Clarified getDialog method behaviour.
Added equal and hashcode methods.

ClientTransaction
Deprecated createAck method.

ServerTransaction
Added enableRetransmissionAlerts method.

New Classes
Added new IOExceptionEvent, DialogTerminatedEvent and TransactionTerminatedEvent.

New Exceptions
DialogDoesNotExistException, ProviderDoesNotExistException and TransportAlreadySupportedException.

Package javax.sip.address

SipURI
Didn't add equals method already overridden in Address.
Allowable null in getUser method.

TelURL
Added setPhoneContext and getPhoneContext methods.

Address
Added hashcode and clone methods.

Router
Updated general description of Router functionality.
Deprecated getNextHops method and replaced with getNextHop method.

Package javax.sip.header

HeaderFactory
Updated createToHeader method to allow null tag parameter.
Added createSIPIfMatchHeader and createSIPETagHeader methods.

Header
Added hashcode method.

ViaHeader
Added getRPort and setRPort methods.

WWWAuthenticateHeader
Deprecated getURI and setURI methods as they don't exist on this header.

TimeStampHeader
Changed time and delay value to long from float.

CseqHeader
Changed sequence value to long from int.

New Headers
SIPETagHeader and SIPIfMatchHeader for RFC 3909

Package javax.sip.message

Message
Added removeFirst, addFirst, removeLast and addLast methods.
Added hashcode method.
Clarified getUnrecognizedHeaders() method behaviour clarified.
Clarified Clone behaviour of message bodies.

MessageFactory
Added createResponse method from a String argument.
Clarified createRequest(String) method behaviour.

Request
Added PUBLISH request type.

Response
Added CONDITIONAL_REQUEST_FAILED response code.
Added equals method to all mandatory headers.

ContactHeader
Added setWildCard and isWilcard methods.
Updated getExpires method.

 

REJECTED CHANGES - Not deemed necessary by Spec leads

 

Package javax.sip

Limit the architecture to have a single SipProvider in the architecture.  Multiple SipProviders were supported in JSIPv1.1 to enable messaging over different transports. This can still be achieved by limiting a single SipProvider in the system and mandating that the SipProvider uses the same transport for sending responses that was used for sending the outbound request.

SipProvider
Add new method getNewClientDialog(Response).
Add new method getNewServerDialog(Response).
Deprecate setListeningPoint() and getListeningPoint() methods
Documentation clarification on refined architecture object model.

Dialog
sendAck() method behaviour clarified.

SipStack
Add new NETWORK_LAYER_PATH property.

Deprecate createSipProvider(ListeningPoint) method.
Add new createSipProvider() method.


Package javax.sip.address

New Classes
Add new interface NetworkLayer.java

 

DEFERRED CHANGES