# Terminal for launching Osmocom programs
# Supported: urxvt, xterm
TERMINAL="urxvt"

ETH_DEV=eth0
APN_DEV=apn0

TO_RAN_IP="127.0.0.3"
TO_RAN_IU_IP="127.0.0.4"
TO_SIP_IP="127.0.0.2"

STATSD_IP="127.0.0.1"

MCC=001
MNC=01

TCH_TYPE=TCH/H

BTS_BAND=GSM-1800
BTS_LAC=23
BTS_MAX_POWER_RED=22
BTS_CODEC_SUPPORT=fr amr
BTS_200mW=23

BTS0_DESCRIPTION="my test BTS 0"
BTS0_IPA_UNIT="0 0"
BTS0_ARFCN=123
BTS0_CI=${BTSn}
BTS0_BSIC=${BTSn}
BTS0_GPRS_MODE=gprs
BTS0_GB_REMOTE_IP=${SGSN_IP}
BTS0_GB_REMOTE_PORT=${SGSN_GB_PORT}
BTS0_NSVCI=${BTSn}
BTS0_NSEI="${BTSn_NSVCI}"
# according to osmo-bsc vty, BVCI must be >= 2
BTS0_BVCI="100${BTSn}"
BTS0_BAND=${BTS_BAND}
BTS0_LAC=${BTS_LAC}
BTS0_MAX_POWER_RED=${BTS_MAX_POWER_RED}
BTS0_NOMINAL_POWER=${BTS_200mW}
BTS0_CODEC_SUPPORT=${BTS_CODEC_SUPPORT}

BTS1_DESCRIPTION="my test BTS 1"
BTS1_IPA_UNIT="1 0"
BTS1_ARFCN=125
BTS1_CI=${BTSn}
BTS1_BSIC=${BTSn}
BTS1_GPRS_MODE=gprs
BTS1_GB_REMOTE_IP=${GBPROXY_IP}
BTS1_GB_REMOTE_PORT=${GBPROXY_GB_PORT}
BTS1_NSVCI=${BTSn}
BTS1_NSEI="${BTSn_NSVCI}"
BTS1_BVCI="100${BTSn}"
BTS1_BAND=${BTS_BAND}
BTS1_LAC=${BTS_LAC}
BTS1_MAX_POWER_RED=${BTS_MAX_POWER_RED}
BTS1_NOMINAL_POWER=${BTS_200mW}
BTS1_CODEC_SUPPORT=${BTS_CODEC_SUPPORT}

HLR_IP=127.0.0.5

MSC_PC="0.23.1"
MSC_MNCC_SOCKET="/tmp/mncc_socket"
MSC_MNCC="internal"
# MSC_MNCC="external ${MSC_MNCC_SOCKET}"

AUTH=required
ENCR_A5=1

SGSN_IP="${TO_RAN_IP}"
SGSN_PC="0.23.2"
SGSN_GB_PORT=23000

GBPROXY_IP="${TO_RAN_IP}"
GBPROXY_GB_PORT=7777

PCU_GB_LOCAL_PORT=23000

MGW4MSC_IP="${TO_RAN_IU_IP}"
MGW4MSC_PORT="2427"
MGW4MSC_VTY_IP="127.0.0.6"

MGW4BSC_IP="${TO_RAN_IP}"
MGW4BSC_PORT="2427"
MGW4BSC_VTY_IP="127.0.0.7"

BSC_IP="${TO_RAN_IP}"
BSC_PC="0.23.3"
BSC_CODEC_LIST="hr3"

HNBGW_PC="0.3.0"
HNBGW_IP="${TO_RAN_IP}"

HNODEB0_IP="192.168.0.124"
HNODEB0_UARFCN=4357
HNODEB0_SCRAMBLE=157
HNODEB0_LAC=1${HNODEB0_UARFCN}
HNODEB0_RAC=11

HNODEB1_IP="192.168.0.23"
HNODEB1_UARFCN=4358
HNODEB1_SCRAMBLE=258
HNODEB1_LAC=1${HNODEB1_UARFCN}
HNODEB1_RAC=22

GGSN_IP="${TO_RAN_IU_IP}"
GGSN_DNS0="192.168.0.1"
GGSN_DNS1="9.9.9.9"
GGSN_NET="192.168.42.0/24"
GGSN_GTP_STATE_DIR=/tmp

# Enabled only when MSC_MNCC != "internal"
SIPCON_SIP="${TO_SIP_IP}"
SIPCON_SIP_PORT="5060"

STP_CN_IP="127.0.0.1"
STP_RAN_IP="127.0.0.1"
# Set STP_CN_IP different from STP_RAN_IP, to run a second OsmoSTP and
# OsmoBSCNAT to connect both
# STP_RAN_IP="127.0.0.2"

# Enabled only when STP_CN_IP != STP_RAN_IP
BSCNAT_CN_PC="${BSC_PC}"
BSCNAT_CN_IP="127.0.0.3"
BSCNAT_RAN_PC="${MSC_PC}"
BSCNAT_RAN_IP="127.0.0.4"

# PBX_SERVER:
#  "kamailio" -- launch kamailio
#  "freeswitch" -- launch freeswitch
#  "none" -- launch no server, use remotely running SIP server
PBX_SERVER="kamailio"
PBX_SIP="${TO_SIP_IP}"
PBX_SIP_PORT=5069
PBX_LO_IP=127.0.0.8

LOG_OUTPUT0_TYPE=stderr
LOG_OUTPUT1_TYPE=file current_log/${_name}.log
LOG_OUTPUT2_TYPE=gsmtap 127.0.0.9
