1.1.0.41

  • Fixed a race between SipSession invalidation and incoming mid-dialog requests that could sometimes cause server transactions to leak without a final response. (#1290178)

  • Ensure that headers added to an outgoing CANCEL are retained. (#1991104)

1.1.0.40

  • Ensure that CANCELs arriving before their respective INVITEs have finished processing are handled correctly. (#380144)

  • Removed unnecessary "no servlet found" alarm, which could be raised in some edge cases with no way to automatically clear it. (#340625)

  • Fixed bug in the SIP Transactions stats "ctOK" counter, which was being incremented too often in some cases. (#379218)

1.1.0.39

  • Fixed deadlock that could occur when invalidating a Proxy’s SipSession while the Proxy is processing an error response. (SIPSERV-353)

1.1.0.38

  • Ensure that CANCELs are cloned when passing to the next application instance, so that headers and attributes are not changed inadvertently. (SIPSERV-352)

1.1.0.37

  • Fixed handling of CANCEL between application instances, where the CANCEL could potentially be dropped due to looking up the wrong state for the corresponding INVITE. (SIPSERV-350)

1.1.0.36

  • Fixed parsing error when handling semicolons in URI user parts. (SIPSERV-348)

    Note

    This fix removes the previous behaviour of escaping special characters in a URI string before parsing the whole URI. This was specified in SIP Servlet javadoc (e.g. SipFactory.createURI()), but this violates RFC2396 which states that URIs are always in their escaped form. This may cause URI strings in application configuration or source code to be rejected if they contain unescaped special characters. Such URI strings are invalid and must be correctly escaped.

1.1.0.35

  • Updated javassist version to handle application libraries packaged as multi-release jars. (SIPSERV-345)

1.1.0.34

  • Fixed parsing of P-Access-Network-Info headers to handle extension parameters in either RFC 7315 or RFC 7913 form. (SIP-546)

  • Fixed encoding of comments in User-Agent, Server and Retry-After headers. (SIP-568)

  • Removed redundant map of outgoing INVITE requests. (SIPSERV-344)

1.1.0.33

  • Fixed check when sending INVITE/2xx responses while a SipSession has unacknowledged reliable responses containing SDP. SipSession was incorrectly rejecting non-INVITE 2xx responses when in this state. (SIPSERV-342)

1.1.0.32

  • Ensure that outgoing CANCEL requests use the same transport and target address as the INVITE request being cancelled. (SIPSERV-340)

1.1.0.31

  • Fixed servlet application classloader so that classes from WEB-INF/classes and WEB-INF/lib take priority. (SIPSERV-338)

  • Ensure that any remaining transaction and cancel handling state is cleaned up when a SipSession becomes invalidated. (SIPSERV-339)

1.1.0.30

  • Correctly handle responses for dialog-terminating NOTIFY and BYE requests that overlap. Ensure the SipSession activity does not end until all responses have been sent/received. (SIPSERV-337)

1.1.0.29

  • Fixed a tracing issue where values received from the network could inadvertently be used inside format strings, causing runtime formatting exceptions when tracing enabled. (SIPSERV-336)

1.1.0.28

  • Fixed session leak due to terminating NOTIFY requests not being detected correctly in some cases. (SIPSERV-335)

1.1.0.27

  • Fixed B2buaHelper.getLinkedSession() to not throw an exception when the parent session’s linked session no longer exists. Return null instead. (SIPSERV-332)

  • Don’t log unnecessary warnings for late events. (SIPSERV-333)

  • If a late 2xx response to INVITE arrives while a session is ending, re-send the ACK. (SIPSERV-334)

1.1.0.26

  • Fixed incorrect invalidate-when-ready behaviour which allowed sessions to be considered "ready to invalidate" while transactions were still in progress. (SIPSERV-326)

  • Fixed NullPointerException that could occur when trying to access pending messages in some cases. (SIPSERV-327)

  • Ensure all sessions, including derived sessions, receive the sessionReadyToInvalidate event. (SIPSERV-329)

  • Fixed DNS NAPTR record service matching to be case-insensitive. (SIP-525)

  • Relaxed address parsing to permit no whitespace between an unquoted display-name and the URI, as per RFC 3261 errata https://www.rfc-editor.org/errata/eid5598. (SIP-521)

  • Fix parsing of multi-valued headers so that commas in valid positions within a header value are not treated as header delimiters. (SIP-496)

  • Fix address parsing so that an asterisk occurring in the display name does not cause the address to be mistakenly treated as a wildcard address. (SIP-497)

1.1.0.25

  • Fixed session state leak when a forked session was ended in the first 30s after answer. (SIPSERV-325)

1.1.0.24

  • Fixed deadlock that could occur when forwarding a response on a derived session. (SIPSERV-324)

1.1.0.23

  • Automatically switch to TCP if trying to send large (> 1300 bytes) requests over UDP. Threshold may be adjusted with UDPMaxRequestSize config property. (SIPSERV-321/SIP-26)

  • Reject incoming messages if their session is invalidated in another thread before message is passed to the servlet. Requests are rejected with 481, responses are ignored. (SIPSERV-323)

1.1.0.22

  • Fixed an IllegalStateException when accessing an attribute of a session that has ended. (SIPSERV-320)

1.1.0.21

  • Fixed bug in handling addresses from P-Asserted-Identity and P-Preferred-Identity headers. (SIPSERV-316)

  • Fixed a SipSession leak that could occur when using forked responses. (SIPSERV-315)

  • Fixed bug where Proxy was incorrectly processing reliable responses, causing them to be dropped. (SIPSERV-317)

  • Fixed bug in tel URL parsing where '#' characters in valid positions were being rejected. (SIPSERV-318)

1.1.0.20

  • Fixed handling of RA link names when multiple SIP Servlet RA entities are deployed. (SIPSERV-314)

1.1.0.19

  • Improved handling of messages arriving in unexpected states. (SIPSERV-313)

1.1.0.18

  • Improved handling of CANCELs when cancel state has been concurrently removed in another thread. (SIPSERV-306)

  • Send 503 response when rejecting initial requests due to overload. (SIPSERV-308)

  • Fixed NullPointerException when forwarding late 2xx responses. (SIPSERV-310)

  • Fixed issue where retransmits of late 2xx responses could create new derived sessions, rather than being associated with existing sessions. (SIPSERV-311)

  • Allow SipServletRequest.createCancel() to create CANCELs for re-INVITEs. (SIPSERV-312)

  • Don’t log late 2xx responses at Warning level. (SIPSERV-309)

1.1.0.17

  • Fixed a race condition between incoming CANCEL and outgoing final responses when a UAS session was in proceeding or early states. (SIPSERV-301)

  • Fixed an issue where the B2buaHelper would return the wrong linked request when creating requests in the reverse direction to the initial INVITE. (SIPSERV-304)

  • Removed unnecessary exception thrown when an invalidated session receives a response. (SIPSERV-305)

1.1.0.16

  • Update Contact header in all target refresh messages that are forwarded as a B2BUA. (SIPSERV-303)

1.1.0.15

  • Fixed TelURL.clone() implementation. (SIPSERV-302)

1.1.0.14

  • Ignore CANCELs arriving after a SipSession has been invalidated. (SIPSERV-299)

  • Added getPackage() support to SarClassLoader. (SIPSERV-294)

1.1.0.13

  • Fixed a potential deadlock creating a servlet timer on a different SipApplicationSession than the one associated with the event currently being handled. (SIPSERV-290)

  • Fixed problems with BYE crossover scenarios. When receiving a BYE just after one was sent, the container generates a 200 OK response. When sending a BYE just after one was was received, the request will be sent without causing an exception. (SIPSERV-291)

  • Fixed bug where calling SipApplicationSession.invalidate() had no effect for converged applications. (SIPSERV-293)

1.1.0.12

  • Ignore CANCELs arriving after a SipSession has already been terminated. (SIPSERV-284)

  • Fixed handling of INVITEs sent by an application to its own local SIP address via the loopback interface. (SIPSERV-285)

1.1.0.10

  • The SIP Servlet container service is deactivated when a servlet fails to initialize. If initialization fails, the servlet’s destroy() method is invoked. (SIPSERV-272)

  • A follow-up to fix for SIPSERV-276. The SIP Servlet SBB now only handles timer events fired on SipApplicationSession activities. Timer events fired on other activities are ignored. (SIPSERV-286)

1.1.0.9

  • Fixed potential deadlock that could occur when responding to an INVITE at the same time as processing an incoming CANCEL for the same INVITE. (SIPSERV-282)

  • Amend a previous fix to release locks when exceptions occur during SIP Servlet container startup or the SipServletListener.servletInitialized() method. (SIPSERV-277)

1.1.0.8

  • ServletInitialized is now triggered after the container is considered operational and all the applications have been deployed. (SIPSERV-277)

  • Messages sent on new SipApplicationSessions created by SipFactory are now correctly delivered to the servlet. (SIPSERV-276)

1.1.0.7

  • Preserve changes to the From and To headers in the SIP session. (SIPSERV-260)

  • Container now allows empty values for environment entries of type java.lang.String. For primitive types with empty values, the binding is skipped and a warning is displayed. (SIPSERV-221)

  • VirtualAddresses config property now supports host:port syntax. (SIPSERV-264)

1.1.0.5

  • Fixed deployment of SARs containing indirect references to libraries (SIPSERV-252).

  • Add support for host:port syntax in VirtualAddresses (SIPSERV-264).

1.1.0.4

  • Add RFC3263 DNS failover support, disabled by default to match existing behaviour (SIPSERV-240).

  • Fixed IllegalStateException that could occur when forwarding response upstream between two proxy applications (SIPSERV-249).

  • Fixed route set in derived SipSessions (SIPSERV-250).

  • Fixed UnknownFormatConversionException that could occur with Finest tracing enabled (SIPSERV-237).

  • Fixed creation of upstream derived SipSessions in B2buaHelper.getLinkedSession(), and generation of local tags in B2buaHelper.createResponseToOriginalRequest() (SIPSERV-253).

  • Fixed response creation so that Contact header is available for modification by application (SIPSERV-254).

  • Fixed initial local sequence numbers in derived SipSessions (SIPSERV-255).

  • Fixed copying of parent session attributes to derived sessions (SIPSERV-259).

1.1.0.2

  • Updated RA security permissions to support Java 8 (SIPSERV-233).

  • Fixed deadlock that could occur when viewing SipSession activities in rhino-console (SIPSERV-226).

1.1.0.1

  • Provide SIP Servlet applications with full access to SLEE Resource Adaptors (SIPSERV-208)

    • Provide annotations for servlet applications to declare RA Type bindings (SIPSERV-209)

    • Support @Resource injection of JNDI bindings by name (SIPSERV-210)

    • Provide API for attaching activities to SipApplicationSessions (SIPSERV-211)

    • Provide annotations for servlet application listeners to declare event handler methods (SIPSERV-212)

    • Provide API for non-SIP initial events to select a known servlet application instance (SIPSERV-213)

    • Documentation for Servlet - SLEE RA integration (SIPSERV-217)

  • Handling servlet not set when request forwarded in different thread (SIPSERV-204)

  • ClassCastException when installing custom application router (SIPSERV-205)

  • SIP TCP connections don’t handle extra CRLFs (SIPSERV-206)

  • Servlet temp dir is broken when using multiple hosts (SIPSERV-219)

  • Support multi-valued headers passed to SipServletMessage.{set,add}Header (SIPSERV-203)

  • Review use of security permissions in container and servlet apps (SIPSERV-215)

  • Fixed ready-to-invalidate behaviour in hybrid services (SIPSERV-220)

1.0.0.4

  • SarClassLoader was using wrong resource path (SIPSERV-190)

  • IllegalStateException trying to respond to invalid ACK (SIPSERV-191)

  • Linking already linked sessions should be silently ignored (SIPSERV-192)

  • Contact header missing in subsequent provisional responses (SIPSERV-193)

  • SipServletMessage.setContent() should accept null (SIPSERV-194)

  • Improve SarClassLoader performance (SIPSERV-201)

1.0.0.2

  • Released to comply with SIP Servlet Specification 1.1 (JSR 289) (SIPSERV-1)

  • Included example SIP applications; registrar-servlet, proxy-servlet, presence-servlet and b2b-proxy-servlet (SIPSERV-64)

  • The optional security mechanisms described in SIP Servlet Section 17 are not currently implemented, these will be implemented in future releases (SIPSERV-62):

    • Server authentication module (SIPSERV-122)

    • Digest authentication support (SIPSERV-123)

    • Implement P-Asserted-identity based authentication (SIPSERV-124)

    • Identity and Identity-info headers based authentication (SIPSERV-125)

    • TLS/SSL client cert based authentication (SIPSERV-126)

    • Declarative security support (SIPSERV-127)

    • Programmatic security support (SIPSERV-128)