diff options
Diffstat (limited to '1.2-netsec/contrib/scripts/loadtest.tcl')
-rw-r--r-- | 1.2-netsec/contrib/scripts/loadtest.tcl | 148 |
1 files changed, 0 insertions, 148 deletions
diff --git a/1.2-netsec/contrib/scripts/loadtest.tcl b/1.2-netsec/contrib/scripts/loadtest.tcl deleted file mode 100644 index 9c50be338..000000000 --- a/1.2-netsec/contrib/scripts/loadtest.tcl +++ /dev/null @@ -1,148 +0,0 @@ -#!/usr/bin/tclsh -# -# Usage (as root): -# -# $ tclsh loadtest.tcl -# -# Copyleft 2005 by Chris Maj <cmaj_at_freedomcorpse_dot_com> -# -# Create a (huge) bunch of call files to dial via pbx_spool. -# Defaults are selected with 'Enter' and, if all defaults -# are selected, you'll dial Zap/1/s into default|s|1 -# - - -# where Asterisk's pbx/pbx_spool.c will be looking for work -set SPOOLDIR /var/spool/asterisk/outgoing -# pbx_spool is fairly aggresive, so make files here first -set TEMPDIR /tmp - -if { ![file writable $SPOOLDIR] } { - puts "Do you need to be root to write to $SPOOLDIR ?" - exit -} - -if { ![file readable $TEMPDIR] } { - puts "Do you need to be root to read from $TEMPDIR ?" - exit -} - -if { ![file writable $TEMPDIR] } { - puts "Do you need to be root to write to $TEMPDIR ?" - exit -} - -# gets some input from the user -proc get {var_ default_ prompt_} { - global $var_ - puts $prompt_ - if { $default_ != "" } { - puts -nonewline "(default: $default_) ? " - } else { - puts -nonewline "? " - } - flush stdout - gets stdin $var_ - if { [set $var_] == "" && $default_ != "" } { - set $var_ $default_ - } -} - -# puts the user requested channels into a neat, ordered list -proc splitchans {inch_} { - global changroup - set outch [list] - foreach range [split $inch_ {, }] { - set start [lindex [split $range -] 0] - set stop [lindex [split $range -] end] - if { [string is digit $start] && [string is digit $stop] } { - set ::changroup "channel" - for {set ch $start} {$ch <= $stop} {incr ch} { - if { [lsearch $outch $ch] == -1 } { - lappend outch $ch - } - } - } else { - set ::changroup "group" - foreach ch [split $range -] { - lappend outch $ch - } - } - } - return [lsort -dictionary $outch] -} - -# writes out a file in the temporary directory, -# then changes the mtime of the file before -# sticking it into the outgoing spool directory -# (where pbx_spool will be looking) -proc spool {channel_ callcnt_ when_} { - set callstr " -Channel: $::technology/$channel_/$::destination -Context: $::context -Extension: $::extension -Priority: $::priority -WaitTime: $::timeout -RetryTime: $::retrytime -MaxRetries: $::maxretries -Callerid: $::clid -SetVar: $::astvar -Account: $::account -" - set fn "loadtest.call$callcnt_.ch$channel_" - set fd [open $::TEMPDIR/$fn w] - puts $fd $callstr - close $fd - file mtime $::TEMPDIR/$fn $when_ - file rename -force $::TEMPDIR/$fn $::SPOOLDIR/$fn -} - -# prompt the user for some info -get technology "Zap" "\nEnter technology type -Zap, IAX, SIP, etc." -get chans "1" "\nEnter channel(s) or group to test in formats like -2\n1-4\n3 5 7 9\n1-23,25-47,49-71,73-95\ng4\ng2,g1" -set channels [splitchans $chans] - -get destination "s" "\nEnter destination number" -get context "default" "\nEnter context" -get extension "s" "\nEnter extension" -get priority "1" "\nEnter priority" -get timeout "45" "\nEnter timeout for call to be answered in seconds" -get maxretries "0" "\nEnter maximum number of retries" - -if { $maxretries > 0 } { - get retrytime "300" "\nEnter time between retries in seconds" -} else { - set retrytime 300 -} - -get clid "" "\nEnter callerid" -get astvar "" "\nEnter some extra variables" -get account "loadtest" "\nEnter account code" -get calls "1" "\nEnter number of test calls per $changroup" -get period "60" "\nEnter period between placing calls on a particular $changroup in seconds" - -if { [llength $channels] > 1 } { - get rate "0" "\nEnter period between placing each call in seconds -0 will send a call on each $changroup every $period seconds -1 will send a call on $changroup [lindex $channels 0] at [expr {$period + 0}]s, [lindex $channels 1] at [expr {$period + 1 }]s, etc. -5 will send a call on $changroup [lindex $channels 0] at [expr {$period + 0}]s, [lindex $channels 1] at [expr {$period + 5 }]s, etc." -} else { - set rate 0 -} - -puts -nonewline "\nCreating spooled call files... " -set now [clock seconds] -set spoolcnt 0 -set spinner [list / - \\ |] -for {set i 0} {$i < $calls} {incr i} { - foreach ch $channels { - set chidx [lsearch $channels $ch] - spool $ch [incr spoolcnt] [expr {$now + ($i * $period) + ($rate * $chidx)}] - puts -nonewline "\b" - puts -nonewline [lindex $spinner [expr {$spoolcnt % 4}]] - flush stdout - } -} -puts "\b$spoolcnt calls placed into $SPOOLDIR !" |