SSP Selection

SSP Selection

SSP Selectors are used when an InitialDP operation is defined in order to choose the appropriate SSP Model. The configuration for these selectors is within the configssps block:

    ...
      <config>
        ...
        <ssps>
          <!-- SSP selection rules for the SCP -->
        </ssps>
        ...
      </config>
      ...

Configuration Details

The available configuration items for SSP selection are as below:

Attribute Type Description
.ssps Object Container for the SSP models and selectors.
.models Array Array of model elements defining the supported INAP/CAMEL handling models.
.model Object Provisions a known INAP/CAMEL handling model.
.release_cause_translation Array Array of cause elements defining the model-specific release cause translations.
.cause Object Provisions a known SSP model release cause translation.
.selectors Array Array of selector elements defining the model selection rules.
.selector Object Provisions a known SSP model selector.

SSP Models

Each SSP Model specifies a description for CAMEL/INAP call-processing behavior.

Each model Object in the config.models Array is configured as follows.

Attribute Type Description
name String [Required] A name for this model, unique within this list.
inap camel1 / camel2 / camel3 / camel4 / cs1 [Required] One of the SSP protocol variants implemented by ScpApp.
returned_ac [AC Alias] / Hex Value / copy / none Specify the TCAP Application Context to return to the SSP in response to the InitialDP.
Either a known TCAP AC Alias, or a hex string, or the value copy (copy the received AC) or the value none.
(Default = copy).
trim_called_party_stop_digit Boolean When present, should we trim the end of pulsing signal (stop sending) digit (F) from the InitialDP calledPartyNumber information element's digits?
(Default = true, trim the end of pulsing signal digit when present).
clear_on_final_termination Boolean When sending INAP Connect or INAP Continue in a TCAP END for the purpose of Final Termination, do we also explicitly send RequestReportBCSM to clear (monitor mode = transparent) any armed BCSM EDPs that may still be armed from a previous Attempted Termination, Monitored Termination, or Charged Termination?
(Default = false, do not clear armed EDPs before Final Termination).
split_rrbcsm_legs Boolean Does the SSP require Leg1 and Leg2 EDPs to be contained in dedicated RRBCSM operations?
This is not required by the standard, but some SSP will Error if this is not done.
(Default = depends on inap).
max_monitored_call_secs 300 - 7200 The is the permitted maximum duration of a "Monitored", which is a call which uses Disconnect ERBCSM to monitor the duration of the call but which does not use the "Charged" call mechanism to perform initial/extension grants.
A Monitored call may use CallInformationReport and or ActivityTest, but in any case this maximum duration still applies.
(Default = 7200 seconds).
max_charged_call_secs 300 - 86400 This is the maximum total granted talk time that the SCP layer will ever permit for a charged call either using ApplyCharging or the CAMEL1 alternative using only ActivityTest. If the service logic (typically instructed by the OCS) attempts to grant a call longer than this duration, the SCP layer will truncate the grant to the configured duration and forcibly terminate the call when that time expires.
(Default = 86400 seconds).
tcap_immediate_ms 10 - 5000 The limit (in milliseconds) within which an "immediate" TCAP component must arrive after another message. For example, at the end of a call we expect any of the following applicable components (CallInformation, EventReportBCSM, ApplyChargingReport) to arrive "immediately" one after the other.
(Default = 500 milliseconds).
tcap_margin_ms 10 - 5000 The grace period (in milliseconds) within which a medium/long-term expected TCAP component may arrive late because of allowance for processing and network time.
Specifically for SSP it allows an (Answer/NoAnswer) EventReportBCSM to arrive slightly after the applicationTimer timeout.
For SSP it also allows the first message at the end of the call (e.g. ApplyChargingReport, EventReportBCSM, or CallInformationReport) to be slightly later than the aChBillingChargingCharacteristics contents strictly specify.
(Default = 500 milliseconds).
ac_crossover_ms 10 - 5000 The limit (in milliseconds) within which an EventReportBCSM and/or CallInformationReport may be received without an ApplyChargingReport at the end of a charged call while the most recent ApplyChargingReport is being processed.
(Default = 500 milliseconds).
activity_test_result_ms 10 - 5000 The limit (in milliseconds) within which an ActivityTestResult response must arrive after being requested.
(Default = 1000 milliseconds).
release_tone_supported Boolean Does the SSP support playing a tone at the conclusion of the final time grant?
This can only be enabled if the underlying INAP protocol supports it.
(Default = depends on inap).
default_release_tone Boolean Do we play tone by default at the conclusion of the final time grant?
Service logic may override tone-playing on a per-call basis (e.g. fax).
(Default = false, do not play release tone).
fci_supported Boolean Does the SSP support receiving FurnishChargingInformation (FCI) operations?
(Default = depends on inap).
sci_supported Boolean Does the SSP support receiving SendChargingInformation (SCI) operations?
(Default = depends on inap).
interaction_supported Boolean Does the SSP support user interaction using either an internal or external SRF?
(Default = depends on inap).
pa_pacui_reset_tssf Boolean Do we need to send ResetTimer to the SSP (to ensure the SSP's Tssf timer doesn't expire, and cause the call to be aborted) each time a PlayAnnouncement or PromptAndCollectUserInformation (PACUI) operation is sent to an SRF?
(Default = false, do not send ResetTimer).
call_information_supported 0 - 31 Does the SSP support CallInformationRequest, and if so then which CIR fields may be included in the request. This value is a bit-mask where the following bit fields may be specified:
0x01 (bit 0) => callAttemptElapsedTime is supported.
0x02 (bit 1) => callStopTime is supported.
0x04 (bit 2) => callConnectedElapsedTime is supported.
0x08 (bit 3) => calledAddress is supported.
0x10 (bit 4) => releaseCause is supported.
(Default = depends on inap).
default_call_information_monitored 0 - 31 Do we perform CallInformationRequest by default when using Connect or Continue to terminate a B-Leg using the "Monitored" termination model, and if so then which CIR fields are included in the request. This value is a bit-mask with the same interpretation as for call_information_supported.
(Default = do not use CallInformationReqest for "Monitored" terminations).
default_call_information_charged 0 - 31 Do we perform CallInformationRequest by default when using Connect or Continue to terminate a B-Leg using the "Charged" termination model, and if so then which CIR fields are included in the request. This value is a bit-mask with the same interpretation as for call_information_supported.
(Default = do not use CallInformationReqest for "Charged" terminations).
activity_test_supported Boolean Do we allow service logic and configuration to enable periodic ActivityTest for this SSP model.
(Default = depends on inap).
default_monitor_interval_secs 5 - 600 What is the default interval in seconds between ActivityTest requests initated by us for the purpose of supervising "Monitored" termination calls.
(Default = 120 seconds).
default_release_cause 1 - 127 A default ReleaseCause to pass to the SSP in the general case where the service logic does not expressly define it.
(Default = 31).
default_expiry_release_cause 1 - 127 A default ReleaseCause to pass to the SSP for SCP termination after "release at expiry" and the end of the final grant duration, in the case where the service logic does not expressly define it.
(Default = 31).
default_no_answer 1 - 120 A default NoAnswer timeout (in seconds) to enforce within the RRBCSM when arming for NoAnswer in the case where the service logic does not expressly request a user-preferred NoAnswer timeout.
(Default = do not enforce an explicit NoAnswer timer in RRBCSM).
maximum_no_answer 1 - 120 The maximum duration to wait for a ERBCSM in the case where we did not expressly set the NoAnswer timeout in the RRBCSM. If no ERBCSM is received, the call is considered "lost" by the SCP.
This setting is not relevant if default_no_answer is configured.
(Default = 120).
open_tcap_cleanup prearranged / end / releasecall / continue How should we close the SSP TCAP dialog if we believe that call control is over, but the TCAP SSP dialog is still open.
prearranged = Assume pre-arranged END.
end = Send TCAP END with no components.
releasecall = Send INAP/CAP ReleaseCall operation in TCAP END.
continue = Send INAP/CAP Continue operation in TCAP END.
(Default = prearranged).
open_ssp_tcap_warning Boolean Should we generate a warning message if we detect the case where we believe that the SSP has entered state "Idle" (i.e. call control is over) but the TCAP SSP dialog is still open.
(Default = true).
interaction default / cs1_nokia Controls additional protocol-specific behavior for interactions.
Refer to the N-Squared N2SCP CAMEL-INAP Protocol Conformance Statement for details.
(Default = default, no additional interaction features is enabled).
bparty_beep none / cs1_nokia / cs2_split_leg Does this SSP model support the playing of B-Party after the Answer EDP for a Termination Attempt, and which message sequence will it use.
Refer to the N-Squared N2SCP CAMEL-INAP Protocol Conformance Statement for details.
Enabling this feature for an SSP does not as-of-itself cause B-Party beep to be applied to a Termination Attempt. The service logic must explicitly request activation of the beep on a per-termination basis.
(Default = none, B-Party Beep is Not supported).
bparty_beep_id Integer If the B-Party beep mechanism uses PlayAnnouncement then this field is required and defines the default value for the single elementary message ID to be used for this post-answer B-Party beep.
The service logic may override this value on a per Termination basis.
(Default = none).
rrbcsm_prefix String An optional digits prefix to apply to the Destination Routing Address in a termination attempt for which RRBCSM arming is performed. This is required for some legacy SSPs which do not support RRBCSM EDP reporting on all trunk groups, and hence which require a trunk group prefix to be applied for Attempt/Monitored/Charged Termination calls.
This prefix is applied to the digits after denormalisation has been performed and the NoA has been determined.
(Default = none).
force_mfc_on_redirecting_party Boolean [CAMEL SSPs only]
Whether to use the presence of InitialDP.redirectingPartyId as the MFC indicator.
When determining MFC for CAMEL call, the differentiating factor according to the specification is InitialDP.locationInformation as it must be present for MOC and must be omitted for MFC. An MOC trigger with a redirecting party is technically allowed in CAP3+.
However, in order to support non-compliant scenarios such as an IMS trigger converted to CAMEL, the force_mfc_on_redirecting_party parameter can be set to true to simply use the presence of redirectingPartyId as determination.
(Default = false, use locationInformation for CAMEL, use redirectingPartyId for INAP).
allow_mfc_bcd_number Boolean Whether to accept MFC triggers that provide the called party in the InitialDP.calledPartyBCDNumber field.
To support non-compliant scenarios such as an IMS trigger converted to CAMEL, the allow_mfc_bcd_number parameter can be set to true to allow use of the calledPartyBCDNumber field if it is provided.
(Default = false, reject MFC IDPs that do not contain calledPartyNumber.).
rade_in_tc_continue Boolean [CAMEL2 SSP only]
When using CAMEL2, the network has no way to indicate that a call was released due to the releaseAtDurationExceeded flag.
By default, the N2IWF will infer this situation based on the following conditions:
  1. A releaseAtDurationExceeded was previously sent in the applyCharging message.
  2. The legActive is false.
  3. The timeIfNoTariffSwitch matches the previous maxCallPeriodDuration.
  4. The applyChargingReport was received in a TCAP End message.
If all conditions are met, the message is treated as releaseAtDuratingExceeded and no further messages are expected.
If rade_in_tc_continue is set to true, then an applyChargingReport in a TCAP Continue will be considered for this handling in the same way as a TCAP End.
If detected, call clearance will be handled as per open_tcap_cleanup for the SSP model.
(Default = false, CAMEL2 releaseAtDurationExceeded detection applies only to TCAP End messages.).

Release Cause Translation

Each SSP Model may specify a set of release cause translations to be applied to release causes specified by service logic. Release cause translation may be necessary if different SSP Models require different release causes to be used in a given scenario.

Note that these translations do not affect the configured model.default_release_cause, or the expiry scenario (including model.default_expiry_release_cause).

Each cause Object in the config.models.model.release_cause_translation Array is configured as follows.

Attribute Type Description
replaced 1 - 127 [Required] A release cause value to replace.
replacement 1 - 127 [Required] The release cause value used instead of replaced.

Default SSP Models

Note that for each supported inap, if a user-defined SSP Model of the same is not present, the ScpApp will automatically create an SSP Model of the same name.

For example: If there is no SSP Model named camel2, then ScpApp will automatically create an SSP Model with the name camel2 with attribute inap = camel2 and all of the corresponding defaults.

INAP Model Defaults

The inap model defaults are as follows:

camel1

Attribute Default
returned_ac camel1 = 04000001003200 (hex)
clear_abandon_on_answer true
split_rrbcsm_legs false
release_tone_supported false
fci_supported false
sci_supported false
interaction_supported false
call_information_supported false
activity_test_supported true

camel2

Attribute Default
returned_ac camel2 = 04000001003201 (hex)
clear_abandon_on_answer true
split_rrbcsm_legs false
release_tone_supported true
fci_supported true
sci_supported true
interaction_supported true
call_information_supported 23
  • callAttemptElapsedTime
  • callStopTime
  • callConnectedElapsedTime
  • releaseCause
activity_test_supported true

camel3

Attribute Default
returned_ac camel3 = 04000001150304 (hex)
clear_abandon_on_answer true
split_rrbcsm_legs false
release_tone_supported true
fci_supported true
sci_supported true
interaction_supported true
call_information_supported 23
  • callAttemptElapsedTime
  • callStopTime
  • callConnectedElapsedTime
  • releaseCause
activity_test_supported true

camel4

Attribute Default
returned_ac camel4 = 04000001170304 (hex)
clear_abandon_on_answer true
split_rrbcsm_legs false
release_tone_supported true
fci_supported true
sci_supported true
interaction_supported true
call_information_supported 23
  • callAttemptElapsedTime
  • callStopTime
  • callConnectedElapsedTime
  • releaseCause
activity_test_supported true

cs1

Attribute Default
returned_ac cs1 = 04000101010000 (hex)
clear_abandon_on_answer true
split_rrbcsm_legs false
release_tone_supported true
fci_supported true
sci_supported true
interaction_supported true
call_information_supported 31 (all fields)
  • callAttemptElapsedTime
  • callStopTime
  • callConnectedElapsedTime
  • calledAddress
  • releaseCause
activity_test_supported true

SSP Selectors

Each SSP Selector defines a rule for choosing the appropriate SSP Model for a received inbound InitialDP operation. The SSP Selectors are checked in order of definition, and the first matching selector is used.

Each selector Object in the config.ssps.selectors Array is configured as follows.

Attribute Type Description
model String [Required] The name of the SSP Model which this selector will choose.
This must be the name of a user-defined or automatically-defaulted SSP Model.
ssp_ac [AC Alias] / Hex Value / none [Required] The inbound TCAP Application Context for InitialDP to match this selector.
Either a known TCAP AC Alias, or a hex string, or the value none (received TCAP-BEGIN containing InitialDP does not have AC).

Default SSP Selectors

Note that for each supported inap, if there is no user-defined SSP Selector mapping to an SSP Model of the same name, the ScpApp will automatically create an SSP Selector pointing to that model, using the corresponding Application Context Alias as the ssp_ac.

For example: If there is no SSP Selector for the SSP Model named camel2, then ScpApp will automatically create an SSP Selector for the model named camel2 with attribute ssp_ac = camel2.