Changes between 3.0.0.1 and 3.0.0.2

  • Add support for comments within pairs of parentheses, as sub-fields within a Server or User-Agent header. These still appear as 'product' fields, which now allow both product values, or parenthesised comments. (SIPSCEN-199)

Changes between 3.0.0.0 and 3.0.0.1

  • Reduce CPU requirements re SIP dialog clean up when large numbers of dialogs are active. (SIPSCEN-197)

Changes between 2.6.0.1 and 3.0.0.0

  • This release is built on and requires JDK 11. It requires Rhino 3.0 or later releases

  • Add flag to select whether SipDialogID endpoints are matched. Added MatchDialogEndpoints property, defaults to "true" to match existing behaviour. If “false”, then SipDialogID endpoints are not matched when comparing SipDialogIDs, so that the same sim dialog can be used when an endpoint changes (i.e. after a failover). (SIPSCEN-190)

  • Fix SRV matching to compare endpoint sets regardless of ordering.

  • Add autogeneration of Contact, Route and Record-Route headers. These produce a sip address that points to the IP:Port of the sip stack. This uses the ViaSentByAddress if set, or the local IP if not. Transport is chosen with the same logic as auto vias, based on the provided configuration. Route and RecordRoute headers always have the lr parameter added. (SCEN-1302)

  • Add support for SRV addresses. (SIPSCEN-187)

Changes between 1.0.3.8 and 2.6.0.0

  • Add new structured URIs in the SIP schema 2.6 and add support for migrating from schema 1.0 to 2.6. Either: (a) Open the scenarios using the Scenario Editor and save them, or (b) Run ./scenario-migration.sh -migrate /path/to/your/scenarios/*.scen (SIPSCEN-81)

  • Fix auto generation of Via header branch parameters in CANCEL and ACK requests. (SIPSCEN-184)

  • Add support to configure "StackProvidedHostnames" property. (SIPSCEN-182)

  • Add support to configure "UDPMaxRequestSize" and "UDPInputBufferSize" properties for sip stack. (VOLTE-5067)

  • Fix validation of classic-URL field when used with AUTO or SELECT. (STLSIP-1253)

  • Add support for multipart message bodies, for use with content type 'multipart/*'. (SIPSCEN-172)

  • Support port numbers in local endpoint addresses. Using the "Port" property in the config properties file is still the typical approach. When both are specified, they must be equal. (SIPSCEN-174)

Changes between 1.0.3.7 and 1.0.3.8

  • Fix issue around matching of fields which may be enclosed in double quotes. (SIPSCEN-166)

  • Add support for SDP session IDs and session values larger than 2^63-1. (SIPSCEN-171)

Changes between 1.0.3.5 and 1.0.3.7

  • Add support for binary message bodies, for use with content type 'application/vnd.3gpp.sms'. (SIPSCEN-162)

SIP Scenario Pack 1.0.3.5

  • Reduce memory footprint of SIP scenarios which include long lived transactions. (SIPSCEN-8)

  • Reduce CPU usage for SIP scenarios which include large messages containing the SDP message body. (SIPSCEN-9)

  • Added support for discarding retransmissions of reliable provisional responses as per RFC 3262. (SIPSCEN-95)

  • SIP: Added support for the P-Charging-Vector header as per RFC 3455. From now it cannot be specified as user defined header field in a message. Meaning that for all such instances, in any existing scenarios, the data should be manually moved from the UserDefined field to the new P-Charging-Vector field in the message headers. (SIPSCEN-105)

  • SIP: Added a special support for automatic retransmissions when sending 2xx (final) response to INVITE request, and ACK request to 2xx (final) response (to INVITE request), as per RFC 3261. For the client side, an ACK request will be retransmitted on each incoming 2xx response retransmission to the INVITE request, until the associated AckRetransmitTimer timer, with default value of 32 000 (ms), times out. For the server side, an 2xx response will be retransmitted until a matching ACK request is received, or the associated server transaction terminates. (SIPSCEN-128)

  • SIP: Added support for automatic retransmissions when sending reliable 1xx (provisional) responses as per RFC 3262. This behaviour is configurable via the new Rel1xxRetransmitTimer configuration property, which represents the duration of the retransmit timer, with default value of 32 000 (ms). Any reliable 1xx response will be retransmitted until a matching PRACK request is received, or the associated timer expires. (SIPSCEN-129)

  • In the media line of the SDP message body, make the number-of-ports field optional. When sending a message with negative, zero, or undefined number-of-ports in the media line, don’t include the number-of-ports part on the wire. (SIPSCEN-11)

  • In the origin line of the SDP message body, improve the auto-generation of values for address-type and origin-address fields when the ViaSentByAddress is not configured. (SIPSCEN-16)

  • Fixed a case where an incoming response in a forked dialog failed to match. (SIPSCEN-18)

  • Fixed a bug which caused the to and from tags to be reversed in the Replaces header. (SIPSCEN-19)

  • SIP: option-tag values are now unordered. (SIPSCEN-23)

  • Fixed a bug where an NullPointerException might be thrown during scenario validation for a scenario containing SIP message with no Call-ID header. (SIPSCEN-24)

  • Fixed a possible ClassCastException that occurred when decoding a SIP message containing an unknown header, which is not defined in the SIP schema. (SIPSCEN-29)

  • Added a SIP validation rule: for a user defined header with header-name that matches a header field, which according to its definition in the RFC carries a SIP URI, the URI address part must be enclosed in angle brackets ("<" and ">"), while the display-name part must be enclosed in double quotes (" and "). This applies to the following headers supported by the SIP stack only: P-Asserted-Identity (RFC 3325), P-Associated-URI (RFC 3455), P-Called-Party-ID (RFC 3455), P-Preferred-Identity (RFC 3325), P-Served-User (RFC 5502), Service-Route (RFC 3608), Path (RFC 3327), and Referred-By (RFC 3892). (SIPSCEN-45)

  • SIP: Added support for multiple values in user defined header fields. (SIPSCEN-47)

  • Improved parsing of the language part in the Accept-Language and Content-Language headers. In addition, added a validation rule to detect any potential issues regarding the specified language value in a scenario, that might cause the scenario to not match on the receiving side due to the value normalization. (SIPSCEN-49)

  • Fixed a bug re parsing of SIP URIs where the user-part contains a semicolon character. (SIPSCEN-50)

  • In the media line of the SDP message body, remove the auto-generation support for number-of-ports field. From now the AUTO attribute cannot be specified for this field in a scenario. Meaning that all its instances, in all existing scenarios should be manually removed, and the value of number-of-ports field should be specified either explicitly, or using the ALIAS, or SELECT attributes. (SIPSCEN-143)

  • Improved the data type for SIP URIs in the scenario schema by addition of optional headers field to represent the embedded headers, as per RFC 3261. (SIPSCEN-33)

  • Added a SIP validation rule: for requests the CSeq header method should match that of the request, while for responses the CSeq header (sequence number and method) should match a CSeq header from any of the previous requests specified between the two roles in a scenario. (SIPSCEN-35)

  • SIP: Added support for the History-info header as per RFC 4244. From now it cannot be specified as user defined header field in a message. Meaning that for all such instances, in any existing scenarios, the data should be manually moved from the UserDefined field to the new History-info field in the message headers. (SIPSCEN-40)

  • SIP: Added support for the Replaces header as per RFC 3891. From now it cannot be specified as user defined header field in a message. Meaning that for all such instances, in any existing scenarios, the data should be manually moved from the UserDefined field to the new Replaces field in the message headers. (SIPSCEN-42)

  • SIP: Added support for the Privacy header as per RFC 3323. From now it cannot be specified as user defined header field in a message. Meaning that for all such instances, in any existing scenarios, the data should be manually moved from the UserDefined field to the new Privacy field in the message headers. (SIPSCEN-43)

  • Added a SIP validation rule: the user defined header header-names must be unique in a message. (SIPSCEN-46)

  • SIP: Added support for automatic expiration of pending server transactions (which remain in state Trying/Proceeding). This behaviour is configurable via the new ServerTransactionTimeout configuration property, which represents the time for which a pending server transaction expires, with the default value of 30 000 (ms). (SIPSCEN-77)

  • Added a special support for signalling to the scenario simulator that the simulator dialog has ended (and should be removed). This is a scenario driven behaviour, realized by the usage of a new type of local-only message: DialogClose, which indicates that the dialog should be cleaned up immediately. It is recommended to use this mechanism in performance testing mostly, if appropriate to avoid increased memory usage. It is not required to be used in all scenarios, as all dialogs are cleaned up correctly typically at session end. In addition, added a validation rule to ensure the proper usage of DialogClose message in a scenario (i.e. must be marked as local message, must be the final message in the dialog, and must not duplicate any other DialogClose message specified in the same direction in the dialog). (SIPSCEN-115)

  • SIP: Added support for automatic retransmissions when sending messages over UDP as per RFC 3261. This behaviour results from using of the SIP transaction layer when handling messages by the simulator. Specifically, from now the client transactions are being used when sending requests and handling of incoming responses, while the server transactions are being used when handling of incoming requests and sending responses respectively. Regarding ACK requests for error responses to INVITE requests, the behaviour is configurable via the new ErrorResponsesAckSuppression configuration property, with default value of "false". When it is enabled, the ACKs for error responses will be generated and send automatically on the client side, while on the server side they will be suppressed. Meaning that, if the ACKs suppression is enabled, then such ACKs should not be defined explicitly in scenarios. Similarly, regarding 100 (Trying) provisional responses to INVITE requests, the behaviour is configurable via the new Automatic100TryingSupport configuration property, with default value of "false". When it is enabled, the 100 (Trying) responses will be generated and send automatically. Meaning that, if the automatic 100 support is enabled, then such 100s should not be defined explicitly in scenarios. Refer to the README/README-sip.txt file containing documentation for all available SIP Scenario Pack configuration properties. In addition to this changes, renamed the javax.sip.STACK_NAME configuration property to StackName. Existing scenarios are affected by this change, but it is not required to update the configuration files, yet it is preferable. In case the StackName is not configured, a default value of "OCSIP" will be used. Also improved handling of the Transports configuration property. Now the preferred transport (e.g. when using AUTO for transport in Via header) will be the first one on the transports list. Existing scenarios may be affected by this change, in the sense that in some cases it may be necessary to reverse the transports list (e.g. from "TCP,UDP" to "UDP,TCP" if UDP should be the preferred transport) in the configuration files in order to make them working. (SIPSCEN-10)

  • Added a SIP scenario example: normal-session-with-sdp.scen, containing the SDP message body for exchange of media information. (SIPSCEN-56)

  • Added support for AUTO generation of icid-value values in the P-Charging-Vector header. (SIPSCEN-82)

  • Added support for discarding retransmissions of 2xx final responses to INVITE request. An incoming 2xx response to INVITE request is treated as retransmission if the first 2xx response with the same To-tag has already been processed for the client transaction associated with the response. (SIPSCEN-122)

  • Added support for discarding retransmissions of 100 (Trying) provisional responses. An incoming 100 (Trying) response is treated as retransmission if the first 100 (Trying) response has already been processed for the client transaction associated with the response. (SIPSCEN-123)

  • In the connection line of the SDP message body, add the auto-generation support using AUTO for network-type, address-type, and connection-address fields. When using AUTO for the network-type field, its value will be set to 'IN', meaning Internet. Then the auto-generated values for the address-type ('IP4' or 'IP6') and connection-address fields will be determined based on the ViaSentByAddress value if it is configured, or the configured endpoint address otherwise. (SIPSCEN-51)

  • Documented all possible SIP Scenario Pack configuration properties in README/README-sip.txt file. (SIPSCEN-66)

Changes prior to this version are listed in CHANGELOG-simulator.txt