; This file keep signalling channel configuration
; Each section (except for 'general' section) configure a call controller (trunk)
;  or a signalling component
; For call controllers (trunks), the name of the section will be used to route
;  outgoing calls


[general]
; This section keep general or default settings for the signalling module:

; debuglevel: int: Debug level for the plugin
; This parameter is applied on reload
;debuglevel=

; debuglevel_engine: int: Debug level for the signalling engine
; This parameter is applied on reload
;debuglevel_engine=

; dtmfinband: boolean: Enable to try to send the DTMF data in band when an audio
;  channel is available. If disabled or no audio channel available, the DTMF will
;  be sent through the signalling channel if any
;dtmfinband=no


; Each section except [general] can have some common parameters

; To disable the component without deleting the entire section.
; The default is to enable the component
; enable: bool: Allow creation of the component corresponding to the section
;enable=yes

; Debug name as reported in Yate logs, default is derived from component name
; This parameter is used only when a component is created
; debugname: string: Debug name of the created component
;debugname=

; Debug level to apply on creation or reload
; debuglevel: int: Debug level of the component
;debuglevel=


; Example of an ISDN trunk
;[trunk1]

; type: keyword: Specify the trunk type 
; Allowed values:
;  isdn-bri-net:  ISDN network side of a data link over basic rate HDLC interface(s)
;  isdn-bri-cpe:  ISDN CPE (user) side of a data link over basic rate HDLC interface(s)
;  isdn-pri-net:  ISDN network side of a data link over one or more primary HDLC interface(s)
;  isdn-pri-cpe:  ISDN CPE (user) side of a data link over one or more primary HDLC interface(s)
; NOTE: isdn-pri-net and isdn-pri-cpe are identical, except for the side of the link
;type=

; switchtype: string: The switch type of this group
; This parameter defines a set of flags modifying the call controller's behaviour
; Allowed values: euro-isdn-e1, euro-isdn-t1, national-isdn, dms100, lucent5e, att4ess, qsig, unknown
;switchtype=unknown

; sig: string: Specify the span(s) containing the signalling channel (D)
; For example wanpipe1 or any other section specified in any of the telephony
;   modules like wpcard or zapcard
;sig=

; voice: string: Specify the span(s) containing the voice channels (B)
; Multiple cards may be specified by simply separating them with a comma (',')
;  character
; Defaults to the trunk name if missing
;voice=

; offset: int: Offset of voice circuit codes relative to low level circuit number
;offset=0

; range: string: Arbitrary ranges of circuits for outbound calls (can be repeated)
; Possible formats:
;  range=name:list of circuits (like 1,3,5-9)
;  range=name:strategy:list of circuits (like 1,3,5-9)

; number: string: Prefix of numbers we accept call setups for, empty to accept all
; Only used by isdn-pri-cpe, makes sense when NET side is Point-to-Multipoint
; Setups are ignored if called number is present but doesn't start with this prefix
;number=

; rxunderrun: int: Maximum interval in ms between two packets before we report
;  an underrun condition, zero to disable or 2500+
;rxunderrun=0

; strategy: string: The strategy used to allocate voice channels for outgoing calls
; Allowed values:
;  - increment  Incremental search an idle channel starting with the last allocated channel
;  - decrement  Decremental search an idle channel starting with the last allocated channel
;  - lowest     Incremental search an idle channel starting with the first channel in group
;  - highest    Decremental search an idle channel starting with the last channel in group
;  - random     Randomly choose an idle channel
; Defaults to increment
;strategy=increment

; strategy-restrict: string: Define channel allocation restrictions and behaviour
; This option is ignored when strategy is random
; Allowed values:
;    even           Allocate only even channels
;    odd            Allocate only odd channels
;    even-fallback  Allocate even channels, fall back to odd channels
;    odd-fallback   Allocate odd channels, fall back to even channels
;strategy-restrict=

; channelsync: integer: The interval (in seconds) at which the call controller
;  will try to re-sync idle channels
; The call controller will notify the other side of the link of idle channels
; Set to 0 to disable
; Invalid values default to minimum (60s)
;channelsync=1000

; channellock: integer: Maximum time (in ms) spent trying to lock a remote channel
; Invalid values default to minimum (2500ms)
;channellock=10000

; numplan: string: Default numbering plan for outgoing calls
; Values: unknown, isdn, data, telex, national, private
; Defaults to unknown if missing or incorrect
;numplan=unknown

; numtype: string:  Default number type for outgoing calls
; Values: unknown,international,national,net-specific,subscriber,abbreviated,reserved
; Defaults to unknown if missing or incorrect
;numtype=unknown

; presentation: string: Default number presentation for outgoing calls
; Values: allowed, restricted, unavailable
; Defaults to allowed if missing or incorrect
;presentation=allowed

; screening: string:  Default number screening for outgoing calls
; Values: user-provided, user-provided-passed, user-provided-failed, network-provided
; Defaults to user-provided if missing or incorrect
;screening=user-provided

; format: string:  Default data format for outgoing calls. Values: alaw, mulaw, g721
; Defaults to alaw if missing or incorrect
; alaw is used commonly in Europe while mulaw is used commonly in US and Japan.
;format=alaw

; print-messages: boolean: Print decoded protocol data units to output
; This option is applied on reload
; Defaults to no
;print-messages=no

; print-frames: boolean: Print decoded Layer 2 (Q.921) frames to output
; This option is applied on reload
; Defaults to no
;print-frames=no

; extended-debug: boolean: Print extended debug data (such as raw hex data) to output
; This option is applied on reload
; Defaults to no
;extended-debug=no

; layer2dump: string: Filename to dump Q.921 packets to
;layer2dump=

; layer3dump: string: Filename to dump Q.931 packets to
;layer3dump=


; Example of an ISDN passive recorder
;[recorder1]

; type: keyword: Specify the trunk type 
; Allowed values:
;  isdn-pri-mon:  ISDN monitor of one or more primary HDLC interface(s)
;type=isdn-pri-mon

; sig-net: string: Specify the span(s) containing the signalling channel(s) for the network side of the monitored link
; For example wanpipe1 or any other section specified in any of the telephony
;   modules like wpcard or zapcard
;sig-net=

; sig-cpe: string: Specify the span(s) containing the signalling channel(s) for the user side of the monitored link
; For example wanpipe1 or any other section specified in any of the telephony
;   modules like wpcard or zapcard
;sig-cpe=

; voice-net: string: Specify the span(s) containing the voice channel(s) for the network side of the monitored link
; Multiple cards may be specified by simply separating them with a comma (',') character
; Defaults to the span specified in the sig-net parameter
;voice-net=

; voice-cpe: string: Specify the span(s) containing the voice channel(s) for the user side of the monitored link
; Multiple cards may be specified by simply separating them with a comma (',') character
; Defaults to the span specified in the sig-cpe parameter
;voice-cpe=

; detect: boolean: Change the side of the link on each captured request for watched signalling span(s)
; If disabled and the side of the link is not correct, the monitor will not be notified on
;   data link state change. This may lead to malfunction
;detect=yes

; idletimeout: integer: HDLC data link idle timeout, should be 3 * T203
; The minimum allowed value is 4000ms. Defaults to 30000 if missing or invalid
;idletimeout=30000

; muxchanbuffer: integer: The buffer size for one channel of the audio multiplexer
; Defaults to 160 if 0 or missing
;muxchanbuffer=160

; idlevalue: integer: The value used by the audio multiplexer to fill missing data
; This value is used to fill the free space when the multiplexer has to forward the received
;   data but one channel buffer is not full
; Interval: 0..255. Defaults to 255 if missing or invalid
; Ignored if type is not isdn-pri-mon
;idlevalue=255

; layer2dump-net: string: Filename to dump NET Q.921 packets to
;layer2dump-net=

; layer2dump-cpe: string: Filename to dump CPE Q.921 packets to
;layer2dump-cpe=


; Example of a SS7 ISUP trunk
;[isup1]
; type: keyword: Specify the trunk type 
; Allowed values:
;  ss7-isup:      SS7 ISDN User Part
;type=ss7-isup

; pointcodetype: string: SS7 point code type (required)
; Allowed values:
;  ITU    ITU-T Q.704
;  ANSI   ANSI T1.111.4
;  ANSI8  8-bit SLS
;  China  GF 001-9001
;  Japan  T-Q704, NTT-Q704
;  Japan5 5-bit SLS
;pointcodetype=

; pointcode: string: Local point code to accept as destination
; If no point codes are added no calls can be made (incoming or outgoing)
;  through this trunk
; The format is network-cluster-member or number
;pointcode=

; defaultpointcode: string: Default originating point code used for outgoing calls
; It also acts as accepted point code (see pointcode)
; Only one point code can be default
; The format is network-cluster-member or number
;defaultpointcode=

; remotepointcode: string: Default destination point code used for outgoing
;  calls and maintenance messages
; If missing or invalid, no maintenance message will be sent
; The format is network-cluster-member or number
;remotepointcode=

; service: int: Service Information Field (protocol number)
; It is unlikely you will ever need to modify it
;service=5

; priority: keyword: Value of the Priority bits in the Service Information Octet
; Allowed values: regular, special, circuit, facility
;priority=regular

; netindicator: keyword: Value of Network Indicator bits in the SIO
; Allowed values: international, spareinternational, national, reservednational
;netindicator=national

; userparttest: integer: Remote user part test interval in seconds
; Set to 0 to always assume the remote user part is available
; Invalid values default to minimum (10s)
;userparttest=60

; lockgroup: boolean: Allow sending circuit group block/unblock requests
; Normally the remote side must support circuit group operations
;lockgroup=yes

; earlyacm: boolean: Convert received early ACM user state into progress or ringing
;earlyacm=yes

; voice: string: Specify the span(s) containing the voice channels (L1)
; Multiple cards may be specified by simply separating them with a comma (',')
;  character
; Defaults to the trunk name if missing
;voice=

; offset: int: Offset of voice circuit codes relative to low level circuit number
;offset=0

; range: string: Arbitrary ranges of circuits for outbound calls (can be repeated)
; Possible formats:
;  range=name:list of circuits (like 1,3,5-9)
;  range=name:strategy:list of circuits (like 1,3,5-9)

; strategy: string: The strategy used to allocate voice channels for outgoing calls
; Allowed values:
;  - increment  Incremental search an idle channel starting with the last allocated channel
;  - decrement  Decremental search an idle channel starting with the last allocated channel
;  - lowest     Incremental search an idle channel starting with the first channel in group
;  - highest    Decremental search an idle channel starting with the last channel in group
;  - random     Randomly choose an idle channel
; Defaults to increment
;strategy=increment

; strategy-restrict: string: Define channel allocation restrictions and behaviour
; This option is ignored when strategy is random
; Allowed values:
;    even           Allocate only even channels
;    odd            Allocate only odd channels
;    even-fallback  Allocate even channels, fall back to odd channels
;    odd-fallback   Allocate odd channels, fall back to even channels
;strategy-restrict=

; channelsync: integer: The interval (in seconds) at which the call controller
;  will try to re-sync idle channels
; The call controller will notify the other side of the link of idle channels
; Set to 0 to disable
; Defaults to minimum value (60s) if missing or invalid
;channelsync=1000

; sls: integer or keyword: Default Signaling Link Selection in outbound calls
; Allowed values:
;    auto    Let SS7 Layer3 add a proper value
;    last    Last SLS used (default for non-ITU)
;    cic     Use the circuit number as SLS (ITU style)
;    0..255  Explicit numeric value, gets truncated to the SLS bit range
;sls=last (cic if pointcodetype is ITU)

; numplan: string: Default numbering plan for outgoing calls
; Values: unknown, isdn, data, telex, national, private
; Defaults to unknown if missing or incorrect
;numplan=unknown

; numtype: string:  Default number type for outgoing calls
; Values: unknown,international,national,net-specific,subscriber,abbreviated,reserved
; Defaults to unknown if missing or incorrect
;numtype=unknown

; presentation: string: Default number presentation for outgoing calls
; Values: allowed, restricted, unavailable
; Defaults to allowed if missing or incorrect
;presentation=allowed

; screening: string:  Default number screening for outgoing calls
; Values: user-provided, user-provided-passed, user-provided-failed, network-provided
; Defaults to user-provided if missing or incorrect
;screening=user-provided

; inn: boolean: Routing to Internal Network Number allowed
; Defaults to no
;inn=no

; format: string: Default data format for outgoing calls. Values: alaw, mulaw, g721
; Defaults to mulaw for ANSI and Japan point codes, alaw for all others
; alaw is used commonly in Europe while mulaw is used commonly in US and Japan.
;format=

; continuity: string: Type of continuity check to perform on the circuits
; If not set calls that request continuity check will be rejected
;continuity=

; print-messages: boolean: Print decoded protocol data units to output
; This option is applied on reload
; Defaults to no
;print-messages=no

; extended-debug: boolean: Print extended debug data (such as raw hex data) to output
; This option is applied on reload
; Defaults to no
;extended-debug=no


; Example of a SS7 MTP3 network (linkset)
;[linkset1]
; type: keyword: Specify the linkset type 
; Allowed values:
;  ss7-mtp3:      SS7 Message Transfer Part - Layer 3
;type=ss7-mtp3

; netind2pctype: string: Comma separated list of point code types used to map an
;  incoming network indicator to a specific point code type
; This option is required and is used to configure a SS7 MTP3 network
; The list must contain either a singe type or 4 values indicating the point
;  code type for International, SpareInternational, National and ReservedNational
;  network indicators
; If only a single type is specified it will be used to configure all types of
;  network indicators
; See the ISUP pointcodetype option for allowed values
; NOTE: An incoming packet with an unconfigured network indicator will be dropped
; Examples:
;  netind2pctype=ITU
;  netind2pctype=ITU,ANSI,ITU,ITU
;  netind2pctype=ANSI8,ITU,ANSI,ITU
;netind2pctype=

; route: string: Build a destination route for the SS7 network
; The format of this option is pointcodetype,label,priority
; This parameter can be repeated to build multiple destination routes
; The network will notify the router about its destination(s) and priority
; If not specified the priority is 100. A zero priority creates an adjacent route
; Example: route=ITU,2-2-2,100
;route=

; adjacent: string: Build an adjacent route for the SS7 network (A, E and F links)
; The format of this option is pointcodetype,label
; This parameter can be repeated to declare multiple adjacent routers
; The network will notify the router about its destination(s) and priority
; The priority is always zero so an adjacent route will always match first.
; Example: route=ANSI,40-50-60
;adjacent=

; autostart: bool: Automatically enable the linkset at startup
;autostart=yes

; layer3dump: string: Filename to dump MTP3 packets to
;layer3dump=



; Example of a SS7 MTP2 link
;[link1]
; type: keyword: Specify the link type 
; Allowed values:
;  ss7-mtp2:      SS7 Message Transfer Part - Layer 2
;type=ss7-mtp2

; autostart: bool: Automatically try to align the MTP2 at startup
;autostart=yes

; emergency: boolean: Emergency align SS7 MTP2 layer at startup
;emergency=yes

; filllink: boolean: Configure MTP2 to request link fill (packet repeat) when
;  sending FISU or LSSU packets
;filllink=yes

; rxunderrun: int: Maximum interval in ms between two packets before we report
;  an underrun condition, zero to disable or 25+
;rxunderrun=0

; layer2dump: string: Filename to dump MTP2 packets to
;layer2dump=
