#!/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"