echi-converter 0.3.8 → 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
- data/History.txt +13 -2
- data/bin/echi-converter +10 -9
- data/db/migrate/001_create_echi_records.rb +13 -1
- data/db/migrate/003_create_echi_agents.rb +13 -1
- data/db/migrate/006_create_echi_reasons.rb +13 -1
- data/db/migrate/007_create_echi_cwcs.rb +13 -1
- data/db/migrate/008_create_echi_vdns.rb +13 -1
- data/db/migrate/009_create_echi_acds.rb +13 -1
- data/db/migrate/010_create_echi_splits.rb +13 -1
- data/db/migrate/011_create_echi_trunks.rb +13 -1
- data/db/migrate/012_create_echi_vectors.rb +13 -1
- data/lib/echi-converter.rb +28 -27
- data/lib/echi-converter/version.rb +2 -2
- data/lib/main_win32.rb +3 -3
- data/website/index.html +18 -25
- data/website/index.txt +16 -18
- metadata +2 -2
data/History.txt
CHANGED
@@ -182,7 +182,7 @@
|
|
182
182
|
* Bug fix(es):
|
183
183
|
* Will now archive 0 length files and not stop the Windows Service - Bug#18888
|
184
184
|
|
185
|
-
== 0.3.8 2008-07-
|
185
|
+
== 0.3.8 2008-07-21
|
186
186
|
|
187
187
|
* Major enhancement(s):
|
188
188
|
* Minor enhancement(s):
|
@@ -200,4 +200,15 @@
|
|
200
200
|
* #19490 with inverted fileversion and filenumber
|
201
201
|
* #19493 issue with the extra byte read on binary files
|
202
202
|
* Known issue(s):
|
203
|
-
* #21295 - Migrations for Oracle and automated table generation not working
|
203
|
+
* #21295 - Migrations for Oracle and automated table generation not working
|
204
|
+
|
205
|
+
== 0.4.0 2008-07-22
|
206
|
+
|
207
|
+
* Major enhancement(s):
|
208
|
+
* #15294 Windows Service installs as an Auto-Start service
|
209
|
+
* Updated and tested with the latest releases of each of the available gems that ECHI-Converter relies upon
|
210
|
+
* Minor enhancement(s):
|
211
|
+
* Bug fix(es):
|
212
|
+
* #21295 - Migrations for Oracle and automated table generation not working
|
213
|
+
* Fixed a minor bug that files that dat files that did not exist were attempted to be processed creating a non-fatal error
|
214
|
+
* Known issue(s):
|
data/bin/echi-converter
CHANGED
@@ -17,6 +17,8 @@ usage = "Usage:
|
|
17
17
|
#If we are running on Windows lets load the libraries necessary to run a win32 service
|
18
18
|
if RUBY_PLATFORM["-mswin32"]
|
19
19
|
require 'win32/service'
|
20
|
+
#Preparing for supporting the latest library for supporting a Windows Service
|
21
|
+
#require 'win32/daemon'
|
20
22
|
include Win32
|
21
23
|
usage = usage +
|
22
24
|
"
|
@@ -116,15 +118,14 @@ def launch_service run_type, project_name
|
|
116
118
|
begin
|
117
119
|
case run_type
|
118
120
|
when "install"
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
s.close
|
121
|
+
Service.create('ECHI-Converter', nil,
|
122
|
+
:service_type => Service::WIN32_OWN_PROCESS,
|
123
|
+
:binary_path_name => service_exe.gsub(" ","\s"),
|
124
|
+
:start_type => Service::AUTO_START,
|
125
|
+
:error_control => Service::ERROR_NORMAL,
|
126
|
+
:display_name => 'ECHI-Converter',
|
127
|
+
:description => 'ECHI-Converter Service for ' + project_name
|
128
|
+
)
|
128
129
|
service_status = "Service successfully created."
|
129
130
|
when "start"
|
130
131
|
service_status = Service.start("ECHI-Converter")
|
@@ -5,7 +5,19 @@ class CreateEchiRecords < ActiveRecord::Migration
|
|
5
5
|
@@echi_schema["echi_records"].each do | field |
|
6
6
|
case field["type"]
|
7
7
|
when 'int'
|
8
|
-
|
8
|
+
if ActiveRecord::Base.connection.adapter_name == 'Oracle'
|
9
|
+
case field["length"]
|
10
|
+
when 4
|
11
|
+
oracle_precision = 10
|
12
|
+
when 2
|
13
|
+
oracle_precision = 5
|
14
|
+
when 1
|
15
|
+
oracle_precision = 3
|
16
|
+
end
|
17
|
+
t.column field["name"], :integer, :limit => oracle_precision, :precision => oracle_precision, :scale => 0
|
18
|
+
else
|
19
|
+
t.column field["name"], :integer, :limit => field["length"], :precision => field["length"], :scale => 0
|
20
|
+
end
|
9
21
|
when 'str'
|
10
22
|
t.column field["name"], :string, :limit => field["length"]
|
11
23
|
when 'datetime'
|
@@ -5,7 +5,19 @@ class CreateEchiAgents < ActiveRecord::Migration
|
|
5
5
|
@@echi_schema["echi_agents"].each do | field |
|
6
6
|
case field["type"]
|
7
7
|
when 'int'
|
8
|
-
|
8
|
+
if ActiveRecord::Base.connection.adapter_name == 'Oracle'
|
9
|
+
case field["length"]
|
10
|
+
when 4
|
11
|
+
oracle_precision = 10
|
12
|
+
when 2
|
13
|
+
oracle_precision = 5
|
14
|
+
when 1
|
15
|
+
oracle_precision = 3
|
16
|
+
end
|
17
|
+
t.column field["name"], :integer, :limit => oracle_precision, :precision => oracle_precision, :scale => 0
|
18
|
+
else
|
19
|
+
t.column field["name"], :integer, :limit => field["length"], :precision => field["length"], :scale => 0
|
20
|
+
end
|
9
21
|
when 'str'
|
10
22
|
t.column field["name"], :string, :limit => field["length"]
|
11
23
|
when 'datetime'
|
@@ -5,7 +5,19 @@ class CreateEchiReasons < ActiveRecord::Migration
|
|
5
5
|
@@echi_schema["echi_reasons"].each do | field |
|
6
6
|
case field["type"]
|
7
7
|
when 'int'
|
8
|
-
|
8
|
+
if ActiveRecord::Base.connection.adapter_name == 'Oracle'
|
9
|
+
case field["length"]
|
10
|
+
when 4
|
11
|
+
oracle_precision = 10
|
12
|
+
when 2
|
13
|
+
oracle_precision = 5
|
14
|
+
when 1
|
15
|
+
oracle_precision = 3
|
16
|
+
end
|
17
|
+
t.column field["name"], :integer, :limit => oracle_precision, :precision => oracle_precision, :scale => 0
|
18
|
+
else
|
19
|
+
t.column field["name"], :integer, :limit => field["length"], :precision => field["length"], :scale => 0
|
20
|
+
end
|
9
21
|
when 'str'
|
10
22
|
t.column field["name"], :string, :limit => field["length"]
|
11
23
|
when 'datetime'
|
@@ -5,7 +5,19 @@ class CreateEchiCwcs < ActiveRecord::Migration
|
|
5
5
|
@@echi_schema["echi_cwcs"].each do | field |
|
6
6
|
case field["type"]
|
7
7
|
when 'int'
|
8
|
-
|
8
|
+
if ActiveRecord::Base.connection.adapter_name == 'Oracle'
|
9
|
+
case field["length"]
|
10
|
+
when 4
|
11
|
+
oracle_precision = 10
|
12
|
+
when 2
|
13
|
+
oracle_precision = 5
|
14
|
+
when 1
|
15
|
+
oracle_precision = 3
|
16
|
+
end
|
17
|
+
t.column field["name"], :integer, :limit => oracle_precision, :precision => oracle_precision, :scale => 0
|
18
|
+
else
|
19
|
+
t.column field["name"], :integer, :limit => field["length"], :precision => field["length"], :scale => 0
|
20
|
+
end
|
9
21
|
when 'str'
|
10
22
|
t.column field["name"], :string, :limit => field["length"]
|
11
23
|
when 'datetime'
|
@@ -5,7 +5,19 @@ class CreateEchiVdns < ActiveRecord::Migration
|
|
5
5
|
@@echi_schema["echi_vdns"].each do | field |
|
6
6
|
case field["type"]
|
7
7
|
when 'int'
|
8
|
-
|
8
|
+
if ActiveRecord::Base.connection.adapter_name == 'Oracle'
|
9
|
+
case field["length"]
|
10
|
+
when 4
|
11
|
+
oracle_precision = 10
|
12
|
+
when 2
|
13
|
+
oracle_precision = 5
|
14
|
+
when 1
|
15
|
+
oracle_precision = 3
|
16
|
+
end
|
17
|
+
t.column field["name"], :integer, :limit => oracle_precision, :precision => oracle_precision, :scale => 0
|
18
|
+
else
|
19
|
+
t.column field["name"], :integer, :limit => field["length"], :precision => field["length"], :scale => 0
|
20
|
+
end
|
9
21
|
when 'str'
|
10
22
|
t.column field["name"], :string, :limit => field["length"]
|
11
23
|
when 'datetime'
|
@@ -5,7 +5,19 @@ class CreateEchiAcds < ActiveRecord::Migration
|
|
5
5
|
@@echi_schema["echi_acds"].each do | field |
|
6
6
|
case field["type"]
|
7
7
|
when 'int'
|
8
|
-
|
8
|
+
if ActiveRecord::Base.connection.adapter_name == 'Oracle'
|
9
|
+
case field["length"]
|
10
|
+
when 4
|
11
|
+
oracle_precision = 10
|
12
|
+
when 2
|
13
|
+
oracle_precision = 5
|
14
|
+
when 1
|
15
|
+
oracle_precision = 3
|
16
|
+
end
|
17
|
+
t.column field["name"], :integer, :limit => oracle_precision, :precision => oracle_precision, :scale => 0
|
18
|
+
else
|
19
|
+
t.column field["name"], :integer, :limit => field["length"], :precision => field["length"], :scale => 0
|
20
|
+
end
|
9
21
|
when 'str'
|
10
22
|
t.column field["name"], :string, :limit => field["length"]
|
11
23
|
when 'datetime'
|
@@ -5,7 +5,19 @@ class CreateEchiSplits < ActiveRecord::Migration
|
|
5
5
|
@@echi_schema["echi_splits"].each do | field |
|
6
6
|
case field["type"]
|
7
7
|
when 'int'
|
8
|
-
|
8
|
+
if ActiveRecord::Base.connection.adapter_name == 'Oracle'
|
9
|
+
case field["length"]
|
10
|
+
when 4
|
11
|
+
oracle_precision = 10
|
12
|
+
when 2
|
13
|
+
oracle_precision = 5
|
14
|
+
when 1
|
15
|
+
oracle_precision = 3
|
16
|
+
end
|
17
|
+
t.column field["name"], :integer, :limit => oracle_precision, :precision => oracle_precision, :scale => 0
|
18
|
+
else
|
19
|
+
t.column field["name"], :integer, :limit => field["length"], :precision => field["length"], :scale => 0
|
20
|
+
end
|
9
21
|
when 'str'
|
10
22
|
t.column field["name"], :string, :limit => field["length"]
|
11
23
|
when 'datetime'
|
@@ -5,7 +5,19 @@ class CreateEchiTrunks < ActiveRecord::Migration
|
|
5
5
|
@@echi_schema["echi_trunks"].each do | field |
|
6
6
|
case field["type"]
|
7
7
|
when 'int'
|
8
|
-
|
8
|
+
if ActiveRecord::Base.connection.adapter_name == 'Oracle'
|
9
|
+
case field["length"]
|
10
|
+
when 4
|
11
|
+
oracle_precision = 10
|
12
|
+
when 2
|
13
|
+
oracle_precision = 5
|
14
|
+
when 1
|
15
|
+
oracle_precision = 3
|
16
|
+
end
|
17
|
+
t.column field["name"], :integer, :limit => oracle_precision, :precision => oracle_precision, :scale => 0
|
18
|
+
else
|
19
|
+
t.column field["name"], :integer, :limit => field["length"], :precision => field["length"], :scale => 0
|
20
|
+
end
|
9
21
|
when 'str'
|
10
22
|
t.column field["name"], :string, :limit => field["length"]
|
11
23
|
when 'datetime'
|
@@ -5,7 +5,19 @@ class CreateEchiVectors < ActiveRecord::Migration
|
|
5
5
|
@@echi_schema["echi_vectors"].each do | field |
|
6
6
|
case field["type"]
|
7
7
|
when 'int'
|
8
|
-
|
8
|
+
if ActiveRecord::Base.connection.adapter_name == 'Oracle'
|
9
|
+
case field["length"]
|
10
|
+
when 4
|
11
|
+
oracle_precision = 10
|
12
|
+
when 2
|
13
|
+
oracle_precision = 5
|
14
|
+
when 1
|
15
|
+
oracle_precision = 3
|
16
|
+
end
|
17
|
+
t.column field["name"], :integer, :limit => oracle_precision, :precision => oracle_precision, :scale => 0
|
18
|
+
else
|
19
|
+
t.column field["name"], :integer, :limit => field["length"], :precision => field["length"], :scale => 0
|
20
|
+
end
|
9
21
|
when 'str'
|
10
22
|
t.column field["name"], :string, :limit => field["length"]
|
11
23
|
when 'datetime'
|
data/lib/echi-converter.rb
CHANGED
@@ -382,35 +382,36 @@ module EchiConverter
|
|
382
382
|
#Move the file to the archive location
|
383
383
|
def archive_file file, record_cnt
|
384
384
|
@log.debug "archive_file method"
|
385
|
-
|
386
|
-
|
387
|
-
|
388
|
-
|
389
|
-
|
390
|
-
|
391
|
-
|
392
|
-
|
393
|
-
|
394
|
-
|
395
|
-
|
396
|
-
|
397
|
-
|
398
|
-
|
399
|
-
|
400
|
-
|
401
|
-
|
402
|
-
|
403
|
-
|
404
|
-
|
405
|
-
|
406
|
-
|
407
|
-
|
408
|
-
|
385
|
+
if File.exists?(file["filename"])
|
386
|
+
case file["name"]
|
387
|
+
when "echi_acds"
|
388
|
+
filename_elements = $config["echi_acd_dat"].split(".")
|
389
|
+
when "echi_agents"
|
390
|
+
filename_elements = $config["echi_agent_dat"].split(".")
|
391
|
+
when "echi_reasons"
|
392
|
+
filename_elements = $config["echi_aux_rsn_dat"].split(".")
|
393
|
+
when "echi_cwcs"
|
394
|
+
filename_elements = $config["echi_cwc_dat"].split(".")
|
395
|
+
when "echi_splits"
|
396
|
+
filename_elements = $config["echi_split_dat"].split(".")
|
397
|
+
when "echi_vdns"
|
398
|
+
filename_elements = $config["echi_vdn_dat"].split(".")
|
399
|
+
when "echi_trunks"
|
400
|
+
filename_elements = $config["echi_trunk_group_dat"].split(".")
|
401
|
+
when "echi_vectors"
|
402
|
+
filename_elements = $config["echi_vector_dat"].split(".")
|
403
|
+
end
|
404
|
+
new_filename = filename_elements[0] + "_" + UUID.timestamp_create.to_s + "." + filename_elements[1]
|
405
|
+
target_file = @processeddirectory + "/" + new_filename
|
406
|
+
begin
|
407
|
+
FileUtils.mv(file["filename"], target_file)
|
408
|
+
if $config["echi_process_log"] == "Y"
|
409
|
+
log_processed_file nil, { "name" => new_filename, "cnt" => record_cnt }
|
410
|
+
end
|
411
|
+
rescue => err
|
412
|
+
@log.info "Unable to move processed file - " + err
|
409
413
|
end
|
410
|
-
rescue => err
|
411
|
-
@log.info "Unable to move processed file - " + err
|
412
414
|
end
|
413
|
-
|
414
415
|
end
|
415
416
|
|
416
417
|
#Process the appropriate table name
|
data/lib/main_win32.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
require 'rubygems'
|
2
2
|
require 'yaml'
|
3
|
-
require 'win32/
|
3
|
+
require 'win32/daemon'
|
4
4
|
include Win32
|
5
5
|
|
6
6
|
class EchiDaemon < Daemon
|
@@ -12,6 +12,7 @@ class EchiDaemon < Daemon
|
|
12
12
|
def service_stop
|
13
13
|
@log.info "ECHI-Converter service stopped"
|
14
14
|
@log.close
|
15
|
+
exit!
|
15
16
|
end
|
16
17
|
|
17
18
|
def service_pause
|
@@ -99,5 +100,4 @@ class EchiDaemon < Daemon
|
|
99
100
|
end
|
100
101
|
end
|
101
102
|
|
102
|
-
|
103
|
-
d.mainloop
|
103
|
+
EchiDaemon.mainloop
|
data/website/index.html
CHANGED
@@ -33,7 +33,7 @@
|
|
33
33
|
<h1>ECHI Converter</h1>
|
34
34
|
<div id="version" class="clickable" onclick='document.location = "http://rubyforge.org/projects/echi-converter"; return false'>
|
35
35
|
<p>Get Version</p>
|
36
|
-
<a href="http://rubyforge.org/projects/echi-converter" class="numbers">0.
|
36
|
+
<a href="http://rubyforge.org/projects/echi-converter" class="numbers">0.4.0</a>
|
37
37
|
</div>
|
38
38
|
<h1>→ ‘echi-converter’</h1>
|
39
39
|
|
@@ -58,13 +58,14 @@
|
|
58
58
|
|
59
59
|
<ol>
|
60
60
|
<li>Support of ActiveRecord (means you may use Oracle, MySQL, MS-SQL, Postgres, <span class="caps">DB2</span>, ODBC, etc)</li>
|
61
|
-
<li>Generate your schema via ActiveRecord Migrations</li>
|
61
|
+
<li>Generate your schema via ActiveRecord Migrations automatically</li>
|
62
62
|
<li>Fetch Binary or <span class="caps">ASCII CSV</span> files from the Avaya <span class="caps">CMS</span> platform via <span class="caps">FTP</span></li>
|
63
63
|
<li>Insert the records into the defined database table using database transactions, via ActiveRecord, on a per file basis to support recovery on failure</li>
|
64
64
|
<li>Change schema structure via <span class="caps">YML</span> configuration file to accommodate various releases of the <span class="caps">ECHI</span> format</li>
|
65
|
-
<li>Supports inserting data from the various ’.dat’ files provided by the Avaya <span class="caps">CMS</span
|
65
|
+
<li>Supports inserting data from the various ’.dat’ files provided by the Avaya <span class="caps">CMS</span> into associated tables</li>
|
66
66
|
<li>Runs as a daemon (via fork) on Posix and a service on Windows</li>
|
67
67
|
<li>Has a watchdog process on Posix or you may set a service watch on Windows</li>
|
68
|
+
<li>Support for <span class="caps">UTF8</span> encoding</li>
|
68
69
|
<li>Allows for multiple <span class="caps">FTP</span> sessions to be used for greater performance (via <a href="http://en.wikipedia.org/wiki/Green_threads">green threads</a>)</li>
|
69
70
|
</ol>
|
70
71
|
|
@@ -100,20 +101,16 @@
|
|
100
101
|
|
101
102
|
<ol>
|
102
103
|
<li><a href="http://www.ruby-lang.org/">Ruby v1.8.6+</a></li>
|
103
|
-
<li><a href="http://www.rubygems.org/">Rubygems v1.
|
104
|
-
<li><a href="http://activerecord.rubyforge.org/">ActiveRecord
|
105
|
-
<li><a href="http://activesupport.rubyforge.org/">ActiveSupport
|
106
|
-
<li><a href="http://daemons.rubyforge.org/">Daemons v1.0.
|
107
|
-
<li><a href="http://fastercsv.rubyforge.org/">FasterCSV v1.2.
|
108
|
-
<li><a href="http://rake.rubyforge.org/">Rake v0.
|
109
|
-
<li><a href="http://sporkmonger.com/projects/uuidtools/">UUIDTools v1.0.
|
110
|
-
<li><a href="http://win32utils.rubyforge.org/">Win32-service v.0.
|
111
|
-
|
112
|
-
|
113
|
-
</ol>
|
114
|
-
</li>
|
115
|
-
<li><a href="http://rubyforge.org/projects/seattlerb/">Hoe v1.2.2+</a></li>
|
116
|
-
<li>Avaya <span class="caps">CMS ECHI</span> Release 12+ enabled and configured to send to an <span class="caps">FTP</span> server</li>
|
104
|
+
<li><a href="http://www.rubygems.org/">Rubygems v1.2+</a> </li>
|
105
|
+
<li><a href="http://activerecord.rubyforge.org/">ActiveRecord v2.1+</a></li>
|
106
|
+
<li><a href="http://activesupport.rubyforge.org/">ActiveSupport v2.1+</a></li>
|
107
|
+
<li><a href="http://daemons.rubyforge.org/">Daemons v1.0.10+</a> (for Linux only)</li>
|
108
|
+
<li><a href="http://fastercsv.rubyforge.org/">FasterCSV v1.2.3+</a></li>
|
109
|
+
<li><a href="http://rake.rubyforge.org/">Rake v0.8.1+</a></li>
|
110
|
+
<li><a href="http://sporkmonger.com/projects/uuidtools/">UUIDTools v1.0.3+</a></li>
|
111
|
+
<li><a href="http://win32utils.rubyforge.org/">Win32-service v.0.6.1+</a> (for Windows only)</li>
|
112
|
+
<li><a href="http://rubyforge.org/projects/seattlerb/">Hoe v1.7+</a></li>
|
113
|
+
<li><a href="http://www.avaya.com/gcm/master-usa/en-us/products/offers/call_management_system_r14.htm">Avaya <span class="caps">CMS</span></a> ECHI Release 12+ enabled and configured to send to an <span class="caps">FTP</span> server</li>
|
117
114
|
</ol>
|
118
115
|
|
119
116
|
|
@@ -186,7 +183,7 @@
|
|
186
183
|
</ol>
|
187
184
|
|
188
185
|
|
189
|
-
<p>For Windows:</p>
|
186
|
+
<p>For MS-Windows:</p>
|
190
187
|
|
191
188
|
|
192
189
|
<ol>
|
@@ -242,7 +239,7 @@
|
|
242
239
|
<li><span class="caps">POSIX</span></li>
|
243
240
|
<li>Windows <span class="caps">XP SP2</span></li>
|
244
241
|
<li>Windows 2000</li>
|
245
|
-
<li>Windows 2003
|
242
|
+
<li>Windows 2003</li>
|
246
243
|
</ol>
|
247
244
|
|
248
245
|
|
@@ -255,11 +252,7 @@
|
|
255
252
|
<li><span class="caps">DB2</span></li>
|
256
253
|
<li>Sqlite3</li>
|
257
254
|
<li>Postgres</li>
|
258
|
-
|
259
|
-
|
260
|
-
|
261
|
-
<ol>
|
262
|
-
<li>Oracle (Currently automated table generation with migrations not supported. One must create their own schema following the Avaya documentation, and then the <span class="caps">ECHI</span>-Converter will run thereafter. Future Oracle Migrations support is planned. A further description and work around example may be found <a href="http://rubyforge.org/tracker/index.php?func=detail&aid=21295&group_id=4110&atid=15802">here</a>.)</li>
|
255
|
+
<li>Oracle</li>
|
263
256
|
</ol>
|
264
257
|
|
265
258
|
|
@@ -331,7 +324,7 @@
|
|
331
324
|
<li>Adhearsion – is an open-source, unconventional voice framework that ties technologies together neatly, link <a href="http://www.adhearsion.com">here.</a></li>
|
332
325
|
</ol>
|
333
326
|
<p class="coda">
|
334
|
-
<a href="mailto:drnicwilliams@gmail.com">Dr Nic</a>,
|
327
|
+
<a href="mailto:drnicwilliams@gmail.com">Dr Nic</a>, 22nd July 2008<br>
|
335
328
|
Theme extended from <a href="http://rb2js.rubyforge.org/">Paul Battley</a>
|
336
329
|
</p>
|
337
330
|
</div>
|
data/website/index.txt
CHANGED
@@ -17,13 +17,14 @@ h2. Features
|
|
17
17
|
The utility provides the following capabilities:
|
18
18
|
|
19
19
|
# Support of ActiveRecord (means you may use Oracle, MySQL, MS-SQL, Postgres, DB2, ODBC, etc)
|
20
|
-
# Generate your schema via ActiveRecord Migrations
|
20
|
+
# Generate your schema via ActiveRecord Migrations automatically
|
21
21
|
# Fetch Binary or ASCII CSV files from the Avaya CMS platform via FTP
|
22
22
|
# Insert the records into the defined database table using database transactions, via ActiveRecord, on a per file basis to support recovery on failure
|
23
23
|
# Change schema structure via YML configuration file to accommodate various releases of the ECHI format
|
24
|
-
# Supports inserting data from the various '.dat' files provided by the Avaya CMS
|
24
|
+
# Supports inserting data from the various '.dat' files provided by the Avaya CMS into associated tables
|
25
25
|
# Runs as a daemon (via fork) on Posix and a service on Windows
|
26
26
|
# Has a watchdog process on Posix or you may set a service watch on Windows
|
27
|
+
# Support for UTF8 encoding
|
27
28
|
# Allows for multiple FTP sessions to be used for greater performance (via "green threads":http://en.wikipedia.org/wiki/Green_threads)
|
28
29
|
|
29
30
|
# Table names:
|
@@ -46,18 +47,16 @@ h2. What ECHI-Converter is not
|
|
46
47
|
h2. Requirements
|
47
48
|
|
48
49
|
# "Ruby v1.8.6+":http://www.ruby-lang.org/
|
49
|
-
# "Rubygems v1.
|
50
|
-
# "ActiveRecord
|
51
|
-
# "ActiveSupport
|
52
|
-
# "Daemons v1.0.
|
53
|
-
# "FasterCSV v1.2.
|
54
|
-
# "Rake v0.
|
55
|
-
# "UUIDTools v1.0.
|
56
|
-
# "Win32-service v.0.
|
57
|
-
|
58
|
-
# "
|
59
|
-
# Avaya CMS ECHI Release 12+ enabled and configured to send to an FTP server
|
60
|
-
|
50
|
+
# "Rubygems v1.2+":http://www.rubygems.org/
|
51
|
+
# "ActiveRecord v2.1+":http://activerecord.rubyforge.org/
|
52
|
+
# "ActiveSupport v2.1+":http://activesupport.rubyforge.org/
|
53
|
+
# "Daemons v1.0.10+":http://daemons.rubyforge.org/ (for Linux only)
|
54
|
+
# "FasterCSV v1.2.3+":http://fastercsv.rubyforge.org/
|
55
|
+
# "Rake v0.8.1+":http://rake.rubyforge.org/
|
56
|
+
# "UUIDTools v1.0.3+":http://sporkmonger.com/projects/uuidtools/
|
57
|
+
# "Win32-service v.0.6.1+":http://win32utils.rubyforge.org/ (for Windows only)
|
58
|
+
# "Hoe v1.7+":http://rubyforge.org/projects/seattlerb/
|
59
|
+
# "Avaya CMS":http://www.avaya.com/gcm/master-usa/en-us/products/offers/call_management_system_r14.htm ECHI Release 12+ enabled and configured to send to an FTP server
|
61
60
|
|
62
61
|
h2. Installing
|
63
62
|
|
@@ -102,7 +101,7 @@ For POSIX:
|
|
102
101
|
# echi-converter restart myproject - Restart the ECHI converter
|
103
102
|
# echi-converter zap myproject - If there has been an unexpected close and the system still thinks the converter is running, clean up the pid files
|
104
103
|
|
105
|
-
For Windows:
|
104
|
+
For MS-Windows:
|
106
105
|
|
107
106
|
# echi-converter install myproject - install the service (must specify complete path such as c:\path\to\my\project - if the directory name or path has any spaces, please enclose the "myproject" in double quotes )
|
108
107
|
# echi-converter start - start the service
|
@@ -138,7 +137,7 @@ h4. Operating Systems
|
|
138
137
|
# POSIX
|
139
138
|
# Windows XP SP2
|
140
139
|
# Windows 2000
|
141
|
-
# Windows 2003
|
140
|
+
# Windows 2003
|
142
141
|
|
143
142
|
h4. Databases
|
144
143
|
|
@@ -147,8 +146,7 @@ h4. Databases
|
|
147
146
|
# DB2
|
148
147
|
# Sqlite3
|
149
148
|
# Postgres
|
150
|
-
|
151
|
-
# Oracle (Currently automated table generation with migrations not supported. One must create their own schema following the Avaya documentation, and then the ECHI-Converter will run thereafter. Future Oracle Migrations support is planned. A further description and work around example may be found "here":http://rubyforge.org/tracker/index.php?func=detail&aid=21295&group_id=4110&atid=15802.)
|
149
|
+
# Oracle
|
152
150
|
|
153
151
|
h4. FTP Servers
|
154
152
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: echi-converter
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jason Goecke
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2008-07-
|
12
|
+
date: 2008-07-22 00:00:00 -07:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|