167 lines
3.8 KiB
Text
Executable file
167 lines
3.8 KiB
Text
Executable file
#!/usr/bin/expect -f
|
|
|
|
# This expect script can be run as:
|
|
# ./vty bsc
|
|
# ./vty msc
|
|
# ./vty sip ... etc
|
|
# (no need to remember ports)
|
|
#
|
|
# One can edit the script itself to configure the preferred
|
|
# logging configuration for each component.
|
|
#
|
|
# The last command to be issued will be logging filter all 1
|
|
# This allows for easy recall and issuing of
|
|
# 'logging filter all 0' to disable logging.
|
|
# As an alternative one call call this script as
|
|
# ./vty bsc 0 to disable logging on startup via the filter.
|
|
#
|
|
# Requires expect, available on most distributions.
|
|
|
|
set host localhost
|
|
set quiet 0
|
|
set vty [lindex $argv 0]
|
|
set lf [lindex $argv 1]
|
|
set all [lindex $argv 2]
|
|
set h [lindex $argv 3]
|
|
set port 0
|
|
if { $lf < 0 } { set lf 1 }
|
|
if { $all < 0 } { set all notice }
|
|
if { $all == "dq" } {
|
|
set all debug
|
|
set quiet 1
|
|
}
|
|
if { $h > 0 } { set host 127.0.0.2 }
|
|
|
|
switch $vty {
|
|
e1 { set port 4269 }
|
|
hlr { set port 4258 } ; # Short names
|
|
bsc { set port 4242 }
|
|
mgw { set port 4243 }
|
|
sg { set port 4245 }
|
|
msc { set port 4254 }
|
|
sip { set port 4256 }
|
|
gg { set port 4260 }
|
|
ggsn { set port 4260 }
|
|
hnbgw { set port 4261 }
|
|
stp { set port 4239 }
|
|
mob { set port 4247 }
|
|
bts { set port 4241 }
|
|
trx { set port 4237 }
|
|
pcu { set port 4240 }
|
|
|
|
osmo-hlr { set port 4258 } ; # Same but with full names of osmo-daemons:
|
|
osmo-bsc { set port 4242 }
|
|
osmo-mgw { set port 4243 }
|
|
osmo-mgw-for-bsc { set port 4243 }
|
|
osmo-mgw-for-msc {
|
|
set host 127.0.0.2
|
|
set port 4243
|
|
}
|
|
osmo-sgsn { set port 4245 }
|
|
osmo-msc { set port 4254 }
|
|
osmo-sip-connector { set port 4256 }
|
|
osmo-ggsn { set port 4260 }
|
|
osmo-hnbgw { set port 4262 }
|
|
default { set port 4242 } ; # Default to osmo-bsc / osmo-nitb
|
|
}
|
|
|
|
if { $port == 0 } {
|
|
send "Which vty?\n"
|
|
exit
|
|
}
|
|
|
|
spawn -noecho telnet $host $port
|
|
expect ">"
|
|
send "enable\r"
|
|
expect "#"
|
|
send "logging enable\r"
|
|
expect "#"
|
|
send "logging print category 1\r"
|
|
expect "#"
|
|
send "logging print category-hex 0\r"
|
|
expect "#"
|
|
send "logging print level 1\r"
|
|
expect "#"
|
|
send "logging print file basename last\r"
|
|
expect "#"
|
|
send "logging print extended-timestamp 1\r"
|
|
expect "#"
|
|
send "logging level set-all $all\r"
|
|
expect "#"
|
|
|
|
# Customise logging configuration per daemon here:
|
|
|
|
if { $quiet==1 } {
|
|
|
|
# These levels are very noisy at debug:
|
|
send "logging level lctrl info\r"
|
|
expect "#"
|
|
send "logging level lmi info\r"
|
|
expect "#"
|
|
send "logging level linp info\r"
|
|
expect "#"
|
|
send "logging level lgsup notice\r"
|
|
expect "#"
|
|
send "logging level lsccp info\r"
|
|
expect "#"
|
|
send "logging level lss7 info\r"
|
|
expect "#"
|
|
send "logging level lm3ua info\r"
|
|
expect "#"
|
|
send "logging level lsua info\r"
|
|
expect "#"
|
|
|
|
switch $vty {
|
|
msc {
|
|
send "logging level smpp info\r"
|
|
expect "#"
|
|
}
|
|
}
|
|
}
|
|
|
|
switch $vty {
|
|
hlr {
|
|
send "logging level mslookup info\r"
|
|
expect "#"
|
|
}
|
|
msc {
|
|
send "logging level mncc debug\r"
|
|
expect "#"
|
|
send "logging level lsms notice\r"
|
|
expect "#"
|
|
send "logging level mm info\r"
|
|
expect "#"
|
|
send "logging level lglobal debug\r"
|
|
expect "#"
|
|
}
|
|
mgw {
|
|
send "logging level lmib error\r"
|
|
expect "#"
|
|
send "logging level lglobal notice\r"
|
|
expect "#"
|
|
send "logging level rtp error\r"
|
|
expect "#"
|
|
send "logging level e1 error\r"
|
|
expect "#"
|
|
}
|
|
sg {
|
|
send "logging level mm error\r"
|
|
expect "#"
|
|
send "logging level lglobal error\r"
|
|
expect "#"
|
|
send "logging level gprs info\r"
|
|
expect "#"
|
|
}
|
|
}
|
|
|
|
send "logging filter all $lf\r"
|
|
# If we want to be quiet, some programs don't apply the filter
|
|
# So exec these command last, (for easy callback)
|
|
if { $lf==0 && ($vty=="hlr" || $vty=="mgw")} {
|
|
send "logging level set-all $all\r"
|
|
expect "#"
|
|
send "logging level set-all fatal\r"
|
|
expect "#"
|
|
}
|
|
expect "#"
|
|
interact
|