!
! 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 set-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
