Add an importer - warvox - VoIP based wardialing tool, forked from rapid7/warvox.
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) README
---
(DIR) commit 917c87718c063533f4e01756585d8080ed2a4a5c
(DIR) parent 4b18dfc7da016c99850de43091f18b8d7751c254
(HTM) Author: HD Moore <hd_moore@rapid7.com>
Date: Fri, 28 Dec 2012 14:23:55 -0600
Add an importer
Diffstat:
A bin/import_audio.rb | 94 +++++++++++++++++++++++++++++++
1 file changed, 94 insertions(+), 0 deletions(-)
---
(DIR) diff --git a/bin/import_audio.rb b/bin/import_audio.rb
@@ -0,0 +1,94 @@
+#!/usr/bin/env ruby
+###################
+
+#
+# Load the library path
+#
+base = __FILE__
+while File.symlink?(base)
+ base = File.expand_path(File.readlink(base), File.dirname(base))
+end
+$:.unshift(File.join(File.expand_path(File.dirname(base)), '..', 'lib'))
+
+require 'warvox'
+require 'fileutils'
+
+
+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} [Input Dir] <Job ID>"
+ exit(1)
+end
+
+#
+# Script
+#
+
+dir = ARGV.shift
+jid = ARGV.shift
+
+if (dir and dir =="-h") or (! dir)
+ usage()
+end
+
+provider = Provider.first
+unless provider
+ provider = Provider.create(
+ :name => 'Import Provider',
+ :host => 'localhost',
+ :port => 4369,
+ :user => "null",
+ :pass => "null",
+ :lines => 1,
+ :enabled => false
+ )
+end
+
+job = nil
+if jid
+ job = DialJob.find(jid.to_i)
+ unless job
+ $stderr.puts "Error: Specified Job ID not found"
+ exit(1)
+ end
+else
+ job = DialJob.new
+ job.range = "IMPORTED"
+ job.seconds = 60
+ job.lines = 1
+ job.cid_mask = "XXXXX"
+ job.status = "completed"
+ job.progress = 100
+ job.started_at = Time.now
+ job.completed_at = Time.now
+ job.processed = false
+ job.save
+end
+
+Dir["#{dir}/**/*.raw"].each do |rfile|
+ num, ext = File.basename(rfile).split(".", 2)
+ dr = DialResult.new
+ dr.dial_job_id = job[:id]
+ dr.number = num
+ dr.provider_id = provider[:id]
+ dr.completed = true
+ dr.busy = false
+ dr.seconds = File.size(rfile) / 16000.0
+ dr.ringtime = 0
+ dr.processed = false
+ dr.cid = num
+ dr.save
+
+ mr = dr.media
+ ::File.open(rfile, "rb") do |fd|
+ mr.audio = fd.read(fd.stat.size)
+ mr.save
+ end
+
+ $stdout.puts "[*] Imported #{num}"
+end