!
! OpenBSC configuration saved from vty
!
password foo
!
log stderr
 logging filter all 1
 logging color 0
 logging print category 0
 logging print extended-timestamp 1
 logging level all debug
!
line vty
 no login
 bind ${vty_bind_ip}
!
e1_input
 e1_line 0 driver ipa
 ipa bind ${abis_bind_ip}
network
 network country code ${mcc}
 mobile network code ${mnc}
 short name ${net_name_short}
 long name ${net_name_long}
 auth policy ${net_auth_policy}
 location updating reject cause 13
 encryption ${encryption}
 neci 1
 rrlp mode none
 mm info 1
 handover 0
 handover window rxlev averaging 10
 handover window rxqual averaging 1
 handover window rxlev neighbor averaging 10
 handover power budget interval 6
 handover power budget hysteresis 3
 handover maximum distance 9999
smpp
 local-tcp-ip ${nitb.ip_address.addr} 2775
 system-id test-nitb
 policy ${smsc.policy}
 %for esme in esme_list:
  esme ${esme.system_id}
 % if esme.password == '':
   no password
 % else:
   password ${esme.password}
 % endif
   default-route
 %endfor
ctrl
 bind ${ctrl_bind_ip}
%for bts in bts_list:
 bts ${loop.index}
  type ${bts.type}
  band ${bts.band}
  cell_identity ${bts.cell_identity}
  location_area_code ${bts.location_area_code}
  training_sequence_code 7
  base_station_id_code ${bts.base_station_id_code}
  ms max power 15
  cell reselection hysteresis 4
  rxlev access min 0
  channel allocator ascending
  rach tx integer 9
  rach max transmission 7
  ip.access unit_id ${bts.unit_id} 0
  oml ip.access stream_id ${bts.stream_id} line 0
  gprs mode none
% for trx in bts.trx_list:
  trx ${loop.index}
   rf_locked 0
   arfcn ${trx.arfcn}
   nominal power 23
   max_power_red ${trx.max_power_red}
   rsl e1 tei 0
%  for ts in trx.timeslot_list:
   timeslot ${loop.index}
    phys_chan_config ${ts.phys_chan_config}
%  endfor
% endfor
%endfor
