echi-converter 0.3.8 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|