Introduction
Introduction Statistics Contact Development Disclaimer Help
Permissions - warvox - VoIP based wardialing tool, forked from rapid7/warvox.
Log
Files
Refs
README
---
commit 6da2bec72d9c7e6c7e8114fc4dfba5ac5e30598e
parent 7bcac597dbf94b510242581bb21f8d9ddae4a514
Author: HD Moore <[email protected]>
Date: Mon, 31 Dec 2012 19:10:24 -0600
Permissions
Diffstat:
M bin/export_list.rb | 45 +++++++++++++++--------------…
M bin/import_audio.rb | 4 ++--
M bin/warvox.rb | 26 +++++++++++++++++++++++---
3 files changed, 47 insertions(+), 28 deletions(-)
---
diff --git a/bin/export_list.rb b/bin/export_list.rb
@@ -14,10 +14,7 @@ require 'warvox'
require 'csv'
ENV['RAILS_ENV'] ||= 'production'
-
$:.unshift(File.join(File.expand_path(File.dirname(base)), '..'))
-require 'config/boot'
-require 'config/environment'
def usage
$stderr.puts "Usage: #{$0} [Job ID] <Type>"
@@ -28,36 +25,38 @@ end
# Script
#
-job = ARGV.shift
-typ = ARGV.shift
+project_id = ARGV.shift
+line_type = ARGV.shift
-if(job and job == "-h")
+if(project_id and project_id == "-h")
usage()
end
-if(not job)
- $stderr.puts "Listing all available jobs"
- $stderr.puts "=========================="
- DialJob.find(:all).each do |j|
- puts "#{j.id}\t#{j.started_at} --> #{j.completed_at}"
+require 'config/boot'
+require 'config/environment'
+
+if(not project_id)
+ $stderr.puts "Listing all projects"
+ $stderr.puts "===================="
+ Project.find(:all).each do |j|
+ puts "#{j.id}\t#{j.name}\t#{j.created_at}"
end
exit
end
-fields = %W{ number line_type cid completed busy seconds ringtime peak_freq no…
+fields = %W{ number line_type caller_id answered busy audio_length ring_length…
begin
$stdout.puts fields.to_csv
- DialResult.where(:dial_job_id => job.to_i).find(:order => :number) do …
- next if not r.number
- if(not typ or typ.downcase == (r.line_type||"").downcase)
- out = []
- fields.each do |f|
- out << r[f].to_s
- end
- $stdout.puts out.to_csv
+ cond = { :project_id => project_id.to_i }
+ if line_type
+ cond[:line_type] = line_type.downcase
+ end
+
+ Call.where(cond).find(:order => :number) do |r|
+ out = []
+ fields.each do |f|
+ out << r[f].to_s
end
+ $stdout.puts out.to_csv
end
-rescue ActiveRecord::RecordNotFound
- $stderr.puts "Job not found"
- exit
end
diff --git a/bin/import_audio.rb b/bin/import_audio.rb
@@ -49,7 +49,7 @@ project = nil
provider = nil
if project_id
- project = Project.find(pid)
+ project = Project.where(:id => project_id).first
unless project
$stderr.puts "Error: Specified Project ID not found"
exit(1)
@@ -57,7 +57,7 @@ if project_id
end
if provider_id
- provider = Provider.find(pid)
+ provider = Provider.where(:id => provider_id).first
unless provider
$stderr.puts "Error: Specified Provider ID not found"
exit(1)
diff --git a/bin/warvox.rb b/bin/warvox.rb
@@ -2,7 +2,7 @@
###################
require 'getoptlong'
-
+require 'open3'
#
# Load the library path
@@ -12,11 +12,18 @@ while File.symlink?(base)
base = File.expand_path(File.readlink(base), File.dirname(base))
end
-voxroot = File.join(File.dirname(base), '..')
-voxserv = File.join(File.expand_path(voxroot), 'script', 'rails')
+voxroot = File.expand_path(File.join(File.dirname(base), '..'))
+voxserv = File.expand_path(File.join(File.expand_path(voxroot), 'script', 'rai…
+manager = File.expand_path(File.join(File.dirname(base), 'worker_manager.rb'))
Dir.chdir(voxroot)
+def stop
+ $stderr.puts "[-] Interrupt received, shutting down workers and web se…
+ Process.kill("TERM", @manager_pid) if @manager_pid
+ exit(0)
+end
+
def usage
$stderr.puts "#{$0} [--address IP] [--port PORT] --background"
exit(0)
@@ -60,12 +67,25 @@ if opts['Background']
args.push("-d")
end
+
+trap("SIGINT") { stop() }
+
$browser_url = "http://#{opts['ServerHost']}:#{opts['ServerPort']}/"
$stderr.puts ""
$stderr.puts "[*] Starting WarVOX on #{$browser_url}"
$stderr.puts ""
+
+@manager_pid = Process.fork()
+if not @manager_pid
+ while (ARGV.shift) { }
+ load(manager)
+ exit(0)
+end
+
+@webserver_pid = $$
+
while(ARGV.length > 0); ARGV.shift; end
args.each {|arg| ARGV.push(arg) }
You are viewing proxied material from jay.scot. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.