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.
@@ -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-18
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):
@@ -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
- s = Service.new()
120
- s.create_service { |s|
121
- s.service_name = "ECHI-Converter"
122
- s.binary_path_name = service_exe.gsub(" ","\s")
123
- #s.service_type = Service::AUTO_START
124
- s.display_name = "ECHI-Converter"
125
- s.service_description = "ECHI-Converter Service for " + project_name
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
- t.column field["name"], :integer, :limit => field["length"], :precision => field["length"], :scale => 0
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
- t.column field["name"], :integer, :limit => field["length"], :precision => field["length"], :scale => 0
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
- t.column field["name"], :integer, :limit => field["length"], :precision => field["length"], :scale => 0
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
- t.column field["name"], :integer, :limit => field["length"], :precision => field["length"], :scale => 0
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
- t.column field["name"], :integer, :limit => field["length"], :precision => field["length"], :scale => 0
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
- t.column field["name"], :integer, :limit => field["length"], :precision => field["length"], :scale => 0
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
- t.column field["name"], :integer, :limit => field["length"], :precision => field["length"], :scale => 0
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
- t.column field["name"], :integer, :limit => field["length"], :precision => field["length"], :scale => 0
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
- t.column field["name"], :integer, :limit => field["length"], :precision => field["length"], :scale => 0
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'
@@ -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
- case file["name"]
386
- when "echi_acds"
387
- filename_elements = $config["echi_acd_dat"].split(".")
388
- when "echi_agents"
389
- filename_elements = $config["echi_agent_dat"].split(".")
390
- when "echi_reasons"
391
- filename_elements = $config["echi_aux_rsn_dat"].split(".")
392
- when "echi_cwcs"
393
- filename_elements = $config["echi_cwc_dat"].split(".")
394
- when "echi_splits"
395
- filename_elements = $config["echi_split_dat"].split(".")
396
- when "echi_vdns"
397
- filename_elements = $config["echi_vdn_dat"].split(".")
398
- when "echi_trunks"
399
- filename_elements = $config["echi_trunk_group_dat"].split(".")
400
- when "echi_vectors"
401
- filename_elements = $config["echi_vector_dat"].split(".")
402
- end
403
- new_filename = filename_elements[0] + "_" + UUID.timestamp_create.to_s + "." + filename_elements[1]
404
- target_file = @processeddirectory + "/" + new_filename
405
- begin
406
- FileUtils.mv(file["filename"], target_file)
407
- if $config["echi_process_log"] == "Y"
408
- log_processed_file nil, { "name" => new_filename, "cnt" => record_cnt }
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
@@ -1,8 +1,8 @@
1
1
  module EchiConverter #:nodoc:
2
2
  module VERSION #:nodoc:
3
3
  MAJOR = 0
4
- MINOR = 3
5
- TINY = 8
4
+ MINOR = 4
5
+ TINY = 0
6
6
 
7
7
  STRING = [MAJOR, MINOR, TINY].join('.')
8
8
  end
@@ -1,6 +1,6 @@
1
1
  require 'rubygems'
2
2
  require 'yaml'
3
- require 'win32/service'
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
- d = EchiDaemon.new
103
- d.mainloop
103
+ EchiDaemon.mainloop
@@ -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.3.8</a>
36
+ <a href="http://rubyforge.org/projects/echi-converter" class="numbers">0.4.0</a>
37
37
  </div>
38
38
  <h1>&#x2192; &#8216;echi-converter&#8217;</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 &#8217;.dat&#8217; files provided by the Avaya <span class="caps">CMS</span></li>
65
+ <li>Supports inserting data from the various &#8217;.dat&#8217; 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.0.1+</a> </li>
104
- <li><a href="http://activerecord.rubyforge.org/">ActiveRecord v1.15.3+</a></li>
105
- <li><a href="http://activesupport.rubyforge.org/">ActiveSupport v1.4.2+</a></li>
106
- <li><a href="http://daemons.rubyforge.org/">Daemons v1.0.7+</a></li>
107
- <li><a href="http://fastercsv.rubyforge.org/">FasterCSV v1.2.0+</a></li>
108
- <li><a href="http://rake.rubyforge.org/">Rake v0.7.3+</a></li>
109
- <li><a href="http://sporkmonger.com/projects/uuidtools/">UUIDTools v1.0.1+</a></li>
110
- <li><a href="http://win32utils.rubyforge.org/">Win32-service v.0.5.x &#8211; <strong><span class="caps">ONLY</span></strong> -</a> (Manual install for Windows only)
111
- <ol>
112
- <li>A release will come out to support v0.6.x in the future, as that version of Win32-service is not backward compatible</li>
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.</li>
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
- </ol>
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&#38;aid=21295&#38;group_id=4110&#38;atid=15802">here</a>.)</li>
255
+ <li>Oracle</li>
263
256
  </ol>
264
257
 
265
258
 
@@ -331,7 +324,7 @@
331
324
  <li>Adhearsion &#8211; 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>, 21st July 2008<br>
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>
@@ -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.0.1+":http://www.rubygems.org/
50
- # "ActiveRecord v1.15.3+":http://activerecord.rubyforge.org/
51
- # "ActiveSupport v1.4.2+":http://activesupport.rubyforge.org/
52
- # "Daemons v1.0.7+":http://daemons.rubyforge.org/
53
- # "FasterCSV v1.2.0+":http://fastercsv.rubyforge.org/
54
- # "Rake v0.7.3+":http://rake.rubyforge.org/
55
- # "UUIDTools v1.0.1+":http://sporkmonger.com/projects/uuidtools/
56
- # "Win32-service v.0.5.x - *ONLY* - ":http://win32utils.rubyforge.org/ (Manual install for Windows only)
57
- ## A release will come out to support v0.6.x in the future, as that version of Win32-service is not backward compatible
58
- # "Hoe v1.2.2+":http://rubyforge.org/projects/seattlerb/
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.3.8
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-21 00:00:00 -07:00
12
+ date: 2008-07-22 00:00:00 -07:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency