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 config → ssps 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 valuenone.(Default = copy). | 
| trim_called_party_stop_digit | Boolean | When present, should we trim the end of pulsing signal (stop sending) digit ( F)
      from the InitialDPcalledPartyNumberinformation element's digits?(Default = true, trim the end of pulsing signal digit when present). | 
| clear_on_final_termination | Boolean | When sending INAP Connector INAPContinuein a TCAP END for the
      purpose of Final Termination, do we also explicitly sendRequestReportBCSMto
      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 CallInformationReportand orActivityTest,
      but in any case this maximum duration still applies.(Default = 7200seconds). | 
| 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 ApplyChargingor the CAMEL1 alternative using onlyActivityTest.
      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 = 86400seconds). | 
| 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 = 500milliseconds). | 
| 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)EventReportBCSMto arrive slightly after theapplicationTimertimeout.For SSP it also allows the first message at the end of the call (e.g. ApplyChargingReport,EventReportBCSM, orCallInformationReport) to be slightly
      later than theaChBillingChargingCharacteristicscontents strictly specify.(Default = 500milliseconds). | 
| ac_crossover_ms | 10-5000 | The limit (in milliseconds) within which an EventReportBCSMand/orCallInformationReportmay be received without anApplyChargingReportat the end of a charged call while the most recentApplyChargingReportis being processed.(Default = 500milliseconds). | 
| activity_test_result_ms | 10-5000 | The limit (in milliseconds) within which an ActivityTestResultresponse must arrive
      after being requested.(Default = 1000milliseconds). | 
| 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 ResetTimerto the SSP (to ensure the SSP's Tssf timer doesn't expire,
      and cause the call to be aborted) each time aPlayAnnouncementorPromptAndCollectUserInformation(PACUI) operation is sent to an SRF?(Default = false, do not sendResetTimer). | 
| 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) =>callAttemptElapsedTimeis supported.0x02(bit 1) =>callStopTimeis supported.0x04(bit 2) =>callConnectedElapsedTimeis supported.0x08(bit 3) =>calledAddressis supported.0x10(bit 4) =>releaseCauseis supported.(Default = depends on inap). | 
| default_call_information_monitored | 0-31 | Do we perform CallInformationRequestby default when usingConnectorContinueto 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 forcall_information_supported.(Default = do not use CallInformationReqestfor "Monitored" terminations). | 
| default_call_information_charged | 0-31 | Do we perform CallInformationRequestby default when usingConnectorContinueto 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 forcall_information_supported.(Default = do not use CallInformationReqestfor "Charged" terminations). | 
| activity_test_supported | Boolean | Do we allow service logic and configuration to enable periodic ActivityTestfor this SSP model.(Default = depends on inap). | 
| default_monitor_interval_secs | 5-600 | What is the default interval in seconds between ActivityTestrequests initated by us for
      the purpose of supervising "Monitored" termination calls.(Default = 120seconds). | 
| 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_answeris 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/CAPReleaseCalloperation in TCAP END.continue= Send INAP/CAPContinueoperation 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.redirectingPartyIdas the MFC indicator.When determining MFC for CAMEL call, the differentiating factor according to the specification is InitialDP.locationInformationas 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_partyparameter can be set totrueto 
      simply use the presence ofredirectingPartyIdas determination.(Default = false, uselocationInformationfor CAMEL, useredirectingPartyIdfor INAP). | 
| allow_mfc_bcd_number | Boolean | Whether to accept MFC triggers that provide the called party in the InitialDP.calledPartyBCDNumberfield.To support non-compliant scenarios such as an IMS trigger converted to CAMEL, the allow_mfc_bcd_numberparameter 
      can be set totrueto allow use of thecalledPartyBCDNumberfield 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 releaseAtDurationExceededflag.By default, N2SCP will infer this situation based on the following conditions: 
 releaseAtDurationExceededand no further messages are expected.If rade_in_tc_continueis set totrue, then anapplyChargingReportin aTCAP Continuewill be considered for this handling in the same way as aTCAP End.If detected, call clearance will be handled as per open_tcap_cleanupfor the SSP model.(Default = false, CAMEL2releaseAtDurationExceededdetection applies only toTCAP Endmessages.). | 
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
 | 
| 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
 | 
| 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
 | 
| 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)
 | 
| 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 InitialDPto match this selector.Either a known TCAP AC Alias, or a hex string, or the value none(received TCAP-BEGIN containingInitialDPdoes 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.