SIS-IN Changelog

Version 2.7.0.3

  • Incoming network dialogs aborted due to an unsupported application context now include an appropriate dialog portion in the TCAP message indicating such. (SIS-1486, SIS-1491)

Version 2.7.0.1

  • Fixed an NPE that could occur if the SIS attempts to fire an event to an interceptor component after the network dialog has already closed and the internal state for it cleaned up. (SIS-1463)

Version 2.7.0.0

  • SIS now depends on Rhino 2.7.0 or later.

Version 2.6.2.3

  • CAPv2 and descendents do not disarm calling party EDPs when processing an MSC forwarded call. (SIS-1435)

  • CAPv2 and descendants support the callForwarded flag in ERB tCalledPartyBusy and tNoAnswer to indicate that the call has been forwarded by the MSC to a new destination number. (SIS-1429)

Version 2.6.2.0

  • The sis-export admin tool will now only list SIS instances that it is capable of exporting state from. (SIS-1393)

  • Fixed duplication of TCAP dialog transfer messages and subsequent dialog and event generation when multiple network interfaces are enabled. (SIS-1398)

  • Fixed issue preventing CGIN interceptors required for ETC/ARI dialog correlation and node transfer from loading correctly in the SIS. (SIS-1402)

Version 2.6.1.2

  • Split IN and SIP packaging of the SIS. (SIS-1158)

  • Javadoc directory layout in the doc/javadoc directory has been changed to mirror that of the online documentation server. (SIS-1196)

  • The changelog has been reformatted for online display. (SIS-1091)

  • Layer 3 originating and destination point codes are no longer reversed in the SIS’s DialogOpenRequestEvent. (SIS-1180)

Version 2.5.4.12

  • IN: Fixed SIS behaviour when leg-terminating EDPs are sent in a TC_END block. Services that do not have these events armed now receive a UserAbort event to close the leg. (SIS-1277).

  • SIP: Fixed sending of late INVITE/2xx responses so that they use the same transport as the server transaction. (SIS-1317)

Version 2.5.4.11

  • IN: Fixed implicit EDP disarming rules for Ericsson INAP CS1. (SIS-1320)

Version 2.5.4.10

  • IN: The Simulated TCAP stack no longer incorrectly sets numberingPlan=1 for outbound ITU TCAP requests with GTI=1, causing global title translation to fail. (CGIN-2031)

Version 2.5.4.9

  • SIP: Ensure that CANCELs sent for INVITEs that used DNS failover or automatic switching to TCP have the correct Via branch. (SIS-1253)

  • SIP: Trigger service failure behaviour if external platform returns 503 response, or if there is a transport failure. (SIS-1246)

  • SIP: Fixed a deadlock between sendCancel and an incoming response for a forked dialog (SIS-1244)

  • IN: The Simulated TCAP stack now supports ANSI (A7) SCCP addressing, including global title translation. For partner products, use of tcapsim with A7 SCCP addressing requires IN Scenario Pack 1.5.4.3 or higher, or CGIN 1.5.4.5 or higher. (CGIN-1947)

Version 2.5.4.8

  • IN: Fixed the set of valid armable EDPs for CAPv1 T-BCSM calls. (SIS-1213)

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

Version 2.5.4.7

  • IN: Upgraded the OCSS7 TCAP stack to the latest release of 2.0.0.x. This version of the OCSS7 TCAP stack supports ANSI SCCP when connected to SGCs with version at least 2.1.0.0 and remains backwards compatible with 2.0.0.x SGCs when configured to use ITU SCCP. Refer to the OCSS7 changelog, the CGIN changelog, and the documentation of both for details.

  • IN: Network route rules will now be correctly applied to ANSI SCCP GTI=1 addresses, and recognize that GTI=3 or GTI=4 is invalid for ANSI SCCP. (SIS-1187)

  • IN: Fixed the set of valid armable EDPs for CAPv1 T-BCSM calls. (SIS-1213).

  • SIP: Add API for sending provisional responses that do not affect dialog state. See IncomingSipRequest.createStatelessResponse(). (SIS-1185)

Version 2.5.4.5

  • SIP: Use relaxed ServiceID matching when looking up session state, to avoid potential issue translating Replaces/Target-Dialog headers when linked ServiceIDs are in use. Strict ServiceID matching may be selected with the new config property "relaxServiceIDMatch=false". (SIS-1182)

Version 2.5.4.4

  • IN: Fixed an NPE that occurred during trigger address tracing selection evaluation when trigger address tracing was enabled. (SIS-1143)

  • SIP: Fixed leaked SipSession activities caused by incorrect handling of proxied late 2xx responses. (SIS-1142)

  • SIP: Fixed forwarding of PRACKs that arrive after the INVITE 2xx response. (SIS-1127)

  • SIP: Fixed ClassCastException that occurred when using a backup external platform address with the "SIP:traffic-reduce" extension option. (SIS-1145)

  • SIP: OPTIONS probes that arrive when the SIS is in the Stopping state are now rejected with a 503 response. (SIS-1146)

  • SIP: Revert previous SIS-1124 fix, don’t try to change From/To headers when using traffic-reduced service.

  • SIP: Fixed issue where binary bodies in messages would incorrectly be decoded as UTF-8 when converting to strings, resulting in unexpected errors. (SIP-418)

  • SIP: Fixed issue where SIS-internal service Route headers would conflict if there were multiple SIS instances active on the same host. (SIS-1170)

  • SIP: Relaxed checks around when a SipSession could create outgoing requests, which were too restrictive. (SIS-1171)

  • SIP: Fixed issue where SIS incorrectly removed Route headers that were addressing a subsequent service in the composition. (SIS-1176)

  • SIP: Ensure the initial NOTIFY created for a subscription has the correct route set. (SIS-1174)

  • SIP: Update SipSession’s remote target when a reliable provisional response is received. (SIS-1175)

Version 2.5.4.1

  • An NPE will no longer occur if a SIS instance is created in a misconfigured state, the SIS instance is activated, then the misconfiguration is corrected.

  • IN: Network interface configuration properties now support active reconfiguration where the same properties do natively in CGIN. The SIS network router configuration also now supports active reconfiguration. New alarms will be raised if configuration properties that do not support active reconfiguration are modified while the SIS is in the ACTIVE state. (SIS-1128)

  • SIP: Preserve changes to From/To headers made by a traffic-reduced service. (SIS-1124)

  • SIP: Add configured local contact address to locally-generated messages. (SIS-1131)

  • SIP: Decrement Max-Forwards when forwarding requests between sessions as a B2BUA. Generate 483 response if Max-Forwards reaches 0. (SIS-1136)

  • SIP: SIS service timer will now be stopped on receipt of 100 Trying from a local service. (SIS-1139)

Version 2.5.3.3

  • SIP: Updated composition XML schema to allow an optional element inside an <extension-option> element. Added support for a configurable error response in the SIP:traffic-reduce extension option, using the existing <sip:reject> element (SIS-1111).

  • SIP: Fixed initial remote sequence number on forked UAS dialogs (SIS-1094).

Version 2.5.3.1

  • Text installer now accepts '-' to mean an empty response. (SIS-1102)

  • IN: Upgraded the OCSS7 TCAP stack to the latest release of OCSS7 1.1.0.x. Refer to the OCSS7 changelog for details.

  • SIP: Fixed error when processing an incoming initial NOTIFY on a subscription that also terminates the subscription (SIS-1082).

  • SIP: Allow responses to be sent after session has ended, to clean up remaining transactions (SIS-947).

  • SIP: The VitualAddresses network interface configuration property now supports the special port value "<local-port>". This value means that a virtual address will only match against a URI, all else being equal, if the the URI port equals a port that the local SIP stack is listening on. A non-match will mean that the SIS will consider the URI to be remote rather than local. (SIS-1093)

  • SIP: Removed redundant UTF-8 decode of unparsed header values when sending a message, which could fail on headers inserted by devices using invalid character sets. By default UTF-8 decoding errors are handled by replacing the invalid characters rather than throwing an exception. The default replacement character is the Unicode replacement character, "�", U+FFFD (SIP-380).

  • SIP: Fixed issue that caused redundant Record-Route headers to be added when a request was sent to a backup external server (SIS-1095).

  • SIP: Fixed issue with external services using the SIP:traffic-reduce extension option, where the Record-Route header did not get updated correctly when the request traversed different network interfaces (SIS-1096).

Version 2.5.2.23

  • IN: Fixed handling of terminate action on local service timeout (or related errors) in the case where no virtual dialog activity was created. (SIS-1070)

  • IN: Fixed the value returned by the open-request.destination-sccp-address variable. It was incorrectly returning the originating SCCP address. (SIS-1073)

  • SIP: Added ability to configure OffsetPorts and PortOffset SIS configuration properties when using create-sis-sip-instance tool. (SIS-1069)

  • SIP: RFC3263 config properties were not being passed through to SIP stack. (SIS-1074)

  • IN: Upgraded the OCSS7 TCAP stack to the latest release of OCSS7 1.0.1.x. Refer to the OCSS7 changelog for details.

Version 2.5.2.20

  • SIP: Added support for RFC3263 load balancing and failover. Multiple addresses returned by SRV lookups will be tried according to their priority in DNS. Disabled by default, enable using the config property RFC3263:failover_enabled=true. (SIP-253)

Version 2.5.2.19

  • SIP: Relaxed the parsing and matching of internal local service route headers. This enables compositions to use new Rhino service links. (SIS-979)

  • IN: Upgraded OCSS7 TCAP stack to latest release of OCSS7 1.0.1.x.

Version 2.5.2.17

  • IN: Internal OCSS7 components upgraded to version 1.0.1, bringing various internal improvements specific to the use of the OCSS7 stack. (SIS-974)

  • IN: Fixed a race condition in the external service proxy dialog handler that could result in the SIS hanging and leaking internal state. (SIS-971)

  • IN: InitialDP events missing an eventTypeBCSM field, and other initial requests missing a corresponding field, will now be accepted by the SIS for trigger processing. The missing field must be added by a trigger before a composition is selected so that the SIS can determine the appropriate BCSM to use for the dialog. If the missing field is not added by a trigger, then trigger processing will again fail as it did previously (SIS-972).

Version 2.5.2.14

  • Variables can now be used to specify the values of integer-type parameters such as character indices in script string manipulation functions (SIS-955).

  • IN: After a leg disconnect EDP has been reported with an EventReportBCSM operation, a Connect response from the service is now supported to create a follow-on call (SIS-962).

  • IN: A provider error with reason NO_LINKED_RESPONSE for a Play Announcement operation will no longer be forwarded to a service by the SIS if it occurs after the service has terminated the user interaction session with a Disconnect Forward Connection operation. This is primarily for convenience, as the error event has no useful meaning in this context (SIS-877).

  • IN: If an interceptor extension adds or removes an operation, or completely changes an operation argument, then those changes will now correctly be seen by subsequent interceptor extensions in the same interceptor block, rather than them seeing the original set of operations in the TCAP block (SIS-956).

  • IN: Fixed SIS behaviour in multileg scenarios when leg-terminating EDPs armed by a service in interrupted mode are reported and the service subsequently resumes the BCSM. The service will no longer be prematurely terminated as a result of the event report (SIS-959).

  • IN: When invoked on a local service’s virtual dialog, the getDialogState() method will now correctly return the state of the virtual dialog, rather than the state of the network dialog (SIS-961).

  • IN: Fixed flow of messages sent to the network if a service that has already responded to an initial request then releases the call while composition evaluation is still in progress (SIS-966).

  • IN: SIS will no longer forcefully terminate a local service’s virtual dialog with a User Abort in the case where the SIS has detected a prearranged end condition for the service and the network dialog subsequently ends, but the service has yet to terminate the virtual dialog itself. Instead the SIS will leave the virtual dialog alone and allow the service to terminate it in its own good time. If the service forgets to terminate the virtual dialog, a subsequent query-liveness check by the SLEE will clean up the virtual dialog activity state. This new behaviour is more consistent with the behaviour of a raw CGIN resource adaptor (SIS-967).

  • IN: Fixed a race condition that could leave SIS dialog state hanging if an upcall to an external service occurred at the same time as a downcall from the service closed the dialog between the service and the SIS (SIS-971).

  • SIP: Remove transaction state when INVITE is cancelled (SIS-952)

  • SIP: Removed reverse dialog ID lookup when rewriting Replaces or Target-Dialog headers (SIS-950).

  • SIP: Support multiple P-Access-Network-Info header values (SIP-338)

  • SIP: VirtualAddresses network interface property now accepts hostnames that match SIP NAPTR and SRV DNS records (SIP-285).

Version 2.5.2.7

  • Interceptor components may now include macro references and thus evaluate macros as part of the interceptor script (SIS-943).

  • Fixed a rhino-export/import issue that caused both predefined and arbitrary compound datatypes to not import correctly, resulting in the variable not evaluating correctly at runtime (SIS-929).

  • Fixed a rhino-export/import issue that caused a dereferenced array index of a user variable to not import correctly, resulting in the variable not evaluating correctly at runtime (SIS-930).

  • IN: ComponentRejectedEvents generated by the CGIN layer are now be handled properly by the SIS. The following rejection problem codes are considered fatal and will result in termination of the session:

    • any general problem

    • the 'unrecognizedOperation' and 'mistypedArgument' invoke problems

    • the 'mistypedResult' return result problem

    • the 'mistypedParameter' return error problem Any other rejection problem is considered non-fatal, and the event may be delivered to one or more services. Only local services may receive this event. A ComponentRejectedEvent cannot be forwarded to an external service, thus the event delivery to such a service will be suppressed. In any case, as a ComponentRejectedEvent is considered an abnormal event, an occurrence of any such event will be logged (SIS-944).

  • IN: Fixed SIS behaviour in multileg scenarios when leg-terminating EDPs armed by a service in notify & continue are reported. The service will no longer be prematurely terminated as a result of the event report (SIS-939).

  • IN: SIS will now correctly send a DFC with arg (CS#1) to the network as a cleanup measure, rather than a DFC with no arg, when a service running a multileg scenario performing user interaction in call segment #1 fails (SIS-945).

  • SIP: Add support for querying pending incoming and outgoing requests on a SipSession (SIS-932).

Version 2.5.2.6

  • Fixed a rhino-export/import issue that caused dereferenced array-type variables to not import correctly, resulting in the variables not evaluating correctly at runtime (SIS-928).

  • IN: A provider error for reason NO_LINKED_RESPONSE will no longer be forwarded by the SIS to an external service. It is assumed that the TCAP stack handling the external service will generate its own provider error on invoke timeout (SIS-926).

  • SIP: End subscriptions when refreshes fail (RFC 6665) and honour the "Refer-Sub: false" header in REFER responses to disable REFER’s implicit subscription (RFC 4488) (SIS-914).

  • SIP: Add Record-Route headers to forwarded NOTIFY requests if the service is a record-routing proxy or B2BUA (SIS-924).

  • SIP: Support dialog creation when initial NOTIFY arrives before SUBSCRIBE or or REFER response (SIS-920).

  • SIP: Support forked dialogs resulting from multiple NOTIFYs arriving after the initial SUBSCRIBE/REFER is forked by a downstream proxy. See org.jainslee.resources.sip.IncomingSipRequest.isForked() and org.jainslee.resources.sip.SipSession.createForkedNotify() (SIS-923).

Version 2.5.2.5

  • IN: Fixed handling of composition evaluation if a call is abandoned during pre-call user interaction.

  • IN: Fixed NPE invoking a composition output interceptor extension for an operation result or error response.

  • IN: Fixed an issue in recognising the new response when an output interceptor extension changed an operation result or error response.

  • IN: Fixed handling of ApplyChargingReport in Ericsson INAP CS1+ if a leg terminates with multiple reporting reasons armed.

  • SIP: Added config property "automaticDialogIDRewritingEnabled" to enable or disable rewriting of dialog IDs embeded in Target-Dialog and Replaces headers (SIS-912).

  • SIP: Improved handling of BYE crossover, send 200 OK to BYEs if dialog already ending, or 481 if ended (SIS-851).

Version 2.5.2.4

  • IN: Fixed issue with extension option "IN:delimit-every-operation-request", which caused delimiters not to be sent after certain operations when they should have been.

  • SIP: Fixed an activity leak caused by not ending forked sessions after the CANCEL event is processed.

Version 2.5.2.3

  • IN: New extension option to send a delimiter after every operation request sent to the network. "IN:delimit-every-operation-request" must be set in a composition for it to be enabled.

  • IN: Operation user error results sent by a service for charging-related operations will be propagated to the network by the SIS rather than silently ignored.

  • IN: Fixed error handling if a Continue operation is sent on a call segment that is in the wrong state to accept the operation.

  • IN: Fixed handling of ReleaseCall in Ericsson INAP CS1+ after the called party leg is created using InitiateCallAttempt but fails to connect with a leg-terminating EventReportBCSM.

  • SIP: SIS now throws a SipParseException when parsing an invalid string in org.jainslee.resources.sip.SipFactory.createURI(String) instead of throwing a NullPointerException.

  • SIP: Fixed a bug where SIS overwrites an existing to-tag when generating error responses. Is should only set the to-tag if one does not already exist.

  • SIP: Fixed a bug where the SIP port offset calculation was incorrect, by not including the NodeID in the calculation. If config property OffsetPorts = true, actual port = configured port + (NodeID - PortOffset). This enables multiple nodes to run on the same host.

Version 2.5.2.2

  • Updated to use CGIN Connectivity Pack 1.5.2.

  • Only EasySIP RA Type 1.4 is now supported. Concurrent support for EasySIP RA Type 1.3 has been removed.

  • IN: Variables representing the argument, invoke id, and linked id of operations are now assignable. This means, for example, that an interceptor that needs to completely replace an operation’s argument with a new object of a different class type can now be written entirely in XML in the interceptor script rather than requiring an extension component to do so.

  • IN: Added extension option "ECS1:allow-camel-style-apply-charging" which can be used to allow CAMEL style Apply Charging call flows when using Ericsson INAP CS1 or CS1+ dialogs. Specifically, it allows a service to send an ApplyCharging operation at any time, rather than only when the BCSM is suspended at a DP (the default behaviour). This extension option can be specified for an individual service or for the composition.

  • IN: Fixed an event post-processing ordering issue that caused the SIS to send the wrong response to the network in some call party handling scenarios.

Version 2.5.1.6

  • Fixed a security exception thrown when deploying or viewing interceptor components on more recent 1.6 and 1.7 Oracle JVMs, eg. 1.6.0_45 or 1.7.0_21.

  • IN: Fixed an issue that caused the SIS to unnecessarily send a RequestReportBCSM to rearm EDPs at certain points in the call, particularly after rebranching.

  • IN: A Connect response to an EventReportBCSM with an Ericsson INAP CS1+ specific leg-terminating BCSM event type such as oCalledPartyNotReachable or tRouteSelectFailure will now be correctly accepted and processed by the SIS.

  • IN: An additional call party leg created using the InitiateCallAttempt operation in Ericsson INAP CS1+ will now follow the same BCSM - originating or terminating - that the initiating call leg follows, rather than always following an originating BCSM.

  • IN: Fixed an issue handling "erroneous" leg type parameters in EventReportBCSM operations when using the Nokia INAP CS1 protocol. The leg type parameter, for most event reports, is meaningless in this protocol and should be ignored when determining if a service has armed a particular EDP.

  • IN: Fixed a NullPointerException that occurred when sending a Connect response to an InitialDP that has no destinationRoutingAddress field, as is permitted in Ericsson INAP CS1+.

  • SIP: Added missing experimental features profile spec reference to the SIS resource adaptor so that rhino-export will correctly find all profile table dependencies required for a successful import.

  • SIP: Fixed a race condition that could cause a memory leak due to SipSession objects not being cleaned up on dialog end.

  • SIP: Fixed incorrect retransmit interval for non-INVITE client transactions in Proceeding state.

Version 2.5.1.3

  • IN: Fixed an issue that prevented certain script variables from functioning correctly. This issue affected variables representing operation argument (sub)fields that appeared in different protocols with the same name and type however did not exist in a common super-protocol. For example, the CAPv4 and Ericsson INAP CS1+ PlayAnnouncement operation argument both independently define the "requestAnnouncementStarted" field with a boolean type. Attempting to use the "play-announcement.arg.request-announcement-started" variable worked correctly with a CAPv4 message but not a CS1+ message.

  • IN: Fixed an issue that incorrectly disarmed the calling party leg EDPs when a service responded to a called party leg terminating EventReportBCSM with a Connect to route the call to an alternate destination.

  • SIP: Application specific local contact can now be set on both UAS and UAC sessions. Changed method on SipSession from setUASLocalContactAddress() to setLocalContactAddress(). Local contact can be set before the fist dialog creating response is sent for UAS or original request is sent for UAC.

  • SIP: Updated SipMessage API making sequence number available.

  • SIP: Added translation of call-id, from- and to- tags in Replaces and Target-Dialog headers when creating forwarded requests.

Version 2.5.1.2

  • IN: Added script variables representing the Close (TC-END) dialog primitive. Updated the interceptor extensions resource adaptor type API to include more specific access to the dialog primitive. These changes, for example, allow a composition output interceptor to change a close with prearranged end (ie. no network message sent) to a close with basic end (ie. a TC-END TCAP message is sent to the remote peer instead).

  • IN: Fixed an issue preventing a service sending a ReleaseCall operation during user interaction when using the Ericsson INAP CS1+ protocol. Unlike other protocols, CS1+ allows this operation to be sent while in this state.

  • SIP: Added new method to SipSession to enable UAS application to change default SIS session contact to application specific address. When applicable the SIS contact with encoded service ID moved to the first Record-route header.

  • SIP: Fixed an issue whereby different methods were used for registering and later identifying active subscriptions. This meant that subscription sessions were not correctly ended when a NOTIFY was sent or received with Subscription-State "terminated".

  • SIP: Fixed an issue that meant if the Subscription-State header of a NOTIFY contains fields in addition to sub-state "terminated" then the session was not correctly ended.

Version 2.5.1.1

  • IN: The SIS will now clean up resources properly if the last active service in a composition spontaneously closes its dialog with a prearranged end.

  • IN: Fixed an issue that caused an undecodeable message to be silently ignored if debug logging for the network interface was enabled.

Version 2.5.1.0

  • Updated to use CGIN Connectivity Pack 1.5.0-protocol-patches.

  • Fixed a race condition in the load-share external address selector that could lead to periods where threads could hang spinning CPU unnecessarily.

  • IN: Fixed an issue reactivating the SIS after it has been deactivated when using the simulated TCAP stack.

  • IN: Fixed an issue that caused the stats parameter set "SIS Fibers" to be renamed to "network.<interface-name>.SIS Fibers" after a SIS config property update, meaning an existing stats client session would fail to receive any further stats updates unless it re-subscribed to the new parameter set name.

  • IN: Fixed various issues administering the application override options for service refs.

  • SIP: Reset local tag when retrying a new INVITE.

Version 2.5.0.3

  • Fixed an issue preventing the create-sis-sip-instance administration tool activating the SIS instance after its creation.

  • Fixed another ClassNotFoundException deployment error that could happen under certain circumstances when installing a SIS component that included an expression attempting to instantiate an object of a protocol-specific datatype.

  • Fixed a security exception thrown when deploying or viewing XML components, (macros, triggers, and compositions) on more recent 1.6 and 1.7 Oracle JVMs, eg. 1.6.0_45 or 1.7.0_21.

  • Fixed the presentation of named values in the package documentation file sis-in-protocol-variables-detail.txt.

  • Fixed a logic error preventing the deactivateexternalplatformaddress Ant task from functioning correctly.

  • Service reference parameters for IN application context overrides are now included in the sis-export output of a SIS instance configuration and will be subsequently restored on re-import. These same parameters, along with the default service timeout and static charging priority, are now also included in the output of rhino-export and will be subsequently restored on re-import. Previously these parameters were missing from the respective export images and the settings were therefore being lost from the backup.

  • IN: Fixed an issue invoking multiple extension components from within an input interceptor which would result in the component events in the TCAP message being duplicated in the interceptor output.

  • IN: An external platform address will no longer have a service failure recorded against it if the service aborts the dialog mid-call, or responds to a mid-call event delievered in interrupted mode with an operation error. The SIS will still treat the occurrence as a service failure and act accordingly, however the external platform monitor will not be notified (communication with the external platform is still ok, it’s just abnormal service behaviour), and hence the failure will not contribute to a potential loss of service if the external platform address had transitioned to the FAILED as a result of the notification.

  • IN: Fixed an issue that hung the SIS state machine when an external service waiting for outstanding charging reports responded to a disconnect event report with a ReleaseCall + Delimiter.

  • IN: A Connect with no DestinationRoutingAddress parameter is now allowed after the SIS has received an EventReportBCSM for o/tAnswer when using Ericsson INAP CS1+.

  • IN: Fixed an error detecting the affected call leg for the ConnectToResource operation in Ericsson INAP CS1+ when the operation argument was not specifically an ECS1pConnectToResourceArg. Since the leg id is indicated within the ResourceAddress field, the type of the containing argument object is irrelevant.

  • SIP: Added support for from-change option (RFC4916) to allow mid-dialog change of connected party identification conveyed by URI of From-/To- headers.

  • SIP: Fixed a security exception thrown if the SIS attempted to raise a misconfiguration alarm.

  • SIP: Added a new method to the SipSCSActivity class that can be used to determine if a SipURI is a URI local to the invoking SIS instance.

  • SIP: Initial requests and responses forwarded by B2BUA applications will no longer rewrite the Contact header. This is to preserve any session parameters that may have been present in the Contact header. Instead the SIS adds a Record-Route header to the initial request and dialog-creating responses so it stays on the path of subsequent requests.

  • SIP: Ending of session activities is automatically deferred until the after the final SIP event is processed, so that SBBs can still refer to session activities & ACIs while processing the final event.

  • SIP: The "VirtualAddresses" network interface property now allows hostnames and ports of virtual addresses to be specified, e.g. server:5160.

  • SIP: Added EasySIP RA Type 1.4. Includes:

    • New Parameterable header type for manipulating headers that contain parameter lists (equivalent to SIP Servlet 1.1’s Parameterable). See SipFactory.createParameterable(), SipMessage.getParameterableHeader etc.

    • Unrecognized headers may still be accessed as Address or Parameterable types, the EasySIP RA will attempt to parse unknown headers as Address or Parameterable when calling get{Address,Parameterable}Header etc.

    • Added setter methods to TelURL.

    • Added endImmediately flag on SipSession so that services can request that ending of the SipSession SLEE activity be deferred until the service explicitly calls SipSession.invalidate(). The default flag value is endImmediately=true, which matches current behaviour.

      NB: EasySIP RA Type 1.3 is still supported for compatibility with existing services. However due to the RA Type change, an online upgrade from earlier SIS 2.5.0.x releases in the same Rhino cluster is not possible. Upgrades can be performed without service interruption by using a second cluster in parallel, contact OpenCloud for further details.

Version 2.5.0.2

  • Updated to use CGIN Connectivity Pack 1.5.0. Note that the current SIS release requires at least the 1.5.0.14 patch release of CGIN.

  • The array-length function can now be used in macro and script conditional expressions.

  • A "copy-of" attribute is now supported by the <object> and <array> elements in SIS expressions. For objects, the SIS will copy all relevant fields from the specified object into the instantiated object. For arrays, the SIS will make a copy of the specified array (and component arrays if a multi- dimensional array). Copies are made before any field or element assignments specified within the <object> or <array> element are applied.

  • SIS components can no longer be installed or replaced if doing so would cause a cyclic component dependency. This includes self-references. A SIS component audit will also now report on cyclic dependencies, and the SIS Export tool will refuse to generate an export image if cyclic dependencies are found, as there would be no natural order components could be reinstalled.

  • Improved deployment time checking of conditional expressions in SIS components. For example, if a conditional operator is missing a required argument value, the component will now fail to install.

  • Added new configuration properties to service refs that specify the dialog application context that the service will be triggered with. Separate properties are added for each of the main triggering dialog and user interaction assisting dialogs. If any of these properties are set, this application context is used for the northbound dialog to the service instead of the application context of the incoming network dialog.

    Note that the SIS does not natively perform any protocol translation, it merely just creates the northbound dialog with a different application context. This also means these configuration options are currently only relevant for IN dialogs. Service interceptor components can be used to implement protocol translation between the network and service dialog application contexts where necessary.

  • Any configured values for service ref properties such as default service timeout and static charging priority will now be preserved if the target of the service ref is replaced.

  • Fixed a NoSuchMethodError with the dumpnetworkinterfaces command in sis-console when deployed on Rhino 2.3.0.

  • Fixed a ClassNotFoundException deployment error that could happen under certain circumstances when installing a SIS component that included an expression attempting to instantiate an object of a protocol-specific datatype.

  • Fixed a NotSerializableException deployment error when installing a SIS component that included an expression attempting to instantiate a multi- dimensional array.

  • IN: The default response for the terminate-processing action on service timeout or a message handling option when no <in:terminate> child element is specified is no longer to do nothing after event processing terminates. Instead, the SIS will determine, if appropriate, a response to send to the network based on any previous service execution. This new behaviour is now consistent with a <halt> statement encountered in a service interceptor that similarly has no <in:terminate> child element. To obtain the previous behaviour, use the following child element where appropriate:

    <in:terminate record-as-reject="false">
      <in:no-response dialog-termination="none"/>
    </in:terminate>

    The schema-upgrade tool will automatically add this child element where appropriate when upgrading compositions from SIS 2.4.0 to 2.5.0 format so that the existing behaviour on service failure is preserved.

  • IN: Service input and output interceptors are now correctly applied to protocol messages on assisting dialogs that are correlated to a composition service by the SIS.

  • IN: Added pass-through as a new FCI interaction mode.

  • IN: When updating the FCI or Online Charging Interaction settings for an already installed composition, the SIS was updating the composition XML document using an incorrect name for the "mode" attribute. This meant that a Rhino export image was made after this change would not import again as the modified XML document would no longer pass validation. This issue has been fixed.

  • IN: When the SIS was proxying assisting dialog messages to an external service, it was erroneously accepting the original incoming assisting dialog using the responder SCCP address received in the first TC-CUE from the service, rather than using the responder SCCP address of the SIS. This has now been fixed.

  • IN: Fixed an issue that caused the SIS to generate an erroneous DialogUserAbortEvent towards a local service on an assisting dialog after the service had terminated that assisting dialog.

  • IN: Fixed an issue handling ConnectSMS operations in CAPv3 & CAPv4. The DestinationSubscriberNumber field in the ConnectSMS operation argument is optional, but the SIS was treating it as mandatory and rejecting the operation if the field was missing.

  • IN: Fixed an UnsupportedDigitException that occurred when generating the flow trace log for a CAPv4 EventReportBCSM for a mid-call event which contained '*' or '#' digits.

  • IN: Fixed an issue that prevented the SIS closing the network dialog if a service sent a TC-END containing CPH operations.

  • IN: Fixed an issue that caused the loss of applicationTimer DP-specific criteria from NoAnswer EDPs armed by the SIS when using CAPv4.

  • IN: Fixed an AssertionError processing an operation error response to an InitateCallAttempt operation that attempted to create a new call leg in an existing call.

  • IN: Fixed an issue handling the Connect operation while user interaction is in progress when using the Ericsson INAP CS1+ protocol. SIS behaviour was inconsistent between local and external services.

  • IN: Fixed a NullPointerException that occurred when handling the Ericsson INAP CS1+ ReconnectResult for a Reconnect operation sent for a leg still suspended by an EventReportBCSM.

  • IN: The default network response for a EventReportBCSM event received in Interrupted mode for a leg with id greater than 2 will now be an appropriate ContinueWithArg (CAPv4) or Continue (Ericsson INAP CS1+) operation with the relevant leg id parameter included in the argument, rather than a generic Continue operation with no argument.

  • IN: Corrected the application context registered by the Nokia INAP CS1 Message Utilities Provider Resource Adaptor.

  • IN: The Siemens INAP 7m+ protocol is now optionally supported.

  • SIP: EasySIP RA Type now supports early dialogs created by forked responses received from downstream SIP elements.

  • SIP: The status-code script variable is now assignable.

  • SIP: Was not setting to-tag on error responses to initial requests.

Version 2.4.0.8

  • IN: When updating the CalledPartyBCDNumber of a CAP InitialDP after receiving a Connect operation from a service, the SIS will now attempt to use the standard digit codecs first when converting the address string, and only if that fails revert to using the hex digit codec as it did previously. This means that the '*' and '#' digits, defined as standard digits but encoded using different values by the CalledPartyNumber and CalledPartyBCDNumber datatypes, will be converted correctly if the address string contains no non-standard digits.

  • IN: Fixed issues handling CAPv4 ContinueWithArgument operation in non-CPH scenarios.

  • IN: CAPv4 ContinueWithArgument sent in response to an EventReportBCSM for a leg not in the primary call segment will now be sent directly to the network rather than causing delivery of the EventReportBCSM to other services. This fixes some network call flow issues in scenarios containing, for example, ContinueWithArgument + MoveLeg for a held call leg.

  • IN: Fixed an issue where CAPv4 MoveLeg was not permitted after receiving a Mid-Call event report if the Answered EDP had not previously been armed and reported.

  • IN: Fixed an issue where handling the CAP4 EntityReleased event was not aborting any further processing of outstanding events already received for the affected call leg or call segment, which would lead to call flow issues and potential NullPointerExceptions later in the call.

  • IN: Fixed an issue handling service dialog closure in CPH scenarios when the only call legs whose BCSM was suspended were in non-primary call segments.

  • IN: Fixed a NullPointerException that occurred after event processing was continued for an EventReportBCSM for a service-initiated call leg.

  • IN: Fixed an issue causing premature post-processing of events received by a service in CPH scenarios which lead to an unexpected Continue operation being sent to the network.

  • IN: Fixed an issue that resulted in a Continue operation unexpectedly being sent to the network if a leg in the primary call segment was disconnected after an EventReportBCSM delivered in Interrupted mode was received for that leg.

  • IN: Fixed an issue where the SIS would not wait for a service response to an EventReportBCSM delivered in Interrupted mode for a leg not in the primary call segment if the primary call segment was not already suspended for some other reason.

  • IN: Improved dialog ID field in flow tracing output for dialogs managed by the Telesys Mach7 TCAP stack.

  • SIP: Fixed an issue where composition state was not getting cleaned up after a composition with no services.

  • SIP: Fixed an issue with incorrect handling of subscription refreshes in SipSession activities.

  • SIP: Add session attribute support.

  • SIP: Fixed an issue with incorrect RAck headers when forwarding PRACK requests as a B2BUA.

Version 2.4.0.6

  • Fixed example Ant deployment scripts so that they work correctly with CGIN 1.4 releases prior to 1.4.2.

  • Fixed sis-ant-management.xml Ant script so that it doesn’t also match against persistence API jars when trying to locate CGIN deployable units.

  • Fixed SIS worker thread pool which was being created with an initial core pool size of one thread rather than the configured maximum. The thread pool behaves better under stress if all threads are made available from the start.

  • Moved to a different worker thread pool implementation that produces stats with slightly different names, otherwise it’s the same information. Relevant SIS config properties have changed to conform with the naming conventions used by the new implementation. The name of the worker thread pool stats parameter set has also changed and is now the same for both IN and SIP.

  • Information about the current status of licensable functions is now output when a SIS instance is activated.

  • Added new alarms, raised if an attempt is made to use a licensable function for which no valid license is currently installed.

  • IN: Fixed an issue that caused the tcapsim TCAP stack to stop working correctly if a SIS instance was deactivated then reactivated again.

  • IN: Added missing fiber stats for fibers used by TCAP stacks.

  • IN: Fixed an NPE that occurred during composition discovery if composition selection was first attempted via profile lookup, which found a subscription profile but with an unprovisioned composition id for the trigger type, and then by some other type of composition selector which returned a valid composition id.

  • IN: Fixed an issue with the generated variable initialisation code that could have led to missing variable type information for the MAP datatypes newly used in CAPv4.

  • IN: Fixed an issue with the generated variable initialisation code that meant that datatypes that were only ever used in fields as an array did not have their datatypes registered. The only datatype this affected was com.opencloud.slee.resources.in.datatypes.cc.MSBearerCapability.GSM.Content.Speech.SpeechVersion. As a side-effect of this change, variable metadata information included in the "brief" listing of variables included in the download package documentation now consistently report array-type elements as assignable only, rather than some being incorrectly reported as deletable also. This is only a documentation change, no actual behaviour has changed - the <delete> function cannot be applied to array elements, instead the <array-remove-element> function should be used instead.

  • IN: Fixed TPS license consumption in certain multileg scenarios if a service aborted a dialog mid-call.

  • IN: For INAP protocols, the SIS will now correctly return an error result to a service that attempts to send a Connect with no leg or call segment qualifier while the primary call segment is performing user interaction.

  • IN: Added missing CGIN Message Utils Provider deployable unit for Nokia INAP CS1 to the corresponding distribution package.

  • IN: Improved performance, resulting in reduced CPU usage and latency.

  • IN: Fixed an obfuscation issue that prevented the Telesys Mach7 TCAP stack from working.

  • SIP: Following a previous change in IN, SIS message flow tracing has moved from SLEE tracers under the name "<entity-name>-trace" to the tracers under "trace".

  • SIP: Fixed an issue causing service response times to be measured incorrectly.

Version 2.4.0.5

  • Updated to use CGIN Connectivity Pack 1.4.2.

  • Dialog relay is now supported. This means that an inbound dialog can be relayed to an external service with the SIS dropping out of the call path.

  • Fixed the Windows admin scripts so they work correctly when the SIS install directory contains spaces in the path name.

  • Fixed an issue with sis-client-common.bat when the value of %JAVA_HOME% contains spaces in the path name.

  • Improved error handling of missing Rhino client.properties file to admin scripts.

  • SIS installer tool will now check that it can connect to Rhino before asking for any user input, rather than waiting until after.

  • Added some missing classes to the sis-client jar that were preventing a snapshot-based Rhino export from completing successfully in certain circumstances.

  • Fixed tab completion in sis-console in the case where tab completion results were based on a previous argument and that previous argument was quoted or contained escape characters.

  • Fixed a number of sis-console commands that allowed but ignored arbitrary parameters after the required parameters so that only the required parameters can now be supplied. Including extra unnecessary parameters now results in an "invalid usage" error.

  • Added missing SIS Management API javadoc for SIP.

  • Fixed an issue preventing the further modification of a trigger address tracing profile if in that profile both the debug level was set to a non- zero value and audit was enabled.

  • Fixed an issue that let you create network route rules that were syntactically different but semantically the same, eg: "protocol a & protocol b" and "protocol b & protocol a" It was permitted to create such network route rules however the network routing configuration would fail to load with a "duplicate route" error the next time the SIS configuration was reloaded. Semantically equivalent rules can no longer be created.

  • Fixed order of export of compositions and triggers in sis-export so that an import works correctly in the case where a trigger depends on a composition.

  • Fixed security permissions so that macro, trigger, and composition installation via file or network URLs will function as intended.

  • Fixed a NullPointerException that occurred when using the <equal> condition in macros, triggers, and compositions if the "a" parameter evaluated to a non-null value but the "b" parameter evaluated to null.

  • IN: The CAPv1 and CAPv4 protocols are now supported.

  • IN: The SIS internal state model has been completely rewritten to support a number of "call party handling" scenarios, ie. scenarios that utilise multiple call segments and potentially more than two parties per call. Because of this, some previously unknown or unrecorded issues may be been indirectly resolved and consequently not recorded here.

    The most significant limitation of the current call party handling implementation is that a service that invokes any of the call party handling operations must be the last service in the composition. Unpredictable results may occur if the service is not the last composition service. Note that service-initiated call legs are not currently subject to rebranching or retriggering.

  • IN: The implementation of rebranching has matured to the point where it is no longer considered just an experimental feature.

  • IN: SIS message flow tracing has moved from SLEE tracers under the name "insis-trace" to the tracers under "insis.trace". This means that flow tracing will now automatically be included in debug logging when the "insis" tracer is set to a debug trace level.

    Message flow tracing performed by network adaptors has also moved so that it appears on a tracer named for the network interface producing the trace, rather than under generic tracer name. This helps to distinguish which network interface produces each message flow trace.

  • IN: Fixed a caching issue that meant that deleted network interfaces were still activated with the SIS even after a configuration reload.

  • IN: Fixed an issue where SIS variables used in <halt> and service failure <terminate> actions were not being evaluated correctly at runtime.

  • IN: Fixed an issue where a CAP3 ConnectSMS terminate handler was being treated as a CC Connect instead.

  • IN: Fixed an issue where the SIS was still checking the argument type for a CAP3 ConnectSMS sent from an SCS extension component using the "terminate with invoke" option was a byte[] instead of RPCause.

  • IN: Fixed handling of ResetTimer operations from a service when the timerID field is not explicitly set.

  • IN: When an SCS extension component uses the "terminate with invoke" option the entire argument content will now be used in the resulting invoke, rather than only the argument parameter that can be specified in the equivalent <terminate> element in a trigger or composition.

  • IN: Fixed an NPE that occurred when trying to invoke an extension component in a service output interceptor for an operation event received in a TC_END dialog primitive from an external service.

  • IN: Call audit logs will now be generated if composition evaluation terminates before its natural end, eg. via a <halt> statement, a composition service terminates the call, etc.

  • IN: Fixed an issue where a change to an already armed EDP’s dp-specific criteria would cause the SIS to send an event request to the network with the EDP armed in Interrupted mode, rather than the monitor mode requested.

  • IN: Fixed an issue setting the online charging interaction mode of a composition to "static-service-priorities".

  • IN: Fixed an issue where the SIS may fail when non-standard digits are present in various operation address parameters. The SIS now uses the hexadecimal digit codec for:

    • Connect operations received from a service, to determine if the destination address has changed, when invoking the "propagate-on-destination-change" message handling option.

    • ETC operations, when obtaining the correlation ID to store, if the encoding scheme of the GenericDigits is BCD.

    • ARI operations, when obtaining the correlation ID to match.

    • The Redirect failure handler, when adding the redirect prefix to the called party number.

    • Trigger address tracing, when decoding the addresses specified by the trigger address tracing selectors.

  • IN: Fixed an issue where Connect or ReleaseCall mid-call responses from a service in a parallel block were not being propagated out as expected.

  • IN: Fixed a NullPointerException handling charging messages missing a party to charge leg id.

  • IN: A issue causing increased garbage collection activity when using Ericsson INAP CS1+ has been resolved.

  • IN: The TCAP stack config properties XML document parser in the SIS was complaining if the <description> element was missing from the document, even though the schema defined the element as option. The parser is now fixed.

  • IN: Fixed a problem with the SIS not copying the values of network interface config properties for third-party TCAP stacks into the ConfigProperties object passed to the TCAP stack, meaning the stack could not be configured correctly. This fix required the expected Java type of the config property to be added to the stack config property metadata, therefore the version of the corresponding XML schema has been incremented.

Changes to SIS Script Variables:

  • Note: A new upgrade-schema tool has been added to the the utils directory of a SIS install. This tool can be used to migrate macros, triggers, and compositions from previous versions of SIS to the current version.

  • IN: Added an open-response.responder-sccp-address variable: an assignable, deletable compound value with type SccpAddress. A value may be assigned to this variable in XML using a string formatted as described in Appendix A of the SIS Administration Guide. For example:

    <assign toVariable="open-response.responder-sccp-address"
        value="type=c7,ri=pcssn,pc=59,ssn=146"/>

    If this variable is set to a non-null value during trigger evaluation, either by a trigger condition or by an SCS extension component, then this value will be used as the responder SCCP address in the dialog Open Accept sent to the network after trigger evaluation completes.

    This variable has no further meaning to the SIS after the Open Accept has been sent.

  • IN: Variables representing arguments and fields of protocol-specific operations are now code-generated from the CGIN APIs rather than hand-coded. As a consequence, there have been some widespread changes to the set of supported IN variables:

    • All fields and datatypes used by all operations in supported protocols are now accessible via script variables. Support for MAP datatypes is limited to those used by the CAP protocols.

    • All variables relating to fields of an operation argument now include an intermediate "arg" component in their variable name. For example, the "initial-dp.service-key" variable is now called "initial-dp.arg.service-key".

    • All variable names are now case insensitive. The exception is that case sensitivity is retained (for backwards compatibility) for the user-defined part of a user variable name. This means that "${initial-dp}" and "${INITIAL-DP}" refer to the same variable, as do "${user.foo}" and "${USER.foo}". However "${user.foo}" and "${user.FOO}" do not.

    • The named values that can be assigned to variables representing a Java enum type or a CGIN NamedInteger have changed. The assignable values are now equal to the named values defined by the respective CGIN API. For example, whereas a variable of type CCEventTypeBCSM previously allowed the named value "O_CollectedInfo", the named value "collectedInfo" as defined in the CGIN API is now required instead. Named values are case-sensitive.

    • A variable can now be "dereferenced" to obtain values for its sub- variables. In particular this allows the components of compound datatypes assigned to user variables to be obtained. Refer to the documentation for more information on dereferencing.

    • The <present>, <assign>, and <delete> script elements, along with the <profile-lookup> trigger selector element, now require their variable parameter to be explicitly surrounded by '${' and '}'. This allows dereferenced variables to be used with these elements.

    • Array types are now fully supported in script variables.

    • A number of other new types of variables are now supported, including: long, float, double, BigInteger, BigDecimal, and CGIN types such as BitString and ASN1Null.

    • Arbitrary values for compound datatypes and arrays can now be constructed and assigned to variables. Refer to the documentation for more information.

    • Variables representing operation argument extension fields are no longer directly provided. Instead, a query function on the extension field array can be used to find extension fields of a given type. Refer to the documentation for more information

Changes to SIS Script Schemas:

  • As a consequence of the changes noted here, schema version numbers have been incremented.

  • Note: A new upgrade-schema tool has been added to the the utils directory of a SIS install. This tool can be used to migrate macros, triggers, and compositions from previous versions of SIS to the current version.

  • Renamed the <fail> element, used in triggers to specify a failure clause, and in various places in compositions, to <terminate>, and allowed it to be used for both success and failure scenarios. For example you can now send a Connect response to an InitialDP from a trigger and not have it recorded as a failure.

    This change provides the XML scripting equivalent to the Service Composition Selection Extension Resource Adaptor Type API changes made in SIS 2.3.1.

  • The SIS composition <halt> element now has extensions for IN, equivalent to the <in:terminate> element used for service invocations.

  • As a result of adding the option for dialog relay to the <in:terminate> and <in:halt> elements, it is no longer appropriate for these elements to include the "dialog-termination" attribute (as it is not relevant for relay). This attribute has therefore moved to the relevant nested elements. The attribute also now allows the value "none", indicating the no dialog termination will occur. This addition is also reflected in the DialogTerminationPrimitive type used in the Service Composition Selection Resource Adaptor Type.

  • The <in:final-redirect> configuration option for IN compositions has been removed. Identical behaviour can now be obtained using an <in:halt> element with an equivalent <in:redirect> at the end of the composition script.

Version 2.3.1

  • Updated to use CGIN Connectivity Pack 1.3.5.

  • Added missing INSISClient interface to the SIS Management API javadoc.

  • Added getVariable() method to Service Composition Selection activity object interface (SCSActivity) to allow access to script variables from such an activity.

  • Added delete() methods to the ScriptVariable interface used in SIS Extension Activities to complement the equivalent action available via XML scripting.

  • Fixed an issue with the "threadsAvailable" statistic in the SIS Work Queues stats parameter set. The counter could have become negative in overload conditions.

  • Fixed SIS admin tools to correctly utilise the $CLIENT_HOME environment variable, if it’s set, in preference to a CLIENT_HOME setting stored in the admin tools' config property files.

  • IN: The "no default route configured" alarm will now be cleared, if it was raised, when a SIS instance is removed from the SLEE.

  • IN: The behaviour of the SIS when handling event reports for leg terminating EDPs has been changed to more accurately reflect real-world behaviour. If such an event is received from the network:

    • as a notification, SIS will assume that the call will be released in the network and will therefore terminate the composition

    • as a request:

    • if the event report is delivered to the service as a notification, the dialog to the service will be terminated

    • if the event report is delivered to the service as a request, and the service responds with a Continue, the dialog to the service will be terminated under the assumption the service expects the call will be released

    • if the final response the SIS sends to the network is a Continue, the SIS will assume the network will release the call and therefore will close the network dialog Note that a dialog will only be terminated if there are no relevant outstanding charging reports pending.

  • IN: The CAPv3 protocol is now fully supported for voice calls. It is no longer require to enable such support using the "cap3-voice-support" experimental feature. Consequently this experimental feature option has been removed.

  • IN: Added missing profile-spec-refs to the SIS Unified resource adaptor so that rhino-export will correctly find all profile table dependencies required for a successful import.

  • IN: Fixed an issue which meant that if a service in a composition caused a failure leading to the originating network dialog being terminated, northbound dialogs for other external services in the composition in some circumstances weren’t also terminated.

  • IN: Added new methods to INSCSActivity and INSCSEvent in the Service Composition Selection Extension Resource Adaptor Type that allow trigger evaluation to be terminated without being recorded in statistics as a failure scenario. New stats parameters have been added to the "Activities Received (conducted)" stats parameter set to cover the non-failure termination cases.

  • IN: Fixed the implementation of the setValue methods in ScriptVariables obtained from an extension activity object which were erroneously passing on the event argument as the value to be set, instead of the value argument.

  • IN: Fixed an event-delivery issue. If a network event was received while already processing a previous event that suspended the call state model, the latter event would not be delivered until either another northbound event occurred or processing of the former event was completed.

  • IN: Fixed an issue where if a service sent a ReleaseCall operation in response to the InitialDP, and the EventReportBCSM generated by the SIS to notify other services of the call termination was delivered to a service that had requested the event report in notify & continue mode only, then the SIS was delivering that event report to the service as a notification however the miscCallInfo parameter within the EventReportBCSM argument was set to indicate the report was a request.

  • IN: Fixed an error in determining if there were any armed event reports when handling a Cancel request from a service while not suspended at a DP.

  • IN: Tweaked general behaviour for sending Cancel requests to the network. Now, in cases where the SIS previously considered it redundant to send the Cancel, it’s more likely to send the Cancel rather than not.

  • IN: Fixed an issue where the extension activity was not being ended in the SLEE by the SIS in various cases such as when a service composition selection extension component terminated composition selection by returning an error result.

  • IN: Fixed an issue that prevented the Downcall output interceptor event from being fired to an interceptor extension component.

  • IN: Fixed an off-by-one array indexing error handling apply charging and call information reports.

  • IN: Fixed an issue with the handling of Apply Charging and Send Charging Information requests sent by a service if the generic call-control operation argument container type was used instead of the protocol-specific argument type.

  • IN: Operation error responses for charging requests (FCI, Apply Charging, Send Charging Info, Call Info Request) will now be correctly forwarded to the initiating service, rather than being treated as an unexpected error leading to composition and network dialog abort.

  • IN: Fixed an issue where the SIS would not close the network dialog until the outstanding charging report was received if a service sent an Apply Charging request then later closed the dialog before the report was received.

  • IN: Fixed an issue where the SIS may not have closed the network dialog in some cases if final charging reports were delivered in a separate TCAP block after the leg-terminating event report.

  • IN: Fixed a NullPointerException that occurred if the SIS received an EventReportBCSM without a leg id parameter when one should be present, eg. for the Disconnect EDPs.

  • IN: Fixed a NullPointerException that occurred in the SIS if an output interceptor component had event handler methods for the Downcall interceptor event as well as an individual component event contained in the output TCAP block.

  • IN: If an output interceptor extension component handling the Downcall extension event converts a Delimiter to a Close, the SIS will now send a User Abort to the intercepted service, if a service output interceptors, or all services, if a composition output interceptor, to clean up the service dialog(s).

  • IN: Fixed a race condition with the service response timeout timer task which could cause an AssertionError if the service ended just as the timer task was firing.

  • IN: Fixed an issue that caused new fields added by subprotocols of CAPv2 to Furnish Charging Information request arguments to be lost by the SIS when it forwarded FCI requests to the network. All FCI argument fields will now be preserved by the SIS even if it doesn’t know about them.

  • IN: Fixed an issue with the handling of multiple Furnish Charging Information requests sent by a service while in the same BCSM state. The second and subsequent FCI requests were being lost.

  • IN: Fixed an Ericsson CS1+ specific issue around the implicit disarming of EDPs for the leg linked to the one reporting an event.

  • IN: Fixed an Ericsson CS1+ specific issue resolving conflicts between DP specific criteria in RequestReportBCSM operations: if a local service specified criteria using the CS1DPSpecificCriteria super-protocol class instead of the ECS1pDPSpecificCriteria class, then conflicts with other services may not have been resolved as expected.

  • IN: Fixed a double decrement of the live activity count in activity statistics when a dialog started by an SBB ended. This was leading to the live activity count becoming negative.

  • IN: Fixed the application contexts that the ETSI INAP CS1 CGIN Message Utils Provider Resource Adaptor will provide support for. It was missing the SCP → SSP and assisting-handoff application contexts for ETSI CS1.

  • IN: Fixed an obfuscation issue that prevented third-party TCAP stacks from being used by the SIS.

  • IN: The Nokia INAP CS1 protocol is now optionally supported.

Changes to SIS Script Variables:

  • IN: Added root variables for all known operation invokes and results in currently supported protocols. At minimum this allows for the presence of the operation invoke or result to be detected within an event stream.

  • IN: Added an invoke-id sub-variable to all operation variables, specifying the invoke id of the operation. This is a read-only integer variable with values in the range [-128,127].

  • IN: Added a linked-id sub-variable to specialized-resource-report, specifying the invoke id of the Play Announcement or Prompt & Collect User Information the SRR is linked to. This is a read-only integer variable with values in the range [-128,127].

  • IN: Added O_AttemptAuthorized as a named value for the event-type-bcsm sub-variable.

  • IN: Fixed an error with the release-call variable that would have had it erroneously match against a Connect operation instead of a ReleaseCall operation.

  • IN: New variables added for Nokia INAP CS1, all are assignable and deletable:

    • initial-dp.ncs1.abs-subscriber - a named integer variable representing the absSubscriber extension

    • initial-dp.ncs1.gateway-ssf-indication - a flag-type variable that carries no value representing the gatewaySSFIndication extension

    • initial-dp.ncs1.imsi - a compound datatype representing the imsi extension

    • initial-dp.ncs1.mm-event-type - a named integer variable representing the mm-EventType extension

    • initial-dp.ncs1.msrn - a compound datatype representing the msrn extension

    • initial-dp.ncs1.sm-rp-ui-header - a compound datatype representing the sm-RP-UIHeader extension

Changes to SIS Script Schemas:

As a consequence of the following changes, schema version numbers have been incremented, however the new schemas are fully backwards compatible with the SIS 2.3.0 schemas.

  • IN: Added a definition for the <imsi> compound datatype used in the Nokia INAP CS1 extension field variable.

Version 2.3.0

  • Updated to use CGIN Connectivity Pack 1.3.1.

  • Profile management interfaces have been added for all profile specifications defined by SIS. Except for the SIS Configuration Profile, the profile management interfaces provide a read-only view of SIS profile state. This is to encourage management of the SIS via the SIS JMX MBean interfaces, rather than unaudited direct manipulation of profiles storing the persistent state of the SIS.

  • Added 'failifmissing' attribute to <sis-management> Ant task. Allows an Ant build file to specify whether or not failure to connect to a given SIS instance is a fatal error condition. Default value is 'true'.

  • An "extension-options" element has been added to the composition descriptor schema. It permits arbitrary extension options to be defined by the SIS and included in a composition without having to further modify the schema.

  • The "extension-options" attribute previously associated with the <invoke> and <parallel> elements in a composition script has been removed and replaced with an <extension-options> element within the same parent element. This <extension-options> element follows the same syntax as the element of the same name mentioned in the previous paragraph. Existing extension options have had a minor revision as follows:

    traffic-reduce -> SIP:traffic-reduce
    use-service=XYZ -> SIP:use-service, with value "XYZ"
    accept-non-continuing-close -> IN:accept-non-continuing-close
  • IN: Added extension option "IN:proxied-invoke-timer-long" which can be used to specify an invoke timeout period for 'long timer' operations, such as Play Announcement and Prompt & Collect User Information, proxied by the SIS for external services. This extension option can be specified for an individual service or for the composition.

  • IN: The 'idd-prefix' and 'country-code' configuration properties have been removed from the global SIS configuration. As these properties were only used if a redirect prefix was specified for a composition, they must now be specified as part of a redirect request. This means:

    • the redirect-prefix composition XML element has been replaced with a final-redirect element, with the IDD prefix, country code, and redirect prefix specified as attributes of this new element

    • the redirect failure type XML element has been replaced similarly

    • the Service Composition Selection resource adaptor type failWithRedirect() methods have been modified to require the additional parameters

    • new management commands have been added to support changing the final redirect of a composition at runtime

    • due to required schema changes, the versions of most SIS schemas has been incremented

  • IN: Added a timer to periodically send out an ActivityTest on eligible network dialogs managed by the SIS. A "query-liveness-period" resource adaptor config property has been added to configure the timer period.

  • IN: The Ericsson INAP CS1+ protocol is now optionally supported.

  • IN: Fixed internal proxy for CAP3 SMS dialogs so that it works again.

  • IN: Fixed an issue that made a virtual dialog unusable after a Delimiter was sent on the dialog without any component operations. Attempting to send anything else on the dialog after this time would cause the sending thread to block indefinitely.

  • IN: Fixed a NoClassDefFoundError that occurred when using fine-grained tracing in conjunction with trigger address tracing selectors.

  • IN: Fixed an issue that meant a DisconnectForwardConnection was not sent by the SIS to the network to clean up user interaction state if a service prematurely closed its dialog during user interaction when configured with the "accept-non-continuing-close" extension option.

  • IN: Fixed an issue that meant that if a service failed while some other service was doing user interaction, internal SIS state regarding the user interaction was corrupted.

  • IN: Fixed an issue with the network router incorrectly selecting a route if either a point code or SSN (but not both) were absent from the rule.

  • Fixed sis-exporter so that it doesn’t fail if an Experimental Features profile table is not configured or does not exist. It is assumed that all experimental features are disabled if a correctly configured Experimental Features profile table is not present.

  • Fixed typos found in some sis-console command descriptions.

Changes to SIS Script Variables:

  • IN: Changes to existing variables:

    • initial-dp-sms.calling-party-number-sms.* renamed to initial-dp-sms.calling-party-number.*

    • initial-dp.bearer-capability.itu-t.* variables in this namespace are now assignable

    • initial-dp.location-info.location-info.age-of-location variable name corrected to initial-dp.location-info.age-of-location

    • initial-dp-sms.event-type-sms & event-report-sms.event-type-sms valid integer value range reduced from 1..13 to 1..3 to accurately reflect the valid values defined by the CAPv3 protocol

  • IN: New variables added, all are assignable. Added for "inn-routing" component of address-type variables.

    This is an integer variable with named values: [allowed,not-allowed]. The valid value range is [0..1]:

    • connect.destination-routing-address.inn-routing

    • initial-dp.called-party-number.inn-routing

    • initial-dp.location-info.location-number.inn-routing

    • initial-dp.location-number.inn-routing

    • initiate-call-attempt.destination-routing-address.inn-routing - Added for "number-incomplete" component of address-type variables

    This is a boolean variable:

    • connect.additional-calling-party-number.number-incomplete

    • connect.calling-party-number.number-incomplete

    • initial-dp.additional-calling-party-number.number-incomplete

    • initial-dp.calling-party-number.number-incomplete

    • initiate-call-attempt.calling-party-number.nNBumber-incomplete

    • initial-dp.location-info.service-area-id.* - compound datatype of type service-area-id

  • IN: Changes to compound datatypes:

    • calling-party-number

      • codec component renamed to address-codec

      • number-complete component renamed to number-incomplete

      • affects script assignments to:

        • connect.calling-party-number

        • initial-dp.calling-party-number

        • initiate-call-attempt.calling-party-number

    • called-party-number

      • codec component renamed to address-codec

      • allow-inn-routing renamed to inn-routing

      • affects script assignments to:

        • connect.destination-routing-address

        • initial-dp.called-party-number

        • initiate-call-attempt.destination-routing-address

    • called-party-bcd-number

      • codec component renamed to address-codec

      • affects script assignments to:

        • initial-dp.called-party-bcd-number

        • initial-dp-sms.destination-subscriber-number

    • generic-number

      • codec component renamed to address-codec

      • number-complete renamed to number-incomplete

      • affects script assignments to:

        • initial-dp.additional-calling-party-number

        • connect.additional-calling-party-number

    • isdn-address

      • renamed to address-string

      • codec component renamed to address-codec

      • affects script assignments to:

        • initial-dp-sms.calling-party-number:

        • initial-dp.location-info.vlr-address:

    • cell-global-id

      • codec component removed

      • added components mcc-codec and mnc-codec

      • affects script assignments to:

        • initial-dp.location-info.cell-global-id

    • service-area-id

      • added for script assignments to:

        • initial-dp.location-info.service-area-id

    • location-area-id

      • codec component removed

      • added components mcc-codec and mnc-codec

      • affects script assignments to:

        • initial-dp.location-info.location-area-id

    • location-number

      • codec component renamed to address-codec

      • allow-inn-routing renamed to inn-routing

      • affects script assignments to:

        • initial-dp.location-info.location-number

        • initial-dp.location-number

    • original-called-party-id

      • renamed to original-called-number

      • codec component renamed to address-codec

      • affects script assignments to:

        • initial-dp.original-called-party-id

    • redirecting-party-id

      • renamed to redirecting-party-number

      • codec component renamed to address-codec

      • affects script assignments to:

        • initial-dp.redirecting-party-id

Version 2.2.1

  • Updated to use CGIN Connectivity Pack 1.2.6.

  • Added support for multiple network interfaces within a single SIS instance and a routing table to select which network interface should be used for any given outbound dialog. These are managed via new MBean interfaces and new commands in sis-console.

  • New elements have been added to the composition schemas. Consequently the versions of these schemas have been incremented.

  • The category names of SIS-specific console management commands have been prefixed with "sis-" to make them more obvious as to what they apply to.

  • Trigger address tracing selectors can now be specified for third-party call triggers. Consequently, the existing getSelectors(boolean) and setSelectors(boolean, TriggerAddressTracingSelector[]) operations on the TriggerAddressTracingManagementMBean interface have been deprecated and new variants that take a TriggerType parameter instead of the boolean have been introduced.

  • SIS Exporter tool now includes external platform definitions in the export.

  • Added non-interactive execution modes to SIS Installer and Instantiator tools, allowing easier automated installs.

  • IN: Added a max-dialogs configuration property that can be used to limit the maximum number of concurrent network dialogs the SIS will allow before rejecting new dialogs for first-party call attempts.

  • IN: Added options to specify how the SIS behaves when it receives an Open Refuse, a User Abort, or a User Error response to an event delivered to the service in Interrupted mode.

  • IN: Local services invoked by the SIS will now function correctly if they process the Open Request event instead of the initial request event. The basic CGIN RA requires that a service process only the Open Request (as the initial request can be obtained from the Open Request event), however the SIS previously complained if a service didn’t process the initial request. Now SIS is aligned with the CGIN RA in this respect.

  • IN: Fixed support for ActivityTest operation from both local and external services.

  • IN: Fixed issues with the SIS firing interceptor extension events to an output interceptor extension component.

  • IN: A timer no longer operates when a service sends an ETC request, as the assisting dialog may not be opened by the SRF/IP towards the SIS platform.

  • IN: Improved some call flows generated by the SIS towards the network at the end of user interaction portions of a call.

  • IN: Reduced the amount of interaction the SIS adds to assisting dialogs. This indirectly improves error cases (open refusals, user aborts, etc).

  • IN: Some flow tracing improvements, particularly wrt external services.

  • IN: When resolving conflicts between differing application timer DP-specific criteria, the smaller of the two values is now selected instead of the larger.

  • IN: Implemented support for Ericsson INAP CS1 charging messages (FCI, Apply Charging, etc).

Changes to SIS Script Variables:

  • IN: Added open-request variable and sub-variables.

  • IN: Added cause variable and sub-variables to existing release-call variable.

Version 2.2

  • Updated to use CGIN Connectivity Pack 1.2.1. INCC APIs are no longer supported. CAP and INAP supported has been combined into a single 'unified' SIS for IN, which also supports MAP protocols for outgoing dialogs only.

  • Trigger address tracing support added to SIP such that it is now a common feature between IN and SIP.

  • Added monitoring of external services, so that failures can be detected quickly, and new calls directed to a backup server. Failover or recovery of external services can be initiated manually by an administrator, or automatically by the SIS, based on configurable thresholds.

  • A 'keep-alive' activity has been added to the SIS. This activity ensures that the SIS remains in the STOPPING state when deactivated if the only dialogs known to the SIS relate to external rather than local services. The keep-alive activity will be ended, allowing the SIS to return to the INACTIVE state, once all dialogs known to the SIS have ended.

  • The identity of some existing alarms raised by the SIS has been modified. Some new alarms have been added.

  • Added a basic SIS state exporter admin utility, useful for exporting the state of a SIS instance in a manner that can facilitate upgrades easier.

  • A SIS MBean permission policy file is now provided in the documentation directory.

  • SIS variables can now be obtained via the Composition Activity interface.

  • IN: The Ericsson INAP CS1 protocol is now optionally supported.

Changes to SIS Script Variables:

  • IN: The 'global-cell-id' subvariable of 'initial-dp.location-info' has been renamed to 'cell-global-id'.

  • IN: The 'global-cell-id' compound datatype has also been renamed to 'cell-global-id'. It has also had its digit codec specification changed. Instead of specifying just one digit codec for both MCC and MNC digit strings, separate codecs may now be specified for each digit string.

  • SIP: The read-only variable 'message-body' has been added, for examining SDP and other text-based message bodies.

Version 2.1

  • Requires Rhino 2.1+.

  • Further alignment of SIS features and tools between SIP and IN protocols. A unified sis-console replaces the previously separate insis-console and sipsis-console.

  • Add windows support, implemented batch file scripts for admin, configuration, etc.

  • References to services invoked by compositions are now SIS components managed via the JMX interface. Compositions no longer include <service-ref> elements. Network addresses for external services can be changed at runtime. External addresses may be selected via round-robin, active-standby, or load-share options.

  • Extension Service API Resource Adaptor Type renamed to Interceptor Extension Resource Adaptor Type.

  • Signalling interceptors can now be used to process service output, as well as input and output to a composition as a whole.

  • Added support for invoking composition services in parallel.

  • Added more XML variables to expose more signalling parameters to macros, triggers, and compositions. Made many existing variables that were read-only in the XML assignable also.

  • The syntax of expression conditions has been changed to make them simpler to use while more flexible. Variables can now be used in place of any literal value.

  • Functions that operate on string values, eg. substring, index-of, append, etc are now available to be used in expressions.

  • Compound data types such as IN CallingPartyNumber and CalledPartyNumber can now be described in XML and assigned to relevant variables.

  • It is now possible to specify how the SIS deals with a composition service that fails or doesn’t respond. The SIS can ignore the service and continue (the previously available default behaviour) or terminate processing of the current event.

  • Extension options can now be specified when invoking a composition service. Extension options can modify how the SIS handles the service.

  • Added configurable inbound rate limiter to throttle new work accepted by the SIS.

  • Updated to use IN Connectivity Pack 3.2 at a minimum.

  • IN: Service input and output interceptors are now re-evaluated each time the service is invoked. Previously an interceptor was only invoked for the initial request.

  • IN: The SIS now supports third-party call setup attempts initiated by external services (only). A composition may be triggered using the signalling parameters contained in the InitialCallAttempt request.

Version 2.0

  • Updated to implement SLEE 1.1 standard resource adaptor APIs. Requires Rhino 2.0+.

  • Management interfaces have been overhauled and are now completely based on JMX MBeans, rather than manipulation of SLEE Profiles. Many management interfaces are common to both SIS for SIP and SIS for IN.

  • Compositions, triggers, etc, are now defined in their own XML files and installed as "components" to the SIS via JMX (similar in nature to how SLEE components are installed into the SLEE).

  • Provisioning tools have been replaced by extensions to rhino-console, so that both the SIS and Rhino command can be run in the same client. The command history and tab-completion features of rhino-console are supported for all SIS commands.

  • Compositions may now contain branches so that different services can be invoked depending on the value of signalling parameters.

  • A set of Ant tasks is provided for running SIS commands from Ant build scripts.

  • Audit trail logs may now be collected at various levels of granularity.

  • The SIS supports a Service Composition Selection Extension Resource Adaptor Type. This allows custom Java code to select which composition should be invoked for a particular call.

  • Added an Extension Service API Resource Adaptor Type. This allows custom Java code to change signalling parameters before a network event is delivered to a composition service.

  • IN: Added a Composition Activity Provider Extension Resource Adaptor Type. A Composition Activity is a SLEE activity that is mapped to the lifecycle of a network dialog and may be used to share SLEE state between different services in a single composition.

  • IN: Updated to use IN Connectivity Pack 3.0_02 at a minimum. SIS for IN requires an IN Connectivity Pack 3.0_02 installation to function.

  • IN: Added support for CAPv3 SMS messages in compositions.

  • IN: The SIS now supports handling of all online charging messages (Apply Charging, Call Information Request/Report, Send Charging Info)

  • IN: Added support for external services to be invoked directly by the SIS, allowing proxy service functionality (ie. message forwarding to an external SCP) without the overhead of SLEE activities and events.

  • IN: Removed the proxy and redirect services as their use is now redundant.

  • IN: Removed hard-coded behaviour to check for valid service keys on each initial request. This behaviour can now be scripted and customised in a trigger rule if required.

SIS-SIP Changelog

Version 2.7.0.3

Improvements

  • Add config property RFC3263:blacklist_on_transaction_timeout. Specifies whether to blacklist addresses on SIP transaction timeout. (SIP-549)

  • Added a rate limiter endpoint for initial INVITE requests, so that INVITEs can be rate-limited while allowing other requests to pass through. (SIS-1480)

  • Allow services using the Proxy activity to process "100 Trying" response events. These responses are never automatically forwarded. (SIS-1477)

  • Updated DNS resolver to use timeout and attempts options configured in the host’s /etc/resolv.conf file, or the RES_OPTIONS environment variable, if it exists. (SIP-553)

  • Removed redundant outgoing INVITE map. (SIS-1494)

Fixes

  • Fixed a spurious exception that could occur when a proxy application generated its own final response while processing an incoming final response event. (SIS-1484)

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

  • Fixed issue where Address objects constructed from unrecognized address-like headers could lose their parameters. (SIS-1495)

Version 2.7.0.2

Fixes

  • Allow late 2xx/INVITE responses to pass through if Proxy has just ended. (Updates previous fix for SIS-1470)

  • Added SipSession and Proxy methods for creating CANCEL requests with additional Reason header values. (SIS-1461)

  • Improve SAS tracing so that dialog markers are also reported for requests that aren’t processed by local services, such as requests that go directly to external platforms. (SIS-1478)

  • Automatically respond to late PRACKs if a session ended while it still has unacknowledged reliable provisional responses. (SIS-1451)

  • Suppress spurious exceptions in logs due to internally generated CANCEL responses racing with application responses. (SIS-1467)

Version 2.7.0.1

Fixes

  • Invalidate cached external platform entries on all nodes as soon as configuration changes to the external platform are detected. (SIS-1459)

  • Fixed spurious warning that could occur when a CANCEL arrived at the same time as the service sending an error response to the initial INVITE. (SIS-1381)

  • Fixed regression that caused Proxy activities to ignore synthetic error responses generated when SIS’s Timer C expired. (SIS-1466)

  • Ensure SIS node’s IP address is used in Route headers when invoking external platforms, so that the request always routes back to the same node. (SIS-1449)

  • Fixed race condition where an incoming CANCEL could be dropped if it arrived before its INVITE had been completely processed. (SIS-1455)

  • Fixed ClassCastException that could occur when sending responses via Proxy. (SIS-1469)

  • Allow late 2xx/INVITE responses to pass through if Proxy has just ended. (SIS-1470)

  • Added AutomaticOptionsResponses interface property to selectively enable or disable automatic OPTIONS handling on each interface. Defaults to enabled. (SIS-1476)

Version 2.7.0.0

Improvements

  • Added rateLimitedResponseCode and retryAfterPeriod config properties that allow the error response generated by the SIS when an initial request is rate limited to be customised (SIS-1366).

  • Added a failover rate limiter endpoint that can be used to throttle session failover adoption attempts after a Rhino cluster node failure when using key/value store replication. Sessions needing adoption that are rejected due to rate limiting are rejected with an error response as determined by the rateLimitedResponseCode and retryAfterPeriod config properties. (SIS-1369)

Fixes

  • When proxying in sequential mode, send application-generated responses immediately. (SIS-1446)

  • Log messages at WARNING level will no longer be generated if the SIS tries to fire an event to the SLEE on an activity that is ending or has already ended. These messages will be logged at FINER level instead. (SIS-1445)

  • Replicated session state will now be updated as it should after a dialog receives an ACK and the session transitions to the CONFIRMED state. (SIS-1453)

  • Fixed state retention from non-adopting replicated storage queries. (VOLTE-8476)

  • Ensure that Reason header is copied when a CANCEL is re-generated internally. (SIS-1448)

Changes in Dependencies

  • SIS depends on Rhino 2.7.0 or later.

Version 2.6.2.9

Improvements

  • When proxying to multiple targets in sequential mode, ensure the latest response is forwarded. (SIS-1442 & SIS-1443)

  • Made the UDPMaxRequestSize config property configurable in the create-sis-sip-instance tool. (SIS-1444)

Fixes

  • Fixed slow leak in access-transfer invite handling when the target dialog is on another node. (VOLTE-8176)

Version 2.6.2.8

Improvements

  • Add config property RFC3263:fallback_to_blacklist_address to allow blacklisted addresses to be used as a last resort. (SIP-530)

Version 2.6.2.5

Improvements

  • If a service is inactive and does not process the initial request, use the composition’s error behaviour rather than simply rejecting the request with 503. (SIS-1427)

  • Reject re-INVITE with 491 if still awaiting ACK for previous INVITE. (SIS-1412)

  • Peers will no longer be blacklisted on 503 responses. Also, retries to alternate peers will be limited to a max of 2 or 10% of all SRV records. If all retries are unsuccessful, a 504 will be returned. (VOLTE-7087)

  • Do not try to use a blacklisted address as last resort when no addresses are available, just fail the request. (SIP-530)

Version 2.6.2.4

Fixes

  • Fixed a race condition that could occur when multiple threads attempted to parse the same header object in a message. (SIP-527)

Version 2.6.2.3

Improvements

  • Removed an unnecessary hostname lookup that could occur when matching dynamic SRV names. (SIS-1433)

Fixes

  • Fixed check for outgoing INVITE/2xx responses while session has unacknowledged reliable provisional responses with SDP. (SIS-1432)

Version 2.6.2.2

Improvements

  • Made the "Timer C" value used by the SIS configurable with the opencloud.sis.sip-timer-c system property, which takes a time in milliseconds, default 180000 (3 minutes). (SIS-1415)

Fixes

  • REGISTER "To" header is now reported to SAS at "None" scope, fixing incorrect correlation between unrelated trails. (SIP-524)

Version 2.6.2.1

Improvements

  • Fixed creation of forwarded SipSessions so that the new session’s local and remote addresses are initialized from the incoming request’s From and To headers, rather than the incoming session’s addresses, which may differ if the request was updated after the incoming session was created. (SIS-1424)

  • Added the AllowLoopbackSend config property, to allow the SIS to send messages to its own SIP address. Made this configurable in the create-sis-sip-instance tool. (SIS-1426)

  • Made the UseVirtualAddressInURIs network interface property configurable in the create-sis-sip-instance tool. (VOLTE-7252)

  • Fixed matching of per-node dynamic SRV names when routing outbound requests. If an outbound request is routed to the same node’s dynamic SRV name, then process it locally, otherwise forward externally. (SIS-1409)

Changes in Dependencies

  • SIS depends on Rhino 2.6.2 or later.

Version 2.6.1.8

Improvements

  • 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 Tel URIs starting with * or #. (SIS-1418)

  • Fix a buffer leak that occured when reporting SIP messages to SAS. (VOLTE-7136)

Version 2.6.1.7

Improvements

  • Send 481 (was 503) error response for a mid-dialog request that is not processed by an SBB. (SIS-1408)

Fixes

  • Send 504 (was 503) error response for proxying failures caused by transport errors when attempting to proxy to another Rhino node. (SIS-1421)

Version 2.6.1.6

Improvements

  • Remove 100rel option-tag from Require header of outgoing non provisional responses. (SIS-1377)

  • Keep track of all dialog ending requests for multi use sessions, and only transition from ending state once all have responses. (SIS-1379)

  • 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)

  • Fix session state cleanup to delete from the KV store without searching for the session first. Requires Rhino 2.6.1.3 or newer. (SIS-1385)

Version 2.6.1.5

Improvements

  • Add isInviteTerminated() and isSubscriptionsTerminated() methods to SipSession to check dialog use. (VOLTE-4786)

  • Fixed a regression that caused composition state to leak. (SIS-1338)

  • Fixed issue where SIP worker threads could block while processing CANCELs due to an unexpected exception during INVITE processing. (SIS-1376)

Version 2.6.1.4

Improvements

  • Defer cleanup of composition state (and associated activity state) until the activityEnded callback. (SIS-1338)

  • Fixed case where an extra Record-Route header was being added to the forwarded initial request when the application set the local Contact address on the session. (SIS-1383)

Version 2.6.1.2

New Features

  • Added support for replication of established SIP dialog state using Rhino’s Key-Value store or Savanna replication methods. (SIS-1218)

  • SIP dialogs may be replicated by default, or a service may opt to only replicate particular dialogs, using SipSession.startReplicating(). (SIP-1298)

  • Added EasySIP API for encoding and decoding SIP message objects, for use in CMP. (SIS-1221)

  • Added support for Rhino’s Session Ownership Facility, to track ownership of SIP dialogs. Allows mid-dialog requests to be proxied to the owner node, or takeover of a dialog if the owner node has left the cluster. (SIS-1242)

  • Added support for tracing with MetaView Service Assurance Server (SAS). (SIS-1232)

  • The SIS may optionally use a DNS SRV name derived from its IP address as the hostname in SIS Contact and Record-Route URIs. This allows SRV names to be provisioned for each node in the cluster, providing different sets of backup addresses for each node. See the DynamicSRVNameFormat property in the sis-console command listnetworkinterfaceproperties. (SIS-1208)

Improvements

  • Split IN and SIP packaging of the SIS. (SIS-1158)

  • Javadoc directory layout in the doc/javadoc directory has been changed to mirror that of the online documentation server. (SIS-1196)

  • The changelog has been reformatted for online display. (SIS-1091)

  • Corrected a defect that could result in the SIS not inserting a Record Route header when required. (VOLTE-4662)

  • NullPointerException will no longer be thrown when a response is received with incorrect Via headers. (VOLTE-3268)

  • Added two new method calls to IncomingSipRequest that allow the creation of forked upstream responses without an incoming forked response. (SIS-1122)

  • Send 487 response for re-INVITE if session is invalidated before a response is sent. (SIP-1336)

Changes in Dependencies

  • SIS depends on Rhino 2.6.1 or later.

Version 2.5.4.12

  • IN: Fixed SIS behaviour when leg-terminating EDPs are sent in a TC_END block. Services that do not have these events armed now receive a UserAbort event to close the leg. (SIS-1277).

  • SIP: Fixed sending of late INVITE/2xx responses so that they use the same transport as the server transaction. (SIS-1317)

Version 2.5.4.11

  • IN: Fixed implicit EDP disarming rules for Ericsson INAP CS1. (SIS-1320)

Version 2.5.4.10

  • IN: The Simulated TCAP stack no longer incorrectly sets numberingPlan=1 for outbound ITU TCAP requests with GTI=1, causing global title translation to fail. (CGIN-2031)

Version 2.5.4.9

  • SIP: Ensure that CANCELs sent for INVITEs that used DNS failover or automatic switching to TCP have the correct Via branch. (SIS-1253)

  • SIP: Trigger service failure behaviour if external platform returns 503 response, or if there is a transport failure. (SIS-1246)

  • SIP: Fixed a deadlock between sendCancel and an incoming response for a forked dialog (SIS-1244)

  • IN: The Simulated TCAP stack now supports ANSI (A7) SCCP addressing, including global title translation. For partner products, use of tcapsim with A7 SCCP addressing requires IN Scenario Pack 1.5.4.3 or higher, or CGIN 1.5.4.5 or higher. (CGIN-1947)

Version 2.5.4.8

  • IN: Fixed the set of valid armable EDPs for CAPv1 T-BCSM calls. (SIS-1213)

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

Version 2.5.4.7

  • IN: Upgraded the OCSS7 TCAP stack to the latest release of 2.0.0.x. This version of the OCSS7 TCAP stack supports ANSI SCCP when connected to SGCs with version at least 2.1.0.0 and remains backwards compatible with 2.0.0.x SGCs when configured to use ITU SCCP. Refer to the OCSS7 changelog, the CGIN changelog, and the documentation of both for details.

  • IN: Network route rules will now be correctly applied to ANSI SCCP GTI=1 addresses, and recognize that GTI=3 or GTI=4 is invalid for ANSI SCCP. (SIS-1187)

  • IN: Fixed the set of valid armable EDPs for CAPv1 T-BCSM calls. (SIS-1213).

  • SIP: Add API for sending provisional responses that do not affect dialog state. See IncomingSipRequest.createStatelessResponse(). (SIS-1185)

Version 2.5.4.5

  • SIP: Use relaxed ServiceID matching when looking up session state, to avoid potential issue translating Replaces/Target-Dialog headers when linked ServiceIDs are in use. Strict ServiceID matching may be selected with the new config property "relaxServiceIDMatch=false". (SIS-1182)

Version 2.5.4.4

  • SIP: Fixed a deadlock between sendCancel and an incoming response for a forked dialog (SIS-1244)

  • IN: Fixed an NPE that occurred during trigger address tracing selection evaluation when trigger address tracing was enabled. (SIS-1143)

  • SIP: Fixed leaked SipSession activities caused by incorrect handling of proxied late 2xx responses. (SIS-1142)

  • SIP: Fixed forwarding of PRACKs that arrive after the INVITE 2xx response. (SIS-1127)

  • SIP: Fixed ClassCastException that occurred when using a backup external platform address with the "SIP:traffic-reduce" extension option. (SIS-1145)

  • SIP: OPTIONS probes that arrive when the SIS is in the Stopping state are now rejected with a 503 response. (SIS-1146)

  • SIP: Revert previous SIS-1124 fix, don’t try to change From/To headers when using traffic-reduced service.

  • SIP: Fixed issue where binary bodies in messages would incorrectly be decoded as UTF-8 when converting to strings, resulting in unexpected errors. (SIP-418)

  • SIP: Fixed issue where SIS-internal service Route headers would conflict if there were multiple SIS instances active on the same host. (SIS-1170)

  • SIP: Relaxed checks around when a SipSession could create outgoing requests, which were too restrictive. (SIS-1171)

  • SIP: Fixed issue where SIS incorrectly removed Route headers that were addressing a subsequent service in the composition. (SIS-1176)

  • SIP: Ensure the initial NOTIFY created for a subscription has the correct route set. (SIS-1174)

  • SIP: Update SipSession’s remote target when a reliable provisional response is received. (SIS-1175)

Version 2.5.4.1

  • An NPE will no longer occur if a SIS instance is created in a misconfigured state, the SIS instance is activated, then the misconfiguration is corrected.

  • IN: Network interface configuration properties now support active reconfiguration where the same properties do natively in CGIN. The SIS network router configuration also now supports active reconfiguration. New alarms will be raised if configuration properties that do not support active reconfiguration are modified while the SIS is in the ACTIVE state. (SIS-1128)

  • SIP: Preserve changes to From/To headers made by a traffic-reduced service. (SIS-1124)

  • SIP: Add configured local contact address to locally-generated messages. (SIS-1131)

  • SIP: Decrement Max-Forwards when forwarding requests between sessions as a B2BUA. Generate 483 response if Max-Forwards reaches 0. (SIS-1136)

  • SIP: SIS service timer will now be stopped on receipt of 100 Trying from a local service. (SIS-1139)

Version 2.5.3.3

  • SIP: Updated composition XML schema to allow an optional element inside an <extension-option> element. Added support for a configurable error response in the SIP:traffic-reduce extension option, using the existing <sip:reject> element (SIS-1111).

  • SIP: Fixed initial remote sequence number on forked UAS dialogs (SIS-1094).

Version 2.5.3.1

  • Text installer now accepts '-' to mean an empty response. (SIS-1102)

  • IN: Upgraded the OCSS7 TCAP stack to the latest release of OCSS7 1.1.0.x. Refer to the OCSS7 changelog for details.

  • SIP: Fixed error when processing an incoming initial NOTIFY on a subscription that also terminates the subscription (SIS-1082).

  • SIP: Allow responses to be sent after session has ended, to clean up remaining transactions (SIS-947).

  • SIP: The VitualAddresses network interface configuration property now supports the special port value "<local-port>". This value means that a virtual address will only match against a URI, all else being equal, if the the URI port equals a port that the local SIP stack is listening on. A non-match will mean that the SIS will consider the URI to be remote rather than local. (SIS-1093)

  • SIP: Removed redundant UTF-8 decode of unparsed header values when sending a message, which could fail on headers inserted by devices using invalid character sets. By default UTF-8 decoding errors are handled by replacing the invalid characters rather than throwing an exception. The default replacement character is the Unicode replacement character, "�", U+FFFD (SIP-380).

  • SIP: Fixed issue that caused redundant Record-Route headers to be added when a request was sent to a backup external server (SIS-1095).

  • SIP: Fixed issue with external services using the SIP:traffic-reduce extension option, where the Record-Route header did not get updated correctly when the request traversed different network interfaces (SIS-1096).

Version 2.5.2.23

  • IN: Fixed handling of terminate action on local service timeout (or related errors) in the case where no virtual dialog activity was created. (SIS-1070)

  • IN: Fixed the value returned by the open-request.destination-sccp-address variable. It was incorrectly returning the originating SCCP address. (SIS-1073)

  • SIP: Added ability to configure OffsetPorts and PortOffset SIS configuration properties when using create-sis-sip-instance tool. (SIS-1069)

  • SIP: RFC3263 config properties were not being passed through to SIP stack. (SIS-1074)

  • IN: Upgraded the OCSS7 TCAP stack to the latest release of OCSS7 1.0.1.x. Refer to the OCSS7 changelog for details.

Version 2.5.2.20

  • SIP: Added support for RFC3263 load balancing and failover. Multiple addresses returned by SRV lookups will be tried according to their priority in DNS. Disabled by default, enable using the config property RFC3263:failover_enabled=true. (SIP-253)

Version 2.5.2.19

  • SIP: Relaxed the parsing and matching of internal local service route headers. This enables compositions to use new Rhino service links. (SIS-979)

  • IN: Upgraded OCSS7 TCAP stack to latest release of OCSS7 1.0.1.x.

Version 2.5.2.17

  • IN: Internal OCSS7 components upgraded to version 1.0.1, bringing various internal improvements specific to the use of the OCSS7 stack. (SIS-974)

  • IN: Fixed a race condition in the external service proxy dialog handler that could result in the SIS hanging and leaking internal state. (SIS-971)

  • IN: InitialDP events missing an eventTypeBCSM field, and other initial requests missing a corresponding field, will now be accepted by the SIS for trigger processing. The missing field must be added by a trigger before a composition is selected so that the SIS can determine the appropriate BCSM to use for the dialog. If the missing field is not added by a trigger, then trigger processing will again fail as it did previously (SIS-972).

Version 2.5.2.14

  • Variables can now be used to specify the values of integer-type parameters such as character indices in script string manipulation functions (SIS-955).

  • IN: After a leg disconnect EDP has been reported with an EventReportBCSM operation, a Connect response from the service is now supported to create a follow-on call (SIS-962).

  • IN: A provider error with reason NO_LINKED_RESPONSE for a Play Announcement operation will no longer be forwarded to a service by the SIS if it occurs after the service has terminated the user interaction session with a Disconnect Forward Connection operation. This is primarily for convenience, as the error event has no useful meaning in this context (SIS-877).

  • IN: If an interceptor extension adds or removes an operation, or completely changes an operation argument, then those changes will now correctly be seen by subsequent interceptor extensions in the same interceptor block, rather than them seeing the original set of operations in the TCAP block (SIS-956).

  • IN: Fixed SIS behaviour in multileg scenarios when leg-terminating EDPs armed by a service in interrupted mode are reported and the service subsequently resumes the BCSM. The service will no longer be prematurely terminated as a result of the event report (SIS-959).

  • IN: When invoked on a local service’s virtual dialog, the getDialogState() method will now correctly return the state of the virtual dialog, rather than the state of the network dialog (SIS-961).

  • IN: Fixed flow of messages sent to the network if a service that has already responded to an initial request then releases the call while composition evaluation is still in progress (SIS-966).

  • IN: SIS will no longer forcefully terminate a local service’s virtual dialog with a User Abort in the case where the SIS has detected a prearranged end condition for the service and the network dialog subsequently ends, but the service has yet to terminate the virtual dialog itself. Instead the SIS will leave the virtual dialog alone and allow the service to terminate it in its own good time. If the service forgets to terminate the virtual dialog, a subsequent query-liveness check by the SLEE will clean up the virtual dialog activity state. This new behaviour is more consistent with the behaviour of a raw CGIN resource adaptor (SIS-967).

  • IN: Fixed a race condition that could leave SIS dialog state hanging if an upcall to an external service occurred at the same time as a downcall from the service closed the dialog between the service and the SIS (SIS-971).

  • SIP: Remove transaction state when INVITE is cancelled (SIS-952)

  • SIP: Removed reverse dialog ID lookup when rewriting Replaces or Target-Dialog headers (SIS-950).

  • SIP: Support multiple P-Access-Network-Info header values (SIP-338)

  • SIP: VirtualAddresses network interface property now accepts hostnames that match SIP NAPTR and SRV DNS records (SIP-285).

Version 2.5.2.7

  • Interceptor components may now include macro references and thus evaluate macros as part of the interceptor script (SIS-943).

  • Fixed a rhino-export/import issue that caused both predefined and arbitrary compound datatypes to not import correctly, resulting in the variable not evaluating correctly at runtime (SIS-929).

  • Fixed a rhino-export/import issue that caused a dereferenced array index of a user variable to not import correctly, resulting in the variable not evaluating correctly at runtime (SIS-930).

  • IN: ComponentRejectedEvents generated by the CGIN layer are now be handled properly by the SIS. The following rejection problem codes are considered fatal and will result in termination of the session:

    • any general problem

    • the 'unrecognizedOperation' and 'mistypedArgument' invoke problems

    • the 'mistypedResult' return result problem

    • the 'mistypedParameter' return error problem Any other rejection problem is considered non-fatal, and the event may be delivered to one or more services. Only local services may receive this event. A ComponentRejectedEvent cannot be forwarded to an external service, thus the event delivery to such a service will be suppressed. In any case, as a ComponentRejectedEvent is considered an abnormal event, an occurrence of any such event will be logged (SIS-944).

  • IN: Fixed SIS behaviour in multileg scenarios when leg-terminating EDPs armed by a service in notify & continue are reported. The service will no longer be prematurely terminated as a result of the event report (SIS-939).

  • IN: SIS will now correctly send a DFC with arg (CS#1) to the network as a cleanup measure, rather than a DFC with no arg, when a service running a multileg scenario performing user interaction in call segment #1 fails (SIS-945).

  • SIP: Add support for querying pending incoming and outgoing requests on a SipSession (SIS-932).

Version 2.5.2.6

  • Fixed a rhino-export/import issue that caused dereferenced array-type variables to not import correctly, resulting in the variables not evaluating correctly at runtime (SIS-928).

  • IN: A provider error for reason NO_LINKED_RESPONSE will no longer be forwarded by the SIS to an external service. It is assumed that the TCAP stack handling the external service will generate its own provider error on invoke timeout (SIS-926).

  • SIP: End subscriptions when refreshes fail (RFC 6665) and honour the "Refer-Sub: false" header in REFER responses to disable REFER’s implicit subscription (RFC 4488) (SIS-914).

  • SIP: Add Record-Route headers to forwarded NOTIFY requests if the service is a record-routing proxy or B2BUA (SIS-924).

  • SIP: Support dialog creation when initial NOTIFY arrives before SUBSCRIBE or or REFER response (SIS-920).

  • SIP: Support forked dialogs resulting from multiple NOTIFYs arriving after the initial SUBSCRIBE/REFER is forked by a downstream proxy. See org.jainslee.resources.sip.IncomingSipRequest.isForked() and org.jainslee.resources.sip.SipSession.createForkedNotify() (SIS-923).

Version 2.5.2.5

  • IN: Fixed handling of composition evaluation if a call is abandoned during pre-call user interaction.

  • IN: Fixed NPE invoking a composition output interceptor extension for an operation result or error response.

  • IN: Fixed an issue in recognising the new response when an output interceptor extension changed an operation result or error response.

  • IN: Fixed handling of ApplyChargingReport in Ericsson INAP CS1+ if a leg terminates with multiple reporting reasons armed.

  • SIP: Added config property "automaticDialogIDRewritingEnabled" to enable or disable rewriting of dialog IDs embeded in Target-Dialog and Replaces headers (SIS-912).

  • SIP: Improved handling of BYE crossover, send 200 OK to BYEs if dialog already ending, or 481 if ended (SIS-851).

Version 2.5.2.4

  • IN: Fixed issue with extension option "IN:delimit-every-operation-request", which caused delimiters not to be sent after certain operations when they should have been.

  • SIP: Fixed an activity leak caused by not ending forked sessions after the CANCEL event is processed.

Version 2.5.2.3

  • IN: New extension option to send a delimiter after every operation request sent to the network. "IN:delimit-every-operation-request" must be set in a composition for it to be enabled.

  • IN: Operation user error results sent by a service for charging-related operations will be propagated to the network by the SIS rather than silently ignored.

  • IN: Fixed error handling if a Continue operation is sent on a call segment that is in the wrong state to accept the operation.

  • IN: Fixed handling of ReleaseCall in Ericsson INAP CS1+ after the called party leg is created using InitiateCallAttempt but fails to connect with a leg-terminating EventReportBCSM.

  • SIP: SIS now throws a SipParseException when parsing an invalid string in org.jainslee.resources.sip.SipFactory.createURI(String) instead of throwing a NullPointerException.

  • SIP: Fixed a bug where SIS overwrites an existing to-tag when generating error responses. Is should only set the to-tag if one does not already exist.

  • SIP: Fixed a bug where the SIP port offset calculation was incorrect, by not including the NodeID in the calculation. If config property OffsetPorts = true, actual port = configured port + (NodeID - PortOffset). This enables multiple nodes to run on the same host.

Version 2.5.2.2

  • Updated to use CGIN Connectivity Pack 1.5.2.

  • Only EasySIP RA Type 1.4 is now supported. Concurrent support for EasySIP RA Type 1.3 has been removed.

  • IN: Variables representing the argument, invoke id, and linked id of operations are now assignable. This means, for example, that an interceptor that needs to completely replace an operation’s argument with a new object of a different class type can now be written entirely in XML in the interceptor script rather than requiring an extension component to do so.

  • IN: Added extension option "ECS1:allow-camel-style-apply-charging" which can be used to allow CAMEL style Apply Charging call flows when using Ericsson INAP CS1 or CS1+ dialogs. Specifically, it allows a service to send an ApplyCharging operation at any time, rather than only when the BCSM is suspended at a DP (the default behaviour). This extension option can be specified for an individual service or for the composition.

  • IN: Fixed an event post-processing ordering issue that caused the SIS to send the wrong response to the network in some call party handling scenarios.

Version 2.5.1.6

  • Fixed a security exception thrown when deploying or viewing interceptor components on more recent 1.6 and 1.7 Oracle JVMs, eg. 1.6.0_45 or 1.7.0_21.

  • IN: Fixed an issue that caused the SIS to unnecessarily send a RequestReportBCSM to rearm EDPs at certain points in the call, particularly after rebranching.

  • IN: A Connect response to an EventReportBCSM with an Ericsson INAP CS1+ specific leg-terminating BCSM event type such as oCalledPartyNotReachable or tRouteSelectFailure will now be correctly accepted and processed by the SIS.

  • IN: An additional call party leg created using the InitiateCallAttempt operation in Ericsson INAP CS1+ will now follow the same BCSM - originating or terminating - that the initiating call leg follows, rather than always following an originating BCSM.

  • IN: Fixed an issue handling "erroneous" leg type parameters in EventReportBCSM operations when using the Nokia INAP CS1 protocol. The leg type parameter, for most event reports, is meaningless in this protocol and should be ignored when determining if a service has armed a particular EDP.

  • IN: Fixed a NullPointerException that occurred when sending a Connect response to an InitialDP that has no destinationRoutingAddress field, as is permitted in Ericsson INAP CS1+.

  • SIP: Added missing experimental features profile spec reference to the SIS resource adaptor so that rhino-export will correctly find all profile table dependencies required for a successful import.

  • SIP: Fixed a race condition that could cause a memory leak due to SipSession objects not being cleaned up on dialog end.

  • SIP: Fixed incorrect retransmit interval for non-INVITE client transactions in Proceeding state.

Version 2.5.1.3

  • IN: Fixed an issue that prevented certain script variables from functioning correctly. This issue affected variables representing operation argument (sub)fields that appeared in different protocols with the same name and type however did not exist in a common super-protocol. For example, the CAPv4 and Ericsson INAP CS1+ PlayAnnouncement operation argument both independently define the "requestAnnouncementStarted" field with a boolean type. Attempting to use the "play-announcement.arg.request-announcement-started" variable worked correctly with a CAPv4 message but not a CS1+ message.

  • IN: Fixed an issue that incorrectly disarmed the calling party leg EDPs when a service responded to a called party leg terminating EventReportBCSM with a Connect to route the call to an alternate destination.

  • SIP: Application specific local contact can now be set on both UAS and UAC sessions. Changed method on SipSession from setUASLocalContactAddress() to setLocalContactAddress(). Local contact can be set before the fist dialog creating response is sent for UAS or original request is sent for UAC.

  • SIP: Updated SipMessage API making sequence number available.

  • SIP: Added translation of call-id, from- and to- tags in Replaces and Target-Dialog headers when creating forwarded requests.

Version 2.5.1.2

  • IN: Added script variables representing the Close (TC-END) dialog primitive. Updated the interceptor extensions resource adaptor type API to include more specific access to the dialog primitive. These changes, for example, allow a composition output interceptor to change a close with prearranged end (ie. no network message sent) to a close with basic end (ie. a TC-END TCAP message is sent to the remote peer instead).

  • IN: Fixed an issue preventing a service sending a ReleaseCall operation during user interaction when using the Ericsson INAP CS1+ protocol. Unlike other protocols, CS1+ allows this operation to be sent while in this state.

  • SIP: Added new method to SipSession to enable UAS application to change default SIS session contact to application specific address. When applicable the SIS contact with encoded service ID moved to the first Record-route header.

  • SIP: Fixed an issue whereby different methods were used for registering and later identifying active subscriptions. This meant that subscription sessions were not correctly ended when a NOTIFY was sent or received with Subscription-State "terminated".

  • SIP: Fixed an issue that meant if the Subscription-State header of a NOTIFY contains fields in addition to sub-state "terminated" then the session was not correctly ended.

Version 2.5.1.1

  • IN: The SIS will now clean up resources properly if the last active service in a composition spontaneously closes its dialog with a prearranged end.

  • IN: Fixed an issue that caused an undecodeable message to be silently ignored if debug logging for the network interface was enabled.

Version 2.5.1.0

  • Updated to use CGIN Connectivity Pack 1.5.0-protocol-patches.

  • Fixed a race condition in the load-share external address selector that could lead to periods where threads could hang spinning CPU unnecessarily.

  • IN: Fixed an issue reactivating the SIS after it has been deactivated when using the simulated TCAP stack.

  • IN: Fixed an issue that caused the stats parameter set "SIS Fibers" to be renamed to "network.<interface-name>.SIS Fibers" after a SIS config property update, meaning an existing stats client session would fail to receive any further stats updates unless it re-subscribed to the new parameter set name.

  • IN: Fixed various issues administering the application override options for service refs.

  • SIP: Reset local tag when retrying a new INVITE.

Version 2.5.0.3

  • Fixed an issue preventing the create-sis-sip-instance administration tool activating the SIS instance after its creation.

  • Fixed another ClassNotFoundException deployment error that could happen under certain circumstances when installing a SIS component that included an expression attempting to instantiate an object of a protocol-specific datatype.

  • Fixed a security exception thrown when deploying or viewing XML components, (macros, triggers, and compositions) on more recent 1.6 and 1.7 Oracle JVMs, eg. 1.6.0_45 or 1.7.0_21.

  • Fixed the presentation of named values in the package documentation file sis-in-protocol-variables-detail.txt.

  • Fixed a logic error preventing the deactivateexternalplatformaddress Ant task from functioning correctly.

  • Service reference parameters for IN application context overrides are now included in the sis-export output of a SIS instance configuration and will be subsequently restored on re-import. These same parameters, along with the default service timeout and static charging priority, are now also included in the output of rhino-export and will be subsequently restored on re-import. Previously these parameters were missing from the respective export images and the settings were therefore being lost from the backup.

  • IN: Fixed an issue invoking multiple extension components from within an input interceptor which would result in the component events in the TCAP message being duplicated in the interceptor output.

  • IN: An external platform address will no longer have a service failure recorded against it if the service aborts the dialog mid-call, or responds to a mid-call event delievered in interrupted mode with an operation error. The SIS will still treat the occurrence as a service failure and act accordingly, however the external platform monitor will not be notified (communication with the external platform is still ok, it’s just abnormal service behaviour), and hence the failure will not contribute to a potential loss of service if the external platform address had transitioned to the FAILED as a result of the notification.

  • IN: Fixed an issue that hung the SIS state machine when an external service waiting for outstanding charging reports responded to a disconnect event report with a ReleaseCall + Delimiter.

  • IN: A Connect with no DestinationRoutingAddress parameter is now allowed after the SIS has received an EventReportBCSM for o/tAnswer when using Ericsson INAP CS1+.

  • IN: Fixed an error detecting the affected call leg for the ConnectToResource operation in Ericsson INAP CS1+ when the operation argument was not specifically an ECS1pConnectToResourceArg. Since the leg id is indicated within the ResourceAddress field, the type of the containing argument object is irrelevant.

  • SIP: Added support for from-change option (RFC4916) to allow mid-dialog change of connected party identification conveyed by URI of From-/To- headers.

  • SIP: Fixed a security exception thrown if the SIS attempted to raise a misconfiguration alarm.

  • SIP: Added a new method to the SipSCSActivity class that can be used to determine if a SipURI is a URI local to the invoking SIS instance.

  • SIP: Initial requests and responses forwarded by B2BUA applications will no longer rewrite the Contact header. This is to preserve any session parameters that may have been present in the Contact header. Instead the SIS adds a Record-Route header to the initial request and dialog-creating responses so it stays on the path of subsequent requests.

  • SIP: Ending of session activities is automatically deferred until the after the final SIP event is processed, so that SBBs can still refer to session activities & ACIs while processing the final event.

  • SIP: The "VirtualAddresses" network interface property now allows hostnames and ports of virtual addresses to be specified, e.g. server:5160.

  • SIP: Added EasySIP RA Type 1.4. Includes:

    • New Parameterable header type for manipulating headers that contain parameter lists (equivalent to SIP Servlet 1.1’s Parameterable). See SipFactory.createParameterable(), SipMessage.getParameterableHeader etc.

    • Unrecognized headers may still be accessed as Address or Parameterable types, the EasySIP RA will attempt to parse unknown headers as Address or Parameterable when calling get{Address,Parameterable}Header etc.

    • Added setter methods to TelURL.

    • Added endImmediately flag on SipSession so that services can request that ending of the SipSession SLEE activity be deferred until the service explicitly calls SipSession.invalidate(). The default flag value is endImmediately=true, which matches current behaviour.

      NB: EasySIP RA Type 1.3 is still supported for compatibility with existing services. However due to the RA Type change, an online upgrade from earlier SIS 2.5.0.x releases in the same Rhino cluster is not possible. Upgrades can be performed without service interruption by using a second cluster in parallel, contact OpenCloud for further details.

Version 2.5.0.2

  • Updated to use CGIN Connectivity Pack 1.5.0. Note that the current SIS release requires at least the 1.5.0.14 patch release of CGIN.

  • The array-length function can now be used in macro and script conditional expressions.

  • A "copy-of" attribute is now supported by the <object> and <array> elements in SIS expressions. For objects, the SIS will copy all relevant fields from the specified object into the instantiated object. For arrays, the SIS will make a copy of the specified array (and component arrays if a multi- dimensional array). Copies are made before any field or element assignments specified within the <object> or <array> element are applied.

  • SIS components can no longer be installed or replaced if doing so would cause a cyclic component dependency. This includes self-references. A SIS component audit will also now report on cyclic dependencies, and the SIS Export tool will refuse to generate an export image if cyclic dependencies are found, as there would be no natural order components could be reinstalled.

  • Improved deployment time checking of conditional expressions in SIS components. For example, if a conditional operator is missing a required argument value, the component will now fail to install.

  • Added new configuration properties to service refs that specify the dialog application context that the service will be triggered with. Separate properties are added for each of the main triggering dialog and user interaction assisting dialogs. If any of these properties are set, this application context is used for the northbound dialog to the service instead of the application context of the incoming network dialog.

    Note that the SIS does not natively perform any protocol translation, it merely just creates the northbound dialog with a different application context. This also means these configuration options are currently only relevant for IN dialogs. Service interceptor components can be used to implement protocol translation between the network and service dialog application contexts where necessary.

  • Any configured values for service ref properties such as default service timeout and static charging priority will now be preserved if the target of the service ref is replaced.

  • Fixed a NoSuchMethodError with the dumpnetworkinterfaces command in sis-console when deployed on Rhino 2.3.0.

  • Fixed a ClassNotFoundException deployment error that could happen under certain circumstances when installing a SIS component that included an expression attempting to instantiate an object of a protocol-specific datatype.

  • Fixed a NotSerializableException deployment error when installing a SIS component that included an expression attempting to instantiate a multi- dimensional array.

  • IN: The default response for the terminate-processing action on service timeout or a message handling option when no <in:terminate> child element is specified is no longer to do nothing after event processing terminates. Instead, the SIS will determine, if appropriate, a response to send to the network based on any previous service execution. This new behaviour is now consistent with a <halt> statement encountered in a service interceptor that similarly has no <in:terminate> child element. To obtain the previous behaviour, use the following child element where appropriate:

    <in:terminate record-as-reject="false">
      <in:no-response dialog-termination="none"/>
    </in:terminate>

    The schema-upgrade tool will automatically add this child element where appropriate when upgrading compositions from SIS 2.4.0 to 2.5.0 format so that the existing behaviour on service failure is preserved.

  • IN: Service input and output interceptors are now correctly applied to protocol messages on assisting dialogs that are correlated to a composition service by the SIS.

  • IN: Added pass-through as a new FCI interaction mode.

  • IN: When updating the FCI or Online Charging Interaction settings for an already installed composition, the SIS was updating the composition XML document using an incorrect name for the "mode" attribute. This meant that a Rhino export image was made after this change would not import again as the modified XML document would no longer pass validation. This issue has been fixed.

  • IN: When the SIS was proxying assisting dialog messages to an external service, it was erroneously accepting the original incoming assisting dialog using the responder SCCP address received in the first TC-CUE from the service, rather than using the responder SCCP address of the SIS. This has now been fixed.

  • IN: Fixed an issue that caused the SIS to generate an erroneous DialogUserAbortEvent towards a local service on an assisting dialog after the service had terminated that assisting dialog.

  • IN: Fixed an issue handling ConnectSMS operations in CAPv3 & CAPv4. The DestinationSubscriberNumber field in the ConnectSMS operation argument is optional, but the SIS was treating it as mandatory and rejecting the operation if the field was missing.

  • IN: Fixed an UnsupportedDigitException that occurred when generating the flow trace log for a CAPv4 EventReportBCSM for a mid-call event which contained '*' or '#' digits.

  • IN: Fixed an issue that prevented the SIS closing the network dialog if a service sent a TC-END containing CPH operations.

  • IN: Fixed an issue that caused the loss of applicationTimer DP-specific criteria from NoAnswer EDPs armed by the SIS when using CAPv4.

  • IN: Fixed an AssertionError processing an operation error response to an InitateCallAttempt operation that attempted to create a new call leg in an existing call.

  • IN: Fixed an issue handling the Connect operation while user interaction is in progress when using the Ericsson INAP CS1+ protocol. SIS behaviour was inconsistent between local and external services.

  • IN: Fixed a NullPointerException that occurred when handling the Ericsson INAP CS1+ ReconnectResult for a Reconnect operation sent for a leg still suspended by an EventReportBCSM.

  • IN: The default network response for a EventReportBCSM event received in Interrupted mode for a leg with id greater than 2 will now be an appropriate ContinueWithArg (CAPv4) or Continue (Ericsson INAP CS1+) operation with the relevant leg id parameter included in the argument, rather than a generic Continue operation with no argument.

  • IN: Corrected the application context registered by the Nokia INAP CS1 Message Utilities Provider Resource Adaptor.

  • IN: The Siemens INAP 7m+ protocol is now optionally supported.

  • SIP: EasySIP RA Type now supports early dialogs created by forked responses received from downstream SIP elements.

  • SIP: The status-code script variable is now assignable.

  • SIP: Was not setting to-tag on error responses to initial requests.

Version 2.4.0.8

  • IN: When updating the CalledPartyBCDNumber of a CAP InitialDP after receiving a Connect operation from a service, the SIS will now attempt to use the standard digit codecs first when converting the address string, and only if that fails revert to using the hex digit codec as it did previously. This means that the '*' and '#' digits, defined as standard digits but encoded using different values by the CalledPartyNumber and CalledPartyBCDNumber datatypes, will be converted correctly if the address string contains no non-standard digits.

  • IN: Fixed issues handling CAPv4 ContinueWithArgument operation in non-CPH scenarios.

  • IN: CAPv4 ContinueWithArgument sent in response to an EventReportBCSM for a leg not in the primary call segment will now be sent directly to the network rather than causing delivery of the EventReportBCSM to other services. This fixes some network call flow issues in scenarios containing, for example, ContinueWithArgument + MoveLeg for a held call leg.

  • IN: Fixed an issue where CAPv4 MoveLeg was not permitted after receiving a Mid-Call event report if the Answered EDP had not previously been armed and reported.

  • IN: Fixed an issue where handling the CAP4 EntityReleased event was not aborting any further processing of outstanding events already received for the affected call leg or call segment, which would lead to call flow issues and potential NullPointerExceptions later in the call.

  • IN: Fixed an issue handling service dialog closure in CPH scenarios when the only call legs whose BCSM was suspended were in non-primary call segments.

  • IN: Fixed a NullPointerException that occurred after event processing was continued for an EventReportBCSM for a service-initiated call leg.

  • IN: Fixed an issue causing premature post-processing of events received by a service in CPH scenarios which lead to an unexpected Continue operation being sent to the network.

  • IN: Fixed an issue that resulted in a Continue operation unexpectedly being sent to the network if a leg in the primary call segment was disconnected after an EventReportBCSM delivered in Interrupted mode was received for that leg.

  • IN: Fixed an issue where the SIS would not wait for a service response to an EventReportBCSM delivered in Interrupted mode for a leg not in the primary call segment if the primary call segment was not already suspended for some other reason.

  • IN: Improved dialog ID field in flow tracing output for dialogs managed by the Telesys Mach7 TCAP stack.

  • SIP: Fixed an issue where composition state was not getting cleaned up after a composition with no services.

  • SIP: Fixed an issue with incorrect handling of subscription refreshes in SipSession activities.

  • SIP: Add session attribute support.

  • SIP: Fixed an issue with incorrect RAck headers when forwarding PRACK requests as a B2BUA.

Version 2.4.0.6

  • Fixed example Ant deployment scripts so that they work correctly with CGIN 1.4 releases prior to 1.4.2.

  • Fixed sis-ant-management.xml Ant script so that it doesn’t also match against persistence API jars when trying to locate CGIN deployable units.

  • Fixed SIS worker thread pool which was being created with an initial core pool size of one thread rather than the configured maximum. The thread pool behaves better under stress if all threads are made available from the start.

  • Moved to a different worker thread pool implementation that produces stats with slightly different names, otherwise it’s the same information. Relevant SIS config properties have changed to conform with the naming conventions used by the new implementation. The name of the worker thread pool stats parameter set has also changed and is now the same for both IN and SIP.

  • Information about the current status of licensable functions is now output when a SIS instance is activated.

  • Added new alarms, raised if an attempt is made to use a licensable function for which no valid license is currently installed.

  • IN: Fixed an issue that caused the tcapsim TCAP stack to stop working correctly if a SIS instance was deactivated then reactivated again.

  • IN: Added missing fiber stats for fibers used by TCAP stacks.

  • IN: Fixed an NPE that occurred during composition discovery if composition selection was first attempted via profile lookup, which found a subscription profile but with an unprovisioned composition id for the trigger type, and then by some other type of composition selector which returned a valid composition id.

  • IN: Fixed an issue with the generated variable initialisation code that could have led to missing variable type information for the MAP datatypes newly used in CAPv4.

  • IN: Fixed an issue with the generated variable initialisation code that meant that datatypes that were only ever used in fields as an array did not have their datatypes registered. The only datatype this affected was com.opencloud.slee.resources.in.datatypes.cc.MSBearerCapability.GSM.Content.Speech.SpeechVersion. As a side-effect of this change, variable metadata information included in the "brief" listing of variables included in the download package documentation now consistently report array-type elements as assignable only, rather than some being incorrectly reported as deletable also. This is only a documentation change, no actual behaviour has changed - the <delete> function cannot be applied to array elements, instead the <array-remove-element> function should be used instead.

  • IN: Fixed TPS license consumption in certain multileg scenarios if a service aborted a dialog mid-call.

  • IN: For INAP protocols, the SIS will now correctly return an error result to a service that attempts to send a Connect with no leg or call segment qualifier while the primary call segment is performing user interaction.

  • IN: Added missing CGIN Message Utils Provider deployable unit for Nokia INAP CS1 to the corresponding distribution package.

  • IN: Improved performance, resulting in reduced CPU usage and latency.

  • IN: Fixed an obfuscation issue that prevented the Telesys Mach7 TCAP stack from working.

  • SIP: Following a previous change in IN, SIS message flow tracing has moved from SLEE tracers under the name "<entity-name>-trace" to the tracers under "trace".

  • SIP: Fixed an issue causing service response times to be measured incorrectly.

Version 2.4.0.5

  • Updated to use CGIN Connectivity Pack 1.4.2.

  • Dialog relay is now supported. This means that an inbound dialog can be relayed to an external service with the SIS dropping out of the call path.

  • Fixed the Windows admin scripts so they work correctly when the SIS install directory contains spaces in the path name.

  • Fixed an issue with sis-client-common.bat when the value of %JAVA_HOME% contains spaces in the path name.

  • Improved error handling of missing Rhino client.properties file to admin scripts.

  • SIS installer tool will now check that it can connect to Rhino before asking for any user input, rather than waiting until after.

  • Added some missing classes to the sis-client jar that were preventing a snapshot-based Rhino export from completing successfully in certain circumstances.

  • Fixed tab completion in sis-console in the case where tab completion results were based on a previous argument and that previous argument was quoted or contained escape characters.

  • Fixed a number of sis-console commands that allowed but ignored arbitrary parameters after the required parameters so that only the required parameters can now be supplied. Including extra unnecessary parameters now results in an "invalid usage" error.

  • Added missing SIS Management API javadoc for SIP.

  • Fixed an issue preventing the further modification of a trigger address tracing profile if in that profile both the debug level was set to a non- zero value and audit was enabled.

  • Fixed an issue that let you create network route rules that were syntactically different but semantically the same, eg: "protocol a & protocol b" and "protocol b & protocol a" It was permitted to create such network route rules however the network routing configuration would fail to load with a "duplicate route" error the next time the SIS configuration was reloaded. Semantically equivalent rules can no longer be created.

  • Fixed order of export of compositions and triggers in sis-export so that an import works correctly in the case where a trigger depends on a composition.

  • Fixed security permissions so that macro, trigger, and composition installation via file or network URLs will function as intended.

  • Fixed a NullPointerException that occurred when using the <equal> condition in macros, triggers, and compositions if the "a" parameter evaluated to a non-null value but the "b" parameter evaluated to null.

  • IN: The CAPv1 and CAPv4 protocols are now supported.

  • IN: The SIS internal state model has been completely rewritten to support a number of "call party handling" scenarios, ie. scenarios that utilise multiple call segments and potentially more than two parties per call. Because of this, some previously unknown or unrecorded issues may be been indirectly resolved and consequently not recorded here.

    The most significant limitation of the current call party handling implementation is that a service that invokes any of the call party handling operations must be the last service in the composition. Unpredictable results may occur if the service is not the last composition service. Note that service-initiated call legs are not currently subject to rebranching or retriggering.

  • IN: The implementation of rebranching has matured to the point where it is no longer considered just an experimental feature.

  • IN: SIS message flow tracing has moved from SLEE tracers under the name "insis-trace" to the tracers under "insis.trace". This means that flow tracing will now automatically be included in debug logging when the "insis" tracer is set to a debug trace level.

    Message flow tracing performed by network adaptors has also moved so that it appears on a tracer named for the network interface producing the trace, rather than under generic tracer name. This helps to distinguish which network interface produces each message flow trace.

  • IN: Fixed a caching issue that meant that deleted network interfaces were still activated with the SIS even after a configuration reload.

  • IN: Fixed an issue where SIS variables used in <halt> and service failure <terminate> actions were not being evaluated correctly at runtime.

  • IN: Fixed an issue where a CAP3 ConnectSMS terminate handler was being treated as a CC Connect instead.

  • IN: Fixed an issue where the SIS was still checking the argument type for a CAP3 ConnectSMS sent from an SCS extension component using the "terminate with invoke" option was a byte[] instead of RPCause.

  • IN: Fixed handling of ResetTimer operations from a service when the timerID field is not explicitly set.

  • IN: When an SCS extension component uses the "terminate with invoke" option the entire argument content will now be used in the resulting invoke, rather than only the argument parameter that can be specified in the equivalent <terminate> element in a trigger or composition.

  • IN: Fixed an NPE that occurred when trying to invoke an extension component in a service output interceptor for an operation event received in a TC_END dialog primitive from an external service.

  • IN: Call audit logs will now be generated if composition evaluation terminates before its natural end, eg. via a <halt> statement, a composition service terminates the call, etc.

  • IN: Fixed an issue where a change to an already armed EDP’s dp-specific criteria would cause the SIS to send an event request to the network with the EDP armed in Interrupted mode, rather than the monitor mode requested.

  • IN: Fixed an issue setting the online charging interaction mode of a composition to "static-service-priorities".

  • IN: Fixed an issue where the SIS may fail when non-standard digits are present in various operation address parameters. The SIS now uses the hexadecimal digit codec for:

    • Connect operations received from a service, to determine if the destination address has changed, when invoking the "propagate-on-destination-change" message handling option.

    • ETC operations, when obtaining the correlation ID to store, if the encoding scheme of the GenericDigits is BCD.

    • ARI operations, when obtaining the correlation ID to match.

    • The Redirect failure handler, when adding the redirect prefix to the called party number.

    • Trigger address tracing, when decoding the addresses specified by the trigger address tracing selectors.

  • IN: Fixed an issue where Connect or ReleaseCall mid-call responses from a service in a parallel block were not being propagated out as expected.

  • IN: Fixed a NullPointerException handling charging messages missing a party to charge leg id.

  • IN: A issue causing increased garbage collection activity when using Ericsson INAP CS1+ has been resolved.

  • IN: The TCAP stack config properties XML document parser in the SIS was complaining if the <description> element was missing from the document, even though the schema defined the element as option. The parser is now fixed.

  • IN: Fixed a problem with the SIS not copying the values of network interface config properties for third-party TCAP stacks into the ConfigProperties object passed to the TCAP stack, meaning the stack could not be configured correctly. This fix required the expected Java type of the config property to be added to the stack config property metadata, therefore the version of the corresponding XML schema has been incremented.

Changes to SIS Script Variables:

  • Note: A new upgrade-schema tool has been added to the the utils directory of a SIS install. This tool can be used to migrate macros, triggers, and compositions from previous versions of SIS to the current version.

  • IN: Added an open-response.responder-sccp-address variable: an assignable, deletable compound value with type SccpAddress. A value may be assigned to this variable in XML using a string formatted as described in Appendix A of the SIS Administration Guide. For example:

    <assign toVariable="open-response.responder-sccp-address"
        value="type=c7,ri=pcssn,pc=59,ssn=146"/>

    If this variable is set to a non-null value during trigger evaluation, either by a trigger condition or by an SCS extension component, then this value will be used as the responder SCCP address in the dialog Open Accept sent to the network after trigger evaluation completes.

    This variable has no further meaning to the SIS after the Open Accept has been sent.

  • IN: Variables representing arguments and fields of protocol-specific operations are now code-generated from the CGIN APIs rather than hand-coded. As a consequence, there have been some widespread changes to the set of supported IN variables:

    • All fields and datatypes used by all operations in supported protocols are now accessible via script variables. Support for MAP datatypes is limited to those used by the CAP protocols.

    • All variables relating to fields of an operation argument now include an intermediate "arg" component in their variable name. For example, the "initial-dp.service-key" variable is now called "initial-dp.arg.service-key".

    • All variable names are now case insensitive. The exception is that case sensitivity is retained (for backwards compatibility) for the user-defined part of a user variable name. This means that "${initial-dp}" and "${INITIAL-DP}" refer to the same variable, as do "${user.foo}" and "${USER.foo}". However "${user.foo}" and "${user.FOO}" do not.

    • The named values that can be assigned to variables representing a Java enum type or a CGIN NamedInteger have changed. The assignable values are now equal to the named values defined by the respective CGIN API. For example, whereas a variable of type CCEventTypeBCSM previously allowed the named value "O_CollectedInfo", the named value "collectedInfo" as defined in the CGIN API is now required instead. Named values are case-sensitive.

    • A variable can now be "dereferenced" to obtain values for its sub- variables. In particular this allows the components of compound datatypes assigned to user variables to be obtained. Refer to the documentation for more information on dereferencing.

    • The <present>, <assign>, and <delete> script elements, along with the <profile-lookup> trigger selector element, now require their variable parameter to be explicitly surrounded by '${' and '}'. This allows dereferenced variables to be used with these elements.

    • Array types are now fully supported in script variables.

    • A number of other new types of variables are now supported, including: long, float, double, BigInteger, BigDecimal, and CGIN types such as BitString and ASN1Null.

    • Arbitrary values for compound datatypes and arrays can now be constructed and assigned to variables. Refer to the documentation for more information.

    • Variables representing operation argument extension fields are no longer directly provided. Instead, a query function on the extension field array can be used to find extension fields of a given type. Refer to the documentation for more information

Changes to SIS Script Schemas:

  • As a consequence of the changes noted here, schema version numbers have been incremented.

  • Note: A new upgrade-schema tool has been added to the the utils directory of a SIS install. This tool can be used to migrate macros, triggers, and compositions from previous versions of SIS to the current version.

  • Renamed the <fail> element, used in triggers to specify a failure clause, and in various places in compositions, to <terminate>, and allowed it to be used for both success and failure scenarios. For example you can now send a Connect response to an InitialDP from a trigger and not have it recorded as a failure.

    This change provides the XML scripting equivalent to the Service Composition Selection Extension Resource Adaptor Type API changes made in SIS 2.3.1.

  • The SIS composition <halt> element now has extensions for IN, equivalent to the <in:terminate> element used for service invocations.

  • As a result of adding the option for dialog relay to the <in:terminate> and <in:halt> elements, it is no longer appropriate for these elements to include the "dialog-termination" attribute (as it is not relevant for relay). This attribute has therefore moved to the relevant nested elements. The attribute also now allows the value "none", indicating the no dialog termination will occur. This addition is also reflected in the DialogTerminationPrimitive type used in the Service Composition Selection Resource Adaptor Type.

  • The <in:final-redirect> configuration option for IN compositions has been removed. Identical behaviour can now be obtained using an <in:halt> element with an equivalent <in:redirect> at the end of the composition script.

Version 2.3.1

  • Updated to use CGIN Connectivity Pack 1.3.5.

  • Added missing INSISClient interface to the SIS Management API javadoc.

  • Added getVariable() method to Service Composition Selection activity object interface (SCSActivity) to allow access to script variables from such an activity.

  • Added delete() methods to the ScriptVariable interface used in SIS Extension Activities to complement the equivalent action available via XML scripting.

  • Fixed an issue with the "threadsAvailable" statistic in the SIS Work Queues stats parameter set. The counter could have become negative in overload conditions.

  • Fixed SIS admin tools to correctly utilise the $CLIENT_HOME environment variable, if it’s set, in preference to a CLIENT_HOME setting stored in the admin tools' config property files.

  • IN: The "no default route configured" alarm will now be cleared, if it was raised, when a SIS instance is removed from the SLEE.

  • IN: The behaviour of the SIS when handling event reports for leg terminating EDPs has been changed to more accurately reflect real-world behaviour. If such an event is received from the network:

    • as a notification, SIS will assume that the call will be released in the network and will therefore terminate the composition

    • as a request:

    • if the event report is delivered to the service as a notification, the dialog to the service will be terminated

    • if the event report is delivered to the service as a request, and the service responds with a Continue, the dialog to the service will be terminated under the assumption the service expects the call will be released

    • if the final response the SIS sends to the network is a Continue, the SIS will assume the network will release the call and therefore will close the network dialog Note that a dialog will only be terminated if there are no relevant outstanding charging reports pending.

  • IN: The CAPv3 protocol is now fully supported for voice calls. It is no longer require to enable such support using the "cap3-voice-support" experimental feature. Consequently this experimental feature option has been removed.

  • IN: Added missing profile-spec-refs to the SIS Unified resource adaptor so that rhino-export will correctly find all profile table dependencies required for a successful import.

  • IN: Fixed an issue which meant that if a service in a composition caused a failure leading to the originating network dialog being terminated, northbound dialogs for other external services in the composition in some circumstances weren’t also terminated.

  • IN: Added new methods to INSCSActivity and INSCSEvent in the Service Composition Selection Extension Resource Adaptor Type that allow trigger evaluation to be terminated without being recorded in statistics as a failure scenario. New stats parameters have been added to the "Activities Received (conducted)" stats parameter set to cover the non-failure termination cases.

  • IN: Fixed the implementation of the setValue methods in ScriptVariables obtained from an extension activity object which were erroneously passing on the event argument as the value to be set, instead of the value argument.

  • IN: Fixed an event-delivery issue. If a network event was received while already processing a previous event that suspended the call state model, the latter event would not be delivered until either another northbound event occurred or processing of the former event was completed.

  • IN: Fixed an issue where if a service sent a ReleaseCall operation in response to the InitialDP, and the EventReportBCSM generated by the SIS to notify other services of the call termination was delivered to a service that had requested the event report in notify & continue mode only, then the SIS was delivering that event report to the service as a notification however the miscCallInfo parameter within the EventReportBCSM argument was set to indicate the report was a request.

  • IN: Fixed an error in determining if there were any armed event reports when handling a Cancel request from a service while not suspended at a DP.

  • IN: Tweaked general behaviour for sending Cancel requests to the network. Now, in cases where the SIS previously considered it redundant to send the Cancel, it’s more likely to send the Cancel rather than not.

  • IN: Fixed an issue where the extension activity was not being ended in the SLEE by the SIS in various cases such as when a service composition selection extension component terminated composition selection by returning an error result.

  • IN: Fixed an issue that prevented the Downcall output interceptor event from being fired to an interceptor extension component.

  • IN: Fixed an off-by-one array indexing error handling apply charging and call information reports.

  • IN: Fixed an issue with the handling of Apply Charging and Send Charging Information requests sent by a service if the generic call-control operation argument container type was used instead of the protocol-specific argument type.

  • IN: Operation error responses for charging requests (FCI, Apply Charging, Send Charging Info, Call Info Request) will now be correctly forwarded to the initiating service, rather than being treated as an unexpected error leading to composition and network dialog abort.

  • IN: Fixed an issue where the SIS would not close the network dialog until the outstanding charging report was received if a service sent an Apply Charging request then later closed the dialog before the report was received.

  • IN: Fixed an issue where the SIS may not have closed the network dialog in some cases if final charging reports were delivered in a separate TCAP block after the leg-terminating event report.

  • IN: Fixed a NullPointerException that occurred if the SIS received an EventReportBCSM without a leg id parameter when one should be present, eg. for the Disconnect EDPs.

  • IN: Fixed a NullPointerException that occurred in the SIS if an output interceptor component had event handler methods for the Downcall interceptor event as well as an individual component event contained in the output TCAP block.

  • IN: If an output interceptor extension component handling the Downcall extension event converts a Delimiter to a Close, the SIS will now send a User Abort to the intercepted service, if a service output interceptors, or all services, if a composition output interceptor, to clean up the service dialog(s).

  • IN: Fixed a race condition with the service response timeout timer task which could cause an AssertionError if the service ended just as the timer task was firing.

  • IN: Fixed an issue that caused new fields added by subprotocols of CAPv2 to Furnish Charging Information request arguments to be lost by the SIS when it forwarded FCI requests to the network. All FCI argument fields will now be preserved by the SIS even if it doesn’t know about them.

  • IN: Fixed an issue with the handling of multiple Furnish Charging Information requests sent by a service while in the same BCSM state. The second and subsequent FCI requests were being lost.

  • IN: Fixed an Ericsson CS1+ specific issue around the implicit disarming of EDPs for the leg linked to the one reporting an event.

  • IN: Fixed an Ericsson CS1+ specific issue resolving conflicts between DP specific criteria in RequestReportBCSM operations: if a local service specified criteria using the CS1DPSpecificCriteria super-protocol class instead of the ECS1pDPSpecificCriteria class, then conflicts with other services may not have been resolved as expected.

  • IN: Fixed a double decrement of the live activity count in activity statistics when a dialog started by an SBB ended. This was leading to the live activity count becoming negative.

  • IN: Fixed the application contexts that the ETSI INAP CS1 CGIN Message Utils Provider Resource Adaptor will provide support for. It was missing the SCP → SSP and assisting-handoff application contexts for ETSI CS1.

  • IN: Fixed an obfuscation issue that prevented third-party TCAP stacks from being used by the SIS.

  • IN: The Nokia INAP CS1 protocol is now optionally supported.

Changes to SIS Script Variables:

  • IN: Added root variables for all known operation invokes and results in currently supported protocols. At minimum this allows for the presence of the operation invoke or result to be detected within an event stream.

  • IN: Added an invoke-id sub-variable to all operation variables, specifying the invoke id of the operation. This is a read-only integer variable with values in the range [-128,127].

  • IN: Added a linked-id sub-variable to specialized-resource-report, specifying the invoke id of the Play Announcement or Prompt & Collect User Information the SRR is linked to. This is a read-only integer variable with values in the range [-128,127].

  • IN: Added O_AttemptAuthorized as a named value for the event-type-bcsm sub-variable.

  • IN: Fixed an error with the release-call variable that would have had it erroneously match against a Connect operation instead of a ReleaseCall operation.

  • IN: New variables added for Nokia INAP CS1, all are assignable and deletable:

    • initial-dp.ncs1.abs-subscriber - a named integer variable representing the absSubscriber extension

    • initial-dp.ncs1.gateway-ssf-indication - a flag-type variable that carries no value representing the gatewaySSFIndication extension

    • initial-dp.ncs1.imsi - a compound datatype representing the imsi extension

    • initial-dp.ncs1.mm-event-type - a named integer variable representing the mm-EventType extension

    • initial-dp.ncs1.msrn - a compound datatype representing the msrn extension

    • initial-dp.ncs1.sm-rp-ui-header - a compound datatype representing the sm-RP-UIHeader extension

Changes to SIS Script Schemas:

As a consequence of the following changes, schema version numbers have been incremented, however the new schemas are fully backwards compatible with the SIS 2.3.0 schemas.

  • IN: Added a definition for the <imsi> compound datatype used in the Nokia INAP CS1 extension field variable.

Version 2.3.0

  • Updated to use CGIN Connectivity Pack 1.3.1.

  • Profile management interfaces have been added for all profile specifications defined by SIS. Except for the SIS Configuration Profile, the profile management interfaces provide a read-only view of SIS profile state. This is to encourage management of the SIS via the SIS JMX MBean interfaces, rather than unaudited direct manipulation of profiles storing the persistent state of the SIS.

  • Added 'failifmissing' attribute to <sis-management> Ant task. Allows an Ant build file to specify whether or not failure to connect to a given SIS instance is a fatal error condition. Default value is 'true'.

  • An "extension-options" element has been added to the composition descriptor schema. It permits arbitrary extension options to be defined by the SIS and included in a composition without having to further modify the schema.

  • The "extension-options" attribute previously associated with the <invoke> and <parallel> elements in a composition script has been removed and replaced with an <extension-options> element within the same parent element. This <extension-options> element follows the same syntax as the element of the same name mentioned in the previous paragraph. Existing extension options have had a minor revision as follows:

    traffic-reduce -> SIP:traffic-reduce
    use-service=XYZ -> SIP:use-service, with value "XYZ"
    accept-non-continuing-close -> IN:accept-non-continuing-close
  • IN: Added extension option "IN:proxied-invoke-timer-long" which can be used to specify an invoke timeout period for 'long timer' operations, such as Play Announcement and Prompt & Collect User Information, proxied by the SIS for external services. This extension option can be specified for an individual service or for the composition.

  • IN: The 'idd-prefix' and 'country-code' configuration properties have been removed from the global SIS configuration. As these properties were only used if a redirect prefix was specified for a composition, they must now be specified as part of a redirect request. This means:

    • the redirect-prefix composition XML element has been replaced with a final-redirect element, with the IDD prefix, country code, and redirect prefix specified as attributes of this new element

    • the redirect failure type XML element has been replaced similarly

    • the Service Composition Selection resource adaptor type failWithRedirect() methods have been modified to require the additional parameters

    • new management commands have been added to support changing the final redirect of a composition at runtime

    • due to required schema changes, the versions of most SIS schemas has been incremented

  • IN: Added a timer to periodically send out an ActivityTest on eligible network dialogs managed by the SIS. A "query-liveness-period" resource adaptor config property has been added to configure the timer period.

  • IN: The Ericsson INAP CS1+ protocol is now optionally supported.

  • IN: Fixed internal proxy for CAP3 SMS dialogs so that it works again.

  • IN: Fixed an issue that made a virtual dialog unusable after a Delimiter was sent on the dialog without any component operations. Attempting to send anything else on the dialog after this time would cause the sending thread to block indefinitely.

  • IN: Fixed a NoClassDefFoundError that occurred when using fine-grained tracing in conjunction with trigger address tracing selectors.

  • IN: Fixed an issue that meant a DisconnectForwardConnection was not sent by the SIS to the network to clean up user interaction state if a service prematurely closed its dialog during user interaction when configured with the "accept-non-continuing-close" extension option.

  • IN: Fixed an issue that meant that if a service failed while some other service was doing user interaction, internal SIS state regarding the user interaction was corrupted.

  • IN: Fixed an issue with the network router incorrectly selecting a route if either a point code or SSN (but not both) were absent from the rule.

  • Fixed sis-exporter so that it doesn’t fail if an Experimental Features profile table is not configured or does not exist. It is assumed that all experimental features are disabled if a correctly configured Experimental Features profile table is not present.

  • Fixed typos found in some sis-console command descriptions.

Changes to SIS Script Variables:

  • IN: Changes to existing variables:

    • initial-dp-sms.calling-party-number-sms.* renamed to initial-dp-sms.calling-party-number.*

    • initial-dp.bearer-capability.itu-t.* variables in this namespace are now assignable

    • initial-dp.location-info.location-info.age-of-location variable name corrected to initial-dp.location-info.age-of-location

    • initial-dp-sms.event-type-sms & event-report-sms.event-type-sms valid integer value range reduced from 1..13 to 1..3 to accurately reflect the valid values defined by the CAPv3 protocol

  • IN: New variables added, all are assignable. Added for "inn-routing" component of address-type variables.

    This is an integer variable with named values: [allowed,not-allowed]. The valid value range is [0..1]:

    • connect.destination-routing-address.inn-routing

    • initial-dp.called-party-number.inn-routing

    • initial-dp.location-info.location-number.inn-routing

    • initial-dp.location-number.inn-routing

    • initiate-call-attempt.destination-routing-address.inn-routing - Added for "number-incomplete" component of address-type variables

    This is a boolean variable:

    • connect.additional-calling-party-number.number-incomplete

    • connect.calling-party-number.number-incomplete

    • initial-dp.additional-calling-party-number.number-incomplete

    • initial-dp.calling-party-number.number-incomplete

    • initiate-call-attempt.calling-party-number.nNBumber-incomplete

    • initial-dp.location-info.service-area-id.* - compound datatype of type service-area-id

  • IN: Changes to compound datatypes:

    • calling-party-number

      • codec component renamed to address-codec

      • number-complete component renamed to number-incomplete

      • affects script assignments to:

        • connect.calling-party-number

        • initial-dp.calling-party-number

        • initiate-call-attempt.calling-party-number

    • called-party-number

      • codec component renamed to address-codec

      • allow-inn-routing renamed to inn-routing

      • affects script assignments to:

        • connect.destination-routing-address

        • initial-dp.called-party-number

        • initiate-call-attempt.destination-routing-address

    • called-party-bcd-number

      • codec component renamed to address-codec

      • affects script assignments to:

        • initial-dp.called-party-bcd-number

        • initial-dp-sms.destination-subscriber-number

    • generic-number

      • codec component renamed to address-codec

      • number-complete renamed to number-incomplete

      • affects script assignments to:

        • initial-dp.additional-calling-party-number

        • connect.additional-calling-party-number

    • isdn-address

      • renamed to address-string

      • codec component renamed to address-codec

      • affects script assignments to:

        • initial-dp-sms.calling-party-number:

        • initial-dp.location-info.vlr-address:

    • cell-global-id

      • codec component removed

      • added components mcc-codec and mnc-codec

      • affects script assignments to:

        • initial-dp.location-info.cell-global-id

    • service-area-id

      • added for script assignments to:

        • initial-dp.location-info.service-area-id

    • location-area-id

      • codec component removed

      • added components mcc-codec and mnc-codec

      • affects script assignments to:

        • initial-dp.location-info.location-area-id

    • location-number

      • codec component renamed to address-codec

      • allow-inn-routing renamed to inn-routing

      • affects script assignments to:

        • initial-dp.location-info.location-number

        • initial-dp.location-number

    • original-called-party-id

      • renamed to original-called-number

      • codec component renamed to address-codec

      • affects script assignments to:

        • initial-dp.original-called-party-id

    • redirecting-party-id

      • renamed to redirecting-party-number

      • codec component renamed to address-codec

      • affects script assignments to:

        • initial-dp.redirecting-party-id

Version 2.2.1

  • Updated to use CGIN Connectivity Pack 1.2.6.

  • Added support for multiple network interfaces within a single SIS instance and a routing table to select which network interface should be used for any given outbound dialog. These are managed via new MBean interfaces and new commands in sis-console.

  • New elements have been added to the composition schemas. Consequently the versions of these schemas have been incremented.

  • The category names of SIS-specific console management commands have been prefixed with "sis-" to make them more obvious as to what they apply to.

  • Trigger address tracing selectors can now be specified for third-party call triggers. Consequently, the existing getSelectors(boolean) and setSelectors(boolean, TriggerAddressTracingSelector[]) operations on the TriggerAddressTracingManagementMBean interface have been deprecated and new variants that take a TriggerType parameter instead of the boolean have been introduced.

  • SIS Exporter tool now includes external platform definitions in the export.

  • Added non-interactive execution modes to SIS Installer and Instantiator tools, allowing easier automated installs.

  • IN: Added a max-dialogs configuration property that can be used to limit the maximum number of concurrent network dialogs the SIS will allow before rejecting new dialogs for first-party call attempts.

  • IN: Added options to specify how the SIS behaves when it receives an Open Refuse, a User Abort, or a User Error response to an event delivered to the service in Interrupted mode.

  • IN: Local services invoked by the SIS will now function correctly if they process the Open Request event instead of the initial request event. The basic CGIN RA requires that a service process only the Open Request (as the initial request can be obtained from the Open Request event), however the SIS previously complained if a service didn’t process the initial request. Now SIS is aligned with the CGIN RA in this respect.

  • IN: Fixed support for ActivityTest operation from both local and external services.

  • IN: Fixed issues with the SIS firing interceptor extension events to an output interceptor extension component.

  • IN: A timer no longer operates when a service sends an ETC request, as the assisting dialog may not be opened by the SRF/IP towards the SIS platform.

  • IN: Improved some call flows generated by the SIS towards the network at the end of user interaction portions of a call.

  • IN: Reduced the amount of interaction the SIS adds to assisting dialogs. This indirectly improves error cases (open refusals, user aborts, etc).

  • IN: Some flow tracing improvements, particularly wrt external services.

  • IN: When resolving conflicts between differing application timer DP-specific criteria, the smaller of the two values is now selected instead of the larger.

  • IN: Implemented support for Ericsson INAP CS1 charging messages (FCI, Apply Charging, etc).

Changes to SIS Script Variables:

  • IN: Added open-request variable and sub-variables.

  • IN: Added cause variable and sub-variables to existing release-call variable.

Version 2.2

  • Updated to use CGIN Connectivity Pack 1.2.1. INCC APIs are no longer supported. CAP and INAP supported has been combined into a single 'unified' SIS for IN, which also supports MAP protocols for outgoing dialogs only.

  • Trigger address tracing support added to SIP such that it is now a common feature between IN and SIP.

  • Added monitoring of external services, so that failures can be detected quickly, and new calls directed to a backup server. Failover or recovery of external services can be initiated manually by an administrator, or automatically by the SIS, based on configurable thresholds.

  • A 'keep-alive' activity has been added to the SIS. This activity ensures that the SIS remains in the STOPPING state when deactivated if the only dialogs known to the SIS relate to external rather than local services. The keep-alive activity will be ended, allowing the SIS to return to the INACTIVE state, once all dialogs known to the SIS have ended.

  • The identity of some existing alarms raised by the SIS has been modified. Some new alarms have been added.

  • Added a basic SIS state exporter admin utility, useful for exporting the state of a SIS instance in a manner that can facilitate upgrades easier.

  • A SIS MBean permission policy file is now provided in the documentation directory.

  • SIS variables can now be obtained via the Composition Activity interface.

  • IN: The Ericsson INAP CS1 protocol is now optionally supported.

Changes to SIS Script Variables:

  • IN: The 'global-cell-id' subvariable of 'initial-dp.location-info' has been renamed to 'cell-global-id'.

  • IN: The 'global-cell-id' compound datatype has also been renamed to 'cell-global-id'. It has also had its digit codec specification changed. Instead of specifying just one digit codec for both MCC and MNC digit strings, separate codecs may now be specified for each digit string.

  • SIP: The read-only variable 'message-body' has been added, for examining SDP and other text-based message bodies.

Version 2.1

  • Requires Rhino 2.1+.

  • Further alignment of SIS features and tools between SIP and IN protocols. A unified sis-console replaces the previously separate insis-console and sipsis-console.

  • Add windows support, implemented batch file scripts for admin, configuration, etc.

  • References to services invoked by compositions are now SIS components managed via the JMX interface. Compositions no longer include <service-ref> elements. Network addresses for external services can be changed at runtime. External addresses may be selected via round-robin, active-standby, or load-share options.

  • Extension Service API Resource Adaptor Type renamed to Interceptor Extension Resource Adaptor Type.

  • Signalling interceptors can now be used to process service output, as well as input and output to a composition as a whole.

  • Added support for invoking composition services in parallel.

  • Added more XML variables to expose more signalling parameters to macros, triggers, and compositions. Made many existing variables that were read-only in the XML assignable also.

  • The syntax of expression conditions has been changed to make them simpler to use while more flexible. Variables can now be used in place of any literal value.

  • Functions that operate on string values, eg. substring, index-of, append, etc are now available to be used in expressions.

  • Compound data types such as IN CallingPartyNumber and CalledPartyNumber can now be described in XML and assigned to relevant variables.

  • It is now possible to specify how the SIS deals with a composition service that fails or doesn’t respond. The SIS can ignore the service and continue (the previously available default behaviour) or terminate processing of the current event.

  • Extension options can now be specified when invoking a composition service. Extension options can modify how the SIS handles the service.

  • Added configurable inbound rate limiter to throttle new work accepted by the SIS.

  • Updated to use IN Connectivity Pack 3.2 at a minimum.

  • IN: Service input and output interceptors are now re-evaluated each time the service is invoked. Previously an interceptor was only invoked for the initial request.

  • IN: The SIS now supports third-party call setup attempts initiated by external services (only). A composition may be triggered using the signalling parameters contained in the InitialCallAttempt request.

Version 2.0

  • Updated to implement SLEE 1.1 standard resource adaptor APIs. Requires Rhino 2.0+.

  • Management interfaces have been overhauled and are now completely based on JMX MBeans, rather than manipulation of SLEE Profiles. Many management interfaces are common to both SIS for SIP and SIS for IN.

  • Compositions, triggers, etc, are now defined in their own XML files and installed as "components" to the SIS via JMX (similar in nature to how SLEE components are installed into the SLEE).

  • Provisioning tools have been replaced by extensions to rhino-console, so that both the SIS and Rhino command can be run in the same client. The command history and tab-completion features of rhino-console are supported for all SIS commands.

  • Compositions may now contain branches so that different services can be invoked depending on the value of signalling parameters.

  • A set of Ant tasks is provided for running SIS commands from Ant build scripts.

  • Audit trail logs may now be collected at various levels of granularity.

  • The SIS supports a Service Composition Selection Extension Resource Adaptor Type. This allows custom Java code to select which composition should be invoked for a particular call.

  • Added an Extension Service API Resource Adaptor Type. This allows custom Java code to change signalling parameters before a network event is delivered to a composition service.

  • IN: Added a Composition Activity Provider Extension Resource Adaptor Type. A Composition Activity is a SLEE activity that is mapped to the lifecycle of a network dialog and may be used to share SLEE state between different services in a single composition.

  • IN: Updated to use IN Connectivity Pack 3.0_02 at a minimum. SIS for IN requires an IN Connectivity Pack 3.0_02 installation to function.

  • IN: Added support for CAPv3 SMS messages in compositions.

  • IN: The SIS now supports handling of all online charging messages (Apply Charging, Call Information Request/Report, Send Charging Info)

  • IN: Added support for external services to be invoked directly by the SIS, allowing proxy service functionality (ie. message forwarding to an external SCP) without the overhead of SLEE activities and events.

  • IN: Removed the proxy and redirect services as their use is now redundant.

  • IN: Removed hard-coded behaviour to check for valid service keys on each initial request. This behaviour can now be scripted and customised in a trigger rule if required.