aboutsummaryrefslogtreecommitdiffstats
path: root/start.sh
blob: 15fc3ed7418e17920774b0e6ec8387df3cf567de (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#!/bin/bash

config_dir="$(readlink -f "$(dirname "$0")")"
openbsc_config="$config_dir/open-bsc.cfg"
osmobts_config="$config_dir/osmo-bts.cfg"
osmosgsn_config="$config_dir/osmo-sgsn.cfg"
openggsn_config="$config_dir/ggsn.conf"
ggsn_state_dir="$config_dir/ggsn-state/"
ggsn_config="$config_dir/ggsn.conf"
hlr_db="$config_dir/hlr.sqlite3"
window_title="GSM"
lcr=""
channels="1"
gprs=0

[[ $3 == "lcr" || $2 == "lcr" || $1 == "lcr" ]] && lcr="-m"
[[ $3 == "mimo" || $2 == "mimo" || $1 == "mimo" ]] && channels="2"
[[ $3 == "gprs" || $2 == "gprs" || $1 == "gprs" ]] && gprs=1

tmux new-session -s "$window_title" -n close-me -d

tmux new-window -n OpenBSC -t "$window_title"
tmux send-keys -t OpenBSC "osmo-nitb -c '$openbsc_config' -l '$hlr_db' -P -C --debug=DRLL:DCC:DMM:DRR:DRSL:DNM $lcr" Enter

tmux new-window -n OsmoBTS -t "$window_title"
tmux send-keys -t OsmoBTS "while ! /sbin/ss -n -l -u src \"*:5700\" | grep -q :5700; do sleep 0.5; done; osmobts-trx -c '$osmobts_config' -t $channels" Enter

if [[ -n $lcr ]]; then
	tmux new-window -n LCR -t "$window_title"
	tmux send-keys -t LCR "/usr/sbin/lcr start" Enter
fi

tmux new-window -n OsmoTRX -t "$window_title"
tmux send-keys -t OsmoTRX "osmo-trx -c $channels" Enter

if [[ $gprs -eq 1 ]]; then
	#TODO in ebuild: sudo setcap cap_net_admin=ep /usr/bin/ggsn
	tmux new-window -n OpenGGSN -t "$window_title"
	tmux send-keys -t OpenGGSN "ggsn --statedir='$ggsn_state_dir' --conf='$openggsn_config' --pidfile='$ggsn_state_dir/ggsn.pid' --fg --debug" Enter

	tmux new-window -n OsmoSGSN -t "$window_title"
	tmux send-keys -t OsmoSGSN "osmo-sgsn -c '$osmosgsn_config'" Enter

	tmux new-window -n SGSN-Control -t "$window_title"
	tmux send-keys -t SGSN-Control "while ! /sbin/ss -n -l -t state listening src \"*:4245\" | grep -q :4245; do sleep 0.5; done; telnet 127.0.0.1 4245" Enter
fi

tmux new-window -n BSC-Control -t "$window_title"
tmux send-keys -t BSC-Control "while ! /sbin/ss -n -l -t state listening src \"*:4242\" | grep -q :4242; do sleep 0.5; done; telnet 127.0.0.1 4242" Enter

tmux new-window -n BTS-Control -t "$window_title"
tmux send-keys -t BTS-Control "while ! /sbin/ss -n -l -t state listening src \"*:4241\" | grep -q :4241; do sleep 0.5; done; telnet 127.0.0.1 4241" Enter

tmux new-window -n HLR -t "$window_title"
tmux send-keys -t HLR "watch -t -n 1 \"sqlite3 -column -header '$hlr_db' 'SELECT imsi,extension,name,lac,updated from Subscriber ORDER BY expire_lu DESC'\"" Enter

tmux set-option -q -t "$window_title" status on
tmux set-option -q -t "$window_title" set-titles on
tmux set-option -q -t "$window_title" set-titles-string "GSM Base Station"
tmux set-option -q -t "$window_title" status-right ""
tmux kill-window -t close-me
tmux select-window -t OpenBSC
tmux attach -t "$window_title"