MSC simulator

From ss7api.null.ro
Jump to: navigation, search

This module simulates the call related features of a CAMEL capable MSC.

In particular the module implements the Basic Call Machine State described by the CAMEL standards.

The module does not store the CAMEL subscription, instead it expects any subscription information to be provided in the inbound call routing parameters.

Contents

BCSM Module Configuration

The configuration file is camel_bcsm.conf. Sections:

[general]

Unless explicitly specified, all parameters in this section are applied on reload for new calls only.
Parameters:

  • application: string: Application parameter in camel messages sent by the module

This parameter is required
This parameter can be overridden from routing for each call

  • camel_phase: integer: CAMEL phase to use

Allowed values: 1, 2, 3, 4
Defaults to 4
This parameter can be overridden from routing for each call

  • servicekey: integer: CAMEL serviceKey parameter to be set in initialDP messages

Allowed interval: 0..2147483647
Defaults to 0
This parameters can be overridden from routing for each statically armed DP (see call.execute handling)

  • msc_address: string: The mscAddress parameter to be set when sending initialDP
  • msc_address_plan: string: MSC address numbering plan. Values: unknown, isdn, data, telex, land-mobile, isdn-mobile, national, private, extension-reserved
  • msc_address_nature: string: MSC address number nature. Values: unknown, international, national, network-specific, subscriber, reserved, abbreviated, extension-reserved

This parameters can be overridden from routing for each statically armed DP (see call.execute handlin)

  • default_call_handling_continue: boolean: Continue operation when an error occurs

Defaults to enable
This parameters can be overridden from routing for each statically armed DP (see call.execute handlin)

  • tssf_timer: integer: Application timer (milliseconds) for non user interaction

This interval is used when call processing is suspended and no user interaction is expected, e.g. an event was notified to SCP and we are waiting for instructions
Interval allowed: 1000..20000 (1..20s)
Defaults to 3000 (3 seconds)

  • tssf_timer_user: integer: Application timer (milliseconds) for user interaction

This interval id used when call processing is suspended and user interaction is expected, e.g. a disconnectForwardConnection (disconnect a temporary leg) was received from SCP
Interval allowed: 60000..1800000 (1..30min)
Defaults to 180000 (3 minutes)

  • report_etc_failed_timer: integer: The interval in milliseconds to report failure for temporary calls started on Establish Temporary Connection requests

Failure will be reported if the SRF terminates the call within this interval
If no failure is reported the controlling SCF (which has its own timer) will treat the request as succeeded
This parameter can be overridden from routing
Minimum allowed value is 1000
Defaults to 3000.

  • dp_busy_reason: regexp: Regexp to match termination reason when a called party terminates the call and we have the 'busy' DP armed

If the reason matches dp_busy_reason the 'busy' DP will be notified to SCP
Defaults to ^busy$

  • dp_noanswer_reason: regexp: Regexp to match termination reason when a called party terminates the call and we have the 'no answer' DP armed

If the reason matches dp_noanswer_reason the 'no answer' DP will be notified to SCP
Defaults to ^noanswer$

  • export_xml_as: string: Specify in which way the XML will be passed along into camel messages. Allowed values are:
    • string: pass the XML as a string
    • object: pass the XML as an object
    • both: pass the XML as a string and object

This parameter can be overridden from routing.
Defaults to object

  • print_xml: boolean/string: Instruct the module to print sent/received xml components. Allowed values are:
    • boolean true: Print xml on single line
    • boolean false: Don't print xml
    • verbose: Print xml children on separate lines

This parameter can be overridden from routing.
Defaults to false

  • print_decoded: boolean: Print decoded xml elements to output if debug is at level 10

This parameter can be overridden from routing.
Defaults to no

BCSM Routing

call.execute handling

An incoming call is routed to this module by adding a bcsm/ prefix to target.
The prefix may be followed a call target to use when CAMEL SCF request to continue the call at initial DP, CAMEL SCF is not available (network failure) or initialDP fails:

^123$=bcsm/sig/123;trunk=trunk1

The following parameters (See BCSM Configuration for details) can be added when routing:

  • servicekey
  • default_call_handling_continue

Example:

^123$=bcsm/sig/123;trunk=trunk1;servicekey=2;default_call_handling_continue=false

Starting outgoing calls

When need to start an outgoing call (received ETC, ICA/CWA, CWA, CONT) the module will send call.preroute, call.route and call.execute messages.
The call.preroute message is filled with initial call.execute message parameters and request parameters (the request may override initial parameters).

The following parameters are always replaced in the initial message:

  • id: Replaced by BCSM leg id
  • module: Replaced by BCSM module name

When the initial call is continued, e.g. the call must be continued to initial called number, the call is routed if no target was specified in call.execute message, e.g. the call was initially routed to bcsm/.
Otherwise, a call.execute message is sent with initial target in callto parameter.

NOTES:

  • The preroute/route/execute messages are dispatched, e.g. the operation is done synchronously.
  • When ICA/CWA is processed, the initial message parameters are replaced from ICA first and then from CWA request.
Personal tools
Namespaces

Variants
Actions
MAP & CAMEL XML Interface
Diameter XML Interface
MAP and CAMEL operations
Diameter interfaces
Examples
Resources
Navigation
Toolbox