Server Bridging

Asterisk PBX

Disclaimer

Modules

Environment variables

CODECPACK=/<path>/CodecPack.so

asterisk.conf

[options]
systemname = <numeric ID of local system>

Dialplan

Outbound calls

Dial(Transit/<Core ID>/<ISSI>[/<options>])

Where options are:

By-default duplex individual call with ACELP (0) and normal priority (0) will be created.

Example:

Dial(Transit/2505/${EXTEN}/t)

Inbound calls

Channel variables:

Outbound messages

MessageSend(Transit:<Link ID>[/<Destination ISSI>][,<Source ISSI>[ <External Number>]])

Please keep your eyes on formatting. There no spaces in <to> section, no space after comma in <from> section and only single space between source ISSI and external number.

Channel variables:

Inbound messages

Channel variables:

TransitBridge sends delivery report when terminal requested that. Delivery status depends on the status of dialplan proceeding.

Technical Information

Channel ID format

Specific Hangup-Cause codes

Transit <TETRA disconnect-cause code>

Get TETRA disconnect-cause codes at Table 14.55 in ETSI EN 300 392-2 V3.8.1. Read more about Hangup Cause here.

Dialplan example

exten => 9XXXXXXX,1,Dial(Transit/2505/${EXTEN:1}/t)
same  => n,NoOp(Disconnect Cause: ${HANGUPCAUSE(${HANGUPCAUSE_KEYS()},tech)})
same  => n,HangUp()
exten => 16777184,1,NoOp(Incoming message)
same  => n,NoOp(From: ${MESSAGE(from)})
same  => n,NoOp(To: ${MESSAGE(to)})
same  => n,NoOp(Body: ${MESSAGE(body)})
same  => n,NoOp(TRANSIT_TYPE: ${MESSAGE_DATA(TRANSIT_TYPE)})
same  => n,MessageSend(Transit:2505/${MESSAGE(from)},16777184 911)
same  => n,NoOp(Message send status: ${MESSAGE_SEND_STATUS})

SVXLink

Note for owners of SVXLink nodes running TetraLogic

Note for owners of SVXReflector servers for TETRA

Administrating SVXLink bridges

Disclaimer about information bellow

Modules

Environment variables

svxlink.conf

[GLOBAL]
MODULE_PATH=/opt/SVXLink/lib/svxlink
CFG_DIR=/opt/SVXLink/etc/svxlink/svxlink.d
LOGICS=DockLogic,ReflectorLogic
LINKS=Link
TIMESTAMP_FORMAT="%c"

# Should be always 8 KHz!
CARD_SAMPLE_RATE=8000

[DockLogic]
TYPE=Dock
RX=Rx1
TX=Tx1
CALLSIGN=<Node call, should be completely the same as ReflectorLogic has>
EVENT_HANDLER=/opt/SVXLink/share/svxlink/events.tcl

# TetraPack Core IPC socket path
SOCKET=/tmp/Dock-<TetraPack Core ID>

# GSSI at TetraPack Core
GSSI=<GSSI of talk group at TetraPack>

# Default ISSI (used when ISSI is unknown)
ISSI=9999

# MNI for Qso:info messages (4 digits for MCC and 5 digits for MNC)
MNI=090116383

[Rx1]
TYPE=Dock

[Tx1]
TYPE=Dock

# Delay (in 60 ms frames) in bridged call start (SVXLink -> TetraPack), required for ISSI detection heuristics 
DELAY=5

# Preprocessing: Gain -> AGC -> Suppressor -> Normalizer

# Gain BEFORE preprocessing (0.1 .. 1.0, default is 1.0)
GAIN=0.75

# AGC, value is AGC target
# Comment or remove to disable
# AGC=8000

# Suppressor:
# 0 - Berouti spectral subtraction
# 1 - Wiener scalar filtering
# 2 - Two-step scalar filtering
# 3 - Two-step scaler filtering with gain
# 4 - Two-step phishing filtering
# 5 - Two-step phishing filtering with gain
# Comment or remove to disable
SUPPRESSOR=0

# Normalize audio, including dynamic compression and DC correction
NORMALIZER=1

[ReflectorLogic]
TYPE=Reflector
HOSTS=<SVXReflector's DNS/IP address>
CALLSIGN="<Node call>"
AUTH_KEY="<Key>"
UDP_HEARTBEAT_INTERVAL=5
DEFAULT_TG=<Bridged SVXReflector's TG>
MONITOR_TGS=<Bridged SVXReflector's TG>
EVENT_HANDLER=/opt/SVXLink/share/svxlink/events.tcl
MUTE_FIRST_TX_LOC=0
MUTE_FIRST_TX_REM=0

[Link]
CONNECT_LOGICS=DockLogic,ReflectorLogic
DEFAULT_ACTIVE=1
TIMEOUT=0