Oracle® Communications Converged Application Server

Release Notes

Release 7.0

E39125-02

May 2016

This document provides release notes for Oracle Communications Converged Application Server.

New Features

This section describes the new features and feature enhancements in this release of Converged Application Server.

Support for VMware ESXi 5.5

Converged Application Server now includes VMware ESXi 5.5 in the set of virtualization software that it supports.

With this inclusion, Converged Application Server now supports Kernel-based Virtual Machine (KVM) 0.12, Oracle VM 3, and VMware ESXi 5.5.

SIP Session Tracking for Licenses

You can now track session counts to track licenses in Converged Application Server with the help of startup command options.

Converged Application Server uses these startup command options to monitor the licenses. It takes into account the concurrent sessions in a cluster environment or a standalone deployment. It logs the high water mark for the sessions in each interval and the high water mark for the sessions since the start of the logging process.

By default, Converged Application Server stores these log entries in the server_name.log file for each engine, where server_name is the name of the server.

RFC Support Configurable in the Administration Console

Converged Application Server enables you to configure the following features in the Administration Console:

  • Enable applications to set the breadth on forked requests (RFC 5393).

    When you enable this feature, the container checks the Max-Breadth header which limits the number of parallel forks that can be made on a SIP request by the downstream proxies. The default value is 60.

  • Support the Session Initiation Protocol (SIP) Outbound Specification (RFC 5626).

    You can enable a flag to facilitate user agents behind a Network Address Translation (NAT) device (or firewall) to communicate with SIP nodes on the other side of NAT.

  • Enable sending 100 for non-invite request support (RFC 4320).

    When you enable this feature, the container responds with a 100 TRYING to a request if an application or proxy does not respond to the non-invite request before the timer designated as Timer E reaches the value of the timer designated as T2. It does so if the container has not otherwise responded after the amount of time it takes a client transaction's Timer E to be reset to T2. (For the meaning and default values of Timer E and T2, see the section "A Table of Timer Values" in RFC 3261).

Debugging Issues in the Runtime Environment

When you encounter an issue in the runtime environment, you can now analyze the issue by selecting one or more of the relevant debug attributes in the Converged Application Server Administration Console. To isolate the debug process to one server, do one of the following:

  • Enable the debug attributes in that server only.

  • Enable the selected attributes in all servers and then view the behavior throughout your installation.

By default, Converged Application Server prints the debug log information to the standard output stream, stdout. When the issue is resolved, disable the debug flag settings in the Administration Console.

Update to the JSR 359 SIP Servlet 2.0 Standard

Converged Application Server now complies with the Java Specification Request (JSR) 359 SIP Servlet 2.0 standard to take advantage of the coding efficiencies it offers, including:

  • New SIP signaling actions, including user agent server (UAS), user agent client (UAC), and Proxy.

  • A new simpler interface that uses containers to handle nonessential complexity.

  • Support for converged applications, using containers that support multiple protocols and interfaces.

  • Servlet model support for third-party application development.

  • Application composition that allows several applications to execute on the same incoming or outgoing request or response, each using their own rules.

Sample Applications Support for JSR 359

The sample applications included in the Converged Application Server installation package have been updated to support the requirements of JSR 359. Additional sample applications have been provided as a reference for employing concurrency utilities in your converged applications.

When you perform a complete installation of Converged Application Server, the installation stores the sample applications at:

OCCAS_home/occas/samples/sipserver/examples

where, OCCAS_home is the directory in which the Converged Application Server software is installed. For more information about the installation process, see "Installing Converged Application Server Using the GUI Installation" in Converged Application Server Installation Guide.

For descriptions of the examples, source code, and build files, see index.html under the src sub-directory in the examples location.

Aligned with Java EE 6 and Java EE 7

This release of Converged Application Server supports the new Java Platform, Enterprise Edition (Java EE) 6 and 7 platform features, including:

  • The ability to programmatically add and configure SIP servlets and listeners

  • New annotations and resource injections

  • The ability to package Enterprise JavaBeans (EJB) Packaged in a SIP application

  • The new Context and Dependency Injection (CDI) API

New SIP Servlet Concurrency Utilities

Your SIP Servlet containers use new utilities to execute asynchronous tasks and develop thread-safe applications. Your SIP Servlet applications can use any of these new managed objects:

  • ManagedExecutorService

  • ManagedScheduledExecutorService

  • ContextService

  • ManagedThreadFactory

SIP Outbound as Defined in RFC 5626

The RFC 5626 specification defines the functionality that allow SIP proxy servers to communicate with user agents (UAs) across a network. This specification is designed to allow two-way communication through network firewalls, network access translators (NATs), or Transport Layer Security (TLS) connections, which would normally block it.

New SIP Dialog Termination API for UAC/UAS

This release of Converged Application Server supports JSR 359 specification section 8.2.5, which introduces a dialog termination API to simplify SIP application development. This release includes the dialog termination API for SIP UAC and UAS roles.

Overload Protection Improvements

This release of Converged Application Server implements a framework for overload protection that includes:

  • A pluggable statistics collector

  • A pluggable event handler

  • Multiple threshold settings

  • A statistical algorithm for samples

  • Out of the box statistics collector and event handler examples

B2BUA API improvements

This release of Converged Application Server implements the JSR359 specification sections that define APIs to simplify the implementation of back to back user agents (B2BUAs). New supporting methods have been added to the SipSession, SipServletRequest, and SipServletResponse interfaces for B2BUAs.

Enhanced Third-Party Protocol Internetworking

Plain Old Java Objects (POJOs) can be configured to function as listeners for third party protocols such as Diameter using Java EE Common Dependency Injections (CDIs).

Enhanced SIP Forking Interface

This release of Converged Application Server includes the ForkingContext interface, which helps developers navigate the multiple dialogs derived from a single forked request.

Upgrade to WebLogic 12.1.3 with all the Coherence HA Improvements

Converged Application Server has migrated from a dedicated data tier to Oracle Coherence for persistence and high availability (HA) support. Coherence clusters consist of multiple managed Coherence server instances that work together to distribute data in-memory to increase application scalability, availability, and performance. A client interacts with the data in a local cache and the distribution and backup of the data is automatically performed across cluster members.

Resolved Issues

Table 2 lists and describes known issues from the previous release that have been resolved in this release.

Table 1 Issues Resolved in this Release

Bug ID or SR ID Description

22519307

Previously, the SipPerformanceRuntimeMBean was not accessible through the SNMP MIB Browser.

The SipPerformanceRuntimeMBean is now included in the SNMP MIB file and you can now monitor the performance values in the SNMP MIB Browser.

22516055

22516227

When the SIP Servlet acts as a proxy, you can now use a system property to enable the SIP Server to modify the FROM/TO headers of all requests.

To do so, enable the start up command option, -Dwlss.enable_modify_to_from. By default, this flag is set to false.

22514977

Previously, in a replicated environment, a Converged Application Server engine did not handle the Cancel request correctly, if it was not the engine that had received the SIP INVITE request associated with the cancellation.

Converged Application Server engines now processes Cancel requests correctly.

22513057

In certain cluster setup, if some replicas failed during the restarting of a few engine tier instances, their failures led to the failure of the entire cluster.

If Converged Application Server does not find a new node when it attempts to refresh nodes, it now continues to use the existing node.

22510489

When an application sent an INVITE message to a proxy (S-CSCF) using a domain name and the Domain Name Server returned two addresses, Converged Application Server sometimes sent the request to the alternative DNS-resolved destination address.

Converged Application Server no longer sends such requests to any alternative DNS-resolved destination address.

22509457

Previously, the substitution of the ";" character for a return carriage character "\r" in Content-Type headers resulted in issues with Content-Type headers that were in multi-line format.

This incorrect substitution of ";" for a return carriage character "\r" has been fixed. The outgoing request in such Content-Type headers now contains an extra ";" character appended to the return carriage character "\r".

22708358

In accordance with the SIP Servlet specification, the SIP container does not pass a 100 trying response (for the INVITE request) to the application.

For customers who require 100 Trying provisional response notifications in their applications, Converged Application Server now provides a custom annotation called com.bea.wcp.sip.annotation.Invite100TryingResponse in its wlssapi library. Applications can use this method-level annotation to obtain a callback when they receive a 100 Trying response. The Converged Application Server Container ensures that the callback is provided in the appropriate SIP scope.

See the description about the Invite100TryingResponse annotation type in the com.bea.wcp.sip.annotation package in Converged Application Server Java API Reference.

21188487

Previously, an incorrect contact header in the 200 OK response for an INVITE request resulted in a session mismatch during the handling of subsequent requests, such as ACK.

The correct contact header is now in use and the SIP container handles subsequent requests successfully.

21846412

Previously, there were significant delays when using the ManagedSIPExecutorService objects.

Converged Application Server provides ways in which you can set up your applications to avoid such delays and the possibility of deadlocks. For more information, see the description about "SIP Servlet Concurrency" in Converged Application Server Developer's Guide.

21170127

When a message included a Proxy-Require header containing the option-tag, 'privacy', the SIP container generated a bad extension error. This issue has been fixed.

The SIP container now supports message header field value(s) associated with a Proxy-Require header, if those belong to the allowed list of values. The SIP container merely passes such a header to the application.

Note that your application must process the header appropriately.

19908691

When an application created proxy branches and/or added targets to the proxy with TelUrl but the route set was empty at the time, a java.lang.IllegalArgumentException was thrown as part of the validation of the Route set.

Converged Application Server now performs this validation only when all the branches have been created and route set is empty.

19857949

Previously, the selection of the connector in the setOutboundInterface method of the SIPSession interface was broken. This issue has been fixed. The connector is now selected based on the interface.

19852865

When sending an outbound INVITE request, Converged Application Server performed the "A" lookup before the service record (SRV) lookup.

Converged Application Server now performs DNS lookups in accordance with RFC 3263.


Known Issues

Table 2 lists the known software issues in this release and the workaround for each issue.

Table 2 Known Bugs in this Release

BugID Description

23104994

When setting up a PROXY REGISTRAR domain in the Fusion Middleware Configuration Wizard, as part of the steps, you are asked to provide details for the JDBC data sources.

In the case where MySQL is selected as the vendor during the setup of PROXY REGISTRAR domain in the Fusion Middleware Configuration Wizard, the query string ("sql-user-exists") in SQLAuthenticator provider is incorrect.

As a result, when the registration of a user is attempted, the server logs report the following exception:

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column 'SYSDATE' in 'where clause'

To correct this issue, complete the installation process, as before. After completing the installation, you can modify the config.xml file at any point.

To modify config.xml, complete the following steps:

  1. Stop all servers. Do not attempt to edit the config.xml file for a domain when any server is active.

  2. Create a backup of the existing config.xml of your PROXY REGISTRAR domain.

  3. Manually edit the config.xml file.

  4. Go to the SQLAuthenticator provider section for the configured realm.

  5. Locate the following entry:

    <wls:sql-user-exists>SELECT USERNAME FROM ACCOUNT WHERE USERNAME = ?AND (lock_expires_at IS NULL OR lock_expires_at &lt; SYSDATE) AND (account_expires_at IS NULL OR account_expires_at SYSDATE)</wls:sql-user-exists>
    

    Replace it with this entry:

    <wls:sql-user-exists>SELECT USERNAME FROM ACCOUNT WHERE USERNAME = ?AND (lock_expires_at IS NULL OR lock_expires_at &lt; sysdate()) AND (account_expires_at IS NULL OR account_expires_at sysdate())</wls:sql-user-exists>
    
  6. Save the edited config.xml file.

  7. Restart your servers.

20742195

The RFC 6665 specification states that proxy servers that do not add Record-Route header fields to the initial SUBSCRIBE request are then prohibited from adding Record-Route header fields to any associated NOTIFY requests. However, Converged Application Server does not check for Record-Route header fields in NOTIFY requests.

Developers creating applications for Converged Application Server should not call Proxy.setRecordRoute(true), or proxyBranch.setRecordRoute(true) when handling notify requests that did not already set the Record-Route header field in a Register request.

20643208

Using WebLogic Scripting Tool to configure SipServer-ApplicationRouter requires a workaround. You must first manually configure the default application router configuration by using the web console. Then the ApplicationRouter becomes accessible.

20318523/20550145

Associating too many sessions with a single key causes performance problems.

Specifically, when using the new SipApplicationSession addIndexKey() method, ensure that the session keys you create are unique to subscribers. This strategy helps you avoid performance degradation problems.

If your session keys are unique to subscribers and large reads still cause performance problems, try paging the result when iterating over the read index record.

If your session keys are unique to subscribers and large writes still cause performance problems, try splitting large index records into smaller "chunks." That way you do not need to deserialize the full record to add or remove values from it.

18066581

Deploying SIP applications that declare ServletContainerInitializer can in some cases cause the onStartup() method to be called twice. You can prevent this by using the wlss.initializer.classes system property to specify and limit SIP specific container initializers.

15957604

Applications should not try to inject a resource with the same name in both a field and method. For example, injecting a SipFactory resource with the same name into both the setMySipFactory method and the mySipFactory field is not supported. This behavior is prohibited by JavaEE specification EE.5.2.3, but this release of Converged Application Server does not specifically check for this error. Violating this rule can cause unexpected behavior.


Documentation Accessibility

For information about Oracle's commitment to accessibility, visit the Oracle Accessibility Program website at http://www.oracle.com/pls/topic/lookup?ctx=acc&id=docacc.

Access to Oracle Support

Oracle customers that have purchased support have access to electronic support through My Oracle Support. For information, visit http://www.oracle.com/pls/topic/lookup?ctx=acc&id=info or visit http://www.oracle.com/pls/topic/lookup?ctx=acc&id=trs if you are hearing impaired.


Oracle Communications Converged Application Server Release Notes, Release 7.0

E39125-02

Copyright © 2015, 2016, Oracle and/or its affiliates. All rights reserved.

This software and related documentation are provided under a license agreement containing restrictions on use and disclosure and are protected by intellectual property laws. Except as expressly permitted in your license agreement or allowed by law, you may not use, copy, reproduce, translate, broadcast, modify, license, transmit, distribute, exhibit, perform, publish, or display any part, in any form, or by any means. Reverse engineering, disassembly, or decompilation of this software, unless required by law for interoperability, is prohibited.

The information contained herein is subject to change without notice and is not warranted to be error-free. If you find any errors, please report them to us in writing.

If this is software or related documentation that is delivered to the U.S. Government or anyone licensing it on behalf of the U.S. Government, then the following notice is applicable:

U.S. GOVERNMENT END USERS: Oracle programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, delivered to U.S. Government end users are "commercial computer software" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations. As such, use, duplication, disclosure, modification, and adaptation of the programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, shall be subject to license terms and license restrictions applicable to the programs. No other rights are granted to the U.S. Government.

This software or hardware is developed for general use in a variety of information management applications. It is not developed or intended for use in any inherently dangerous applications, including applications that may create a risk of personal injury. If you use this software or hardware in dangerous applications, then you shall be responsible to take all appropriate fail-safe, backup, redundancy, and other measures to ensure its safe use. Oracle Corporation and its affiliates disclaim any liability for any damages caused by use of this software or hardware in dangerous applications.

Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of their respective owners.

Intel and Intel Xeon are trademarks or registered trademarks of Intel Corporation. All SPARC trademarks are used under license and are trademarks or registered trademarks of SPARC International, Inc. AMD, Opteron, the AMD logo, and the AMD Opteron logo are trademarks or registered trademarks of Advanced Micro Devices. UNIX is a registered trademark of The Open Group.

This software or hardware and documentation may provide access to or information about content, products, and services from third parties. Oracle Corporation and its affiliates are not responsible for and expressly disclaim all warranties of any kind with respect to third-party content, products, and services unless otherwise set forth in an applicable agreement between you and Oracle. Oracle Corporation and its affiliates will not be responsible for any loss, costs, or damages incurred due to your access to or use of third-party content, products, or services, except as set forth in an applicable agreement between you and Oracle.