echi-converter 0.3.6 → 0.3.7

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 CHANGED
@@ -169,4 +169,15 @@
169
169
  * Minor enhancement(s):
170
170
  * Added a Signal.trap on interrupt to echi-converter executable for a more graceful shutdown
171
171
  * Bug fix(es):
172
- * The bit operators in the boolean fields are now processed properly for BINARY file types (found by user Chun Lim)
172
+ * The bit operators in the boolean fields are now processed properly for BINARY file types (found by user Chun Lim)
173
+
174
+ == 0.3.7 2008-03-25
175
+
176
+ * Major enhancement(s):
177
+ * Minor enhancement(s):
178
+ * Added support for the dat files: acd.dat, split.cat, tkgrp.dat and vector.dat
179
+ * Added support for turning email notifications on and off - FR#18889
180
+ * Changed the default logging in application.yml to 'NONE' from 'DEBUG'
181
+ * Added standard_version14.yml and extended_version14.yml
182
+ * Bug fix(es):
183
+ * Will now archive 0 length files and not stop the Windows Service - Bug#18888
data/Manifest.txt CHANGED
@@ -24,8 +24,10 @@ config/application.yml
24
24
  config/database.yml
25
25
  config/extended_version12.yml
26
26
  config/extended_version13.yml
27
+ config/extended_version14.yml
27
28
  config/standard_version12.yml
28
29
  config/standard_version13.yml
30
+ config/standard_version14.yml
29
31
  config/install_files.yml
30
32
  db/migrate/001_create_echi_records.rb
31
33
  db/migrate/002_create_echi_logs.rb
@@ -35,6 +37,10 @@ db/migrate/005_change_log_processedat_name.rb
35
37
  db/migrate/006_create_echi_aux_reasons.rb
36
38
  db/migrate/007_create_echi_cwcs.rb
37
39
  db/migrate/008_create_echi_vdns.rb
40
+ db/migrate/009_create_echi_acds.rb
41
+ db/migrate/010_create_echi_splits.rb
42
+ db/migrate/011_create_echi_trunk_groups.rb
43
+ db/migrate/012_create_echi_vectors.rb
38
44
  bin/echi-converter
39
45
  examples/extended_version12/chr0003
40
46
  examples/extended_version12/chr0003.txt
data/README.txt CHANGED
@@ -1,26 +1,48 @@
1
- README for echi_converter
2
- ==========================
3
- ECHI Converter - The Binary to ASCII converter for Avaya CMS External Call History files
1
+ = blah
4
2
 
5
- --- background ---
3
+ * http://echi-converter.rubyforge.org
6
4
 
7
- See more info on the Avaya ECHI format here (note, these overviews are version specific):
5
+ == DESCRIPTION:
8
6
 
9
- http://support.avaya.com/elmodocs2/cms/R12/ECHI.pdf
7
+ Please refer to http://echi-converter.rubyforge.org
10
8
 
11
- --- command ---
9
+ == FEATURES/PROBLEMS:
12
10
 
13
- Usage:
11
+ * TBD
14
12
 
15
- # echi-converter create myproject - create the local project to run the ECHI converter from
16
- # echi-converter upgrade myproject - location of project to upgrade after a new gem is installed
13
+ == SYNOPSIS:
17
14
 
18
- # echi-converter run myproject - Run the ECHI converter interactively from the location given
19
- # echi-converter start myproject - Start the ECHI converter in daemon mode from the location given
20
- # echi-converter stop myproject - Stop the ECHI converter daemon
21
- # echi-converter restart myproject - Restart the ECHI converter
22
- # echi-converter zap myrpoject - If there has been an unexpected close and the system still thinks the converter is running, clean up the pid files
15
+ Please refer to http://echi-converter.rubyforge.org
23
16
 
24
- --- overview ---
17
+ == REQUIREMENTS:
25
18
 
26
- More to come...
19
+ * TBD
20
+
21
+ == INSTALL:
22
+
23
+ * TBD
24
+
25
+ == LICENSE:
26
+
27
+ (LGPL)
28
+
29
+ Copyright (c) 2008 Jason Goecke
30
+
31
+ Permission is hereby granted, free of charge, to any person obtaining
32
+ a copy of this software and associated documentation files (the
33
+ 'Software'), to deal in the Software without restriction, including
34
+ without limitation the rights to use, copy, modify, merge, publish,
35
+ distribute, sublicense, and/or sell copies of the Software, and to
36
+ permit persons to whom the Software is furnished to do so, subject to
37
+ the following conditions:
38
+
39
+ The above copyright notice and this permission notice shall be
40
+ included in all copies or substantial portions of the Software.
41
+
42
+ THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
43
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
44
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
45
+ IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
46
+ CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
47
+ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
48
+ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -6,7 +6,7 @@ echi_port: 21
6
6
  echi_username: anonymous
7
7
  echi_password:
8
8
  echi_connect_type: ftp #only ftp supported now, possible for ssh/sftp in the future
9
- echi_ftp_directory: #/Users/ftp/anonymous #If blank/nil, the system will not do a CD at the start
9
+ echi_ftp_directory: /Users/ftp/anonymous #If blank/nil, the system will not do a CD at the start
10
10
  echi_ftp_retry: 10
11
11
  echi_ftp_delete: Y #to not delete the files off of the FTP server set to N, Y to delete the files
12
12
  echi_schema: extended_version13.yml
@@ -14,9 +14,13 @@ echi_format: BINARY #valid settings are ASCII or BINARY
14
14
  echi_process_log: Y #valid is Y/N to turn it on or off
15
15
  echi_process_dat_files: N #Insert additional tables with data from the '.dat' files, and update regularly (not available when 'pco_process' set to 'Y')
16
16
  #Filenames of the dat files
17
+ echi_acd_dat: acd.dat
17
18
  echi_agent_dat: agname.dat
18
19
  echi_aux_rsn_dat: aux_rsn.dat
19
20
  echi_cwc_dat: cwc.dat
21
+ echi_split_dat: split.dat
22
+ echi_trunk_group_dat: tkgrp.dat
23
+ echi_vector_dat: vector.dat
20
24
  echi_vdn_dat: vdn.dat
21
25
 
22
26
  #Currently only ftp supported, but may want to add SSH/SFTP later
@@ -26,7 +30,7 @@ echi_xfer_type: ftp
26
30
  fetch_interval: 60 #in seconds
27
31
  max_ftp_sessions: 2 #Number of simultaneous ftp connections to use
28
32
 
29
- #Whether or not to insert into a database, into a csv file or both
33
+ #Currently only database support, possible CSV in the future
30
34
  export_type: database
31
35
 
32
36
  #Options are:
@@ -36,7 +40,7 @@ export_type: database
36
40
  #INFO: generic (useful) information about system operation
37
41
  #DEBUG: low-level information for developers
38
42
  #NONE: turn off logging
39
- log_level: DEBUG
43
+ log_level: NONE
40
44
  #How many log files to create and the length before cycling through
41
45
  log_number: 10
42
46
  #The size of each individual log file
@@ -44,6 +48,7 @@ log_length: 10240000
44
48
 
45
49
  #Email address to send alerts to, specifically failures to connect to the DB or FTP servers
46
50
  #currently does not support an SMTP server that requires authentication
51
+ send_email: true #Whether or not to send an email, true or false
47
52
  alert_email_address: youremail@yourdomain.com
48
53
  smtp_server: smtp.yourdomain.com
49
54
  smtp_port: 25
@@ -232,7 +232,19 @@ echi_records:
232
232
  - name: asaiuui
233
233
  type: str
234
234
  length: 96
235
-
235
+
236
+ #ACD table definition derived from acd.dat
237
+ echi_acds:
238
+ - name: acd_id
239
+ type: str
240
+ length: 255
241
+ - name: number
242
+ type: str
243
+ length: 255
244
+ - name: name
245
+ type: str
246
+ length: 255
247
+
236
248
  #Agents table definition derived from agname.dat
237
249
  echi_agents:
238
250
  - name: group_id
@@ -269,6 +281,30 @@ echi_cwcs:
269
281
  type: str
270
282
  length: 255
271
283
 
284
+ #Split table definition derived from split.dat
285
+ echi_splits:
286
+ - name: acd_number
287
+ type: str
288
+ length: 255
289
+ - name: number
290
+ type: str
291
+ length: 255
292
+ - name: name
293
+ type: str
294
+ length: 255
295
+
296
+ #Trunk Group table definition derived from tkgrp.dat
297
+ echi_trunk_groups:
298
+ - name: acd_number
299
+ type: str
300
+ length: 255
301
+ - name: trunk_group
302
+ type: str
303
+ length: 255
304
+ - name: name
305
+ type: str
306
+ length: 255
307
+
272
308
  #VDN definition derived from vdn.dat
273
309
  echi_vdns:
274
310
  - name: group_id
@@ -277,6 +313,18 @@ echi_vdns:
277
313
  - name: vdn
278
314
  type: str
279
315
  length: 255
316
+ - name: name
317
+ type: str
318
+ length: 255
319
+
320
+ #Vector definition derived from vector.dat
321
+ echi_vectors:
322
+ - name: acd_number
323
+ type: str
324
+ length: 255
325
+ - name: number
326
+ type: str
327
+ length: 255
280
328
  - name: name
281
329
  type: str
282
330
  length: 255
@@ -233,6 +233,18 @@ echi_records:
233
233
  type: str
234
234
  length: 96
235
235
 
236
+ #ACD table definition derived from acd.dat
237
+ echi_acds:
238
+ - name: acd_id
239
+ type: str
240
+ length: 255
241
+ - name: number
242
+ type: str
243
+ length: 255
244
+ - name: name
245
+ type: str
246
+ length: 255
247
+
236
248
  #Agents table definition derived from agname.dat
237
249
  echi_agents:
238
250
  - name: group_id
@@ -256,7 +268,7 @@ echi_aux_reasons:
256
268
  - name: name
257
269
  type: str
258
270
  length: 255
259
-
271
+
260
272
  #CWC definition derived from cwc.dat
261
273
  echi_cwcs:
262
274
  - name: group_id
@@ -269,14 +281,50 @@ echi_cwcs:
269
281
  type: str
270
282
  length: 255
271
283
 
284
+ #Split table definition derived from split.dat
285
+ echi_splits:
286
+ - name: acd_number
287
+ type: str
288
+ length: 255
289
+ - name: number
290
+ type: str
291
+ length: 255
292
+ - name: name
293
+ type: str
294
+ length: 255
295
+
296
+ #Trunk Group table definition derived from tkgrp.dat
297
+ echi_trunk_groups:
298
+ - name: acd_number
299
+ type: str
300
+ length: 255
301
+ - name: trunk_group
302
+ type: str
303
+ length: 255
304
+ - name: name
305
+ type: str
306
+ length: 255
307
+
272
308
  #VDN definition derived from vdn.dat
273
309
  echi_vdns:
274
- - name: group_id
275
- type: str
276
- length: 255
277
- - name: vdn
278
- type: str
279
- length: 255
280
- - name: name
281
- type: str
282
- length: 255
310
+ - name: group_id
311
+ type: str
312
+ length: 255
313
+ - name: vdn
314
+ type: str
315
+ length: 255
316
+ - name: name
317
+ type: str
318
+ length: 255
319
+
320
+ #Vector definition derived from vector.dat
321
+ echi_vectors:
322
+ - name: acd_number
323
+ type: str
324
+ length: 255
325
+ - name: number
326
+ type: str
327
+ length: 255
328
+ - name: name
329
+ type: str
330
+ length: 255
@@ -0,0 +1,330 @@
1
+ #ECH File construct, order is important, as the application sequentially reads the file
2
+ #Version 14 - Extended Schema
3
+ echi_records:
4
+ - name: callid
5
+ type: int
6
+ length: 4
7
+ - name: acwtime
8
+ type: int
9
+ length: 4
10
+ - name: onholdtime
11
+ type: int
12
+ length: 4
13
+ - name: consulttime
14
+ type: int
15
+ length: 4
16
+ - name: disptime
17
+ type: int
18
+ length: 4
19
+ - name: duration
20
+ type: int
21
+ length: 4
22
+ - name: segstart
23
+ type: datetime
24
+ length: 4
25
+ - name: segstop
26
+ type: datetime
27
+ length: 4
28
+ - name: talktime
29
+ type: int
30
+ length: 4
31
+ - name: netintime
32
+ type: int
33
+ length: 4
34
+ - name: origholdtime
35
+ type: int
36
+ length: 4
37
+ - name: queuetime
38
+ type: int
39
+ length: 4
40
+ - name: ringtime
41
+ type: int
42
+ length: 4
43
+ - name: dispivector
44
+ type: int
45
+ length: 2
46
+ - name: dispsplit
47
+ type: int
48
+ length: 2
49
+ - name: firstivector
50
+ type: int
51
+ length: 2
52
+ - name: split1
53
+ type: int
54
+ length: 2
55
+ - name: split2
56
+ type: int
57
+ length: 2
58
+ - name: split3
59
+ type: int
60
+ length: 2
61
+ - name: trunkgroup
62
+ type: int
63
+ length: 2
64
+ - name: tklocid
65
+ type: int
66
+ length: 2
67
+ - name: origlocid
68
+ type: int
69
+ length: 2
70
+ - name: answerlocid
71
+ type: int
72
+ length: 2
73
+ - name: obslocid
74
+ type: int
75
+ length: 2
76
+ - name: uuilen
77
+ type: int
78
+ length: 2
79
+ - name: assist
80
+ type: bool
81
+ length: 1
82
+ - name: audiodifficulty
83
+ type: bool
84
+ length: 1
85
+ - name: conference
86
+ type: bool
87
+ length: 1
88
+ - name: daqueued
89
+ type: bool
90
+ length: 1
91
+ - name: holdabn
92
+ type: bool
93
+ length: 1
94
+ - name: malicious
95
+ type: bool
96
+ length: 1
97
+ - name: observingcall
98
+ type: bool
99
+ length: 1
100
+ - name: transferred
101
+ type: bool
102
+ length: 1
103
+ - name: agentreleased
104
+ type: boolint
105
+ length: 1
106
+ - name: acdnum
107
+ type: int
108
+ length: 1
109
+ - name: calldisp
110
+ type: int
111
+ length: 1
112
+ - name: disppriority
113
+ type: int
114
+ length: 1
115
+ - name: holds
116
+ type: int
117
+ length: 1
118
+ - name: segment
119
+ type: int
120
+ length: 1
121
+ - name: ansreason
122
+ type: int
123
+ length: 1
124
+ - name: origreason
125
+ type: int
126
+ length: 1
127
+ - name: dispsklevel
128
+ type: int
129
+ length: 1
130
+ - name: events0
131
+ type: int
132
+ length: 1
133
+ - name: events1
134
+ type: int
135
+ length: 1
136
+ - name: events2
137
+ type: int
138
+ length: 1
139
+ - name: events3
140
+ type: int
141
+ length: 1
142
+ - name: events4
143
+ type: int
144
+ length: 1
145
+ - name: events5
146
+ type: int
147
+ length: 1
148
+ - name: events6
149
+ type: int
150
+ length: 1
151
+ - name: events7
152
+ type: int
153
+ length: 1
154
+ - name: events8
155
+ type: int
156
+ length: 1
157
+ - name: ucid
158
+ type: str
159
+ length: 21
160
+ - name: dispvdn
161
+ type: str
162
+ length: 8
163
+ - name: eqloc
164
+ type: str
165
+ length: 10
166
+ - name: firstvdn
167
+ type: str
168
+ length: 8
169
+ - name: origlogid
170
+ type: str
171
+ length: 10
172
+ - name: anslogid
173
+ type: str
174
+ length: 10
175
+ - name: lastobserver
176
+ type: str
177
+ length: 10
178
+ - name: dialednumber
179
+ type: str
180
+ length: 25
181
+ - name: callingparty
182
+ type: str
183
+ length: 13
184
+ - name: collectdigits
185
+ type: str
186
+ length: 17
187
+ - name: cwcdigits
188
+ type: str
189
+ length: 17
190
+ - name: callingII
191
+ type: str
192
+ length: 3
193
+ - name: cwcs0
194
+ type: str
195
+ length: 17
196
+ - name: cwcs1
197
+ type: str
198
+ length: 17
199
+ - name: cwcs2
200
+ type: str
201
+ length: 17
202
+ - name: cwcs3
203
+ type: str
204
+ length: 17
205
+ - name: cwcs4
206
+ type: str
207
+ length: 17
208
+ - name: vdn2
209
+ type: str
210
+ length: 8
211
+ - name: vdn3
212
+ type: str
213
+ length: 8
214
+ - name: vdn4
215
+ type: str
216
+ length: 8
217
+ - name: vdn5
218
+ type: str
219
+ length: 8
220
+ - name: vdn6
221
+ type: str
222
+ length: 8
223
+ - name: vdn7
224
+ type: str
225
+ length: 8
226
+ - name: vdn8
227
+ type: str
228
+ length: 8
229
+ - name: vdn9
230
+ type: str
231
+ length: 8
232
+ - name: asaiuui
233
+ type: str
234
+ length: 96
235
+
236
+ #ACD table definition derived from acd.dat
237
+ echi_acds:
238
+ - name: acd_id
239
+ type: str
240
+ length: 255
241
+ - name: number
242
+ type: str
243
+ length: 255
244
+ - name: name
245
+ type: str
246
+ length: 255
247
+
248
+ #Agents table definition derived from agname.dat
249
+ echi_agents:
250
+ - name: group_id
251
+ type: str
252
+ length: 255
253
+ - name: login_id
254
+ type: str
255
+ length: 255
256
+ - name: name
257
+ type: str
258
+ length: 255
259
+
260
+ #Aux Reasons table definition derived from aux_rsn.dat
261
+ echi_aux_reasons:
262
+ - name: group_id
263
+ type: str
264
+ length: 255
265
+ - name: aux_reason
266
+ type: str
267
+ length: 255
268
+ - name: name
269
+ type: str
270
+ length: 255
271
+
272
+ #CWC definition derived from cwc.dat
273
+ echi_cwcs:
274
+ - name: group_id
275
+ type: str
276
+ length: 255
277
+ - name: cwc
278
+ type: str
279
+ length: 255
280
+ - name: name
281
+ type: str
282
+ length: 255
283
+
284
+ #Split table definition derived from split.dat
285
+ echi_splits:
286
+ - name: acd_number
287
+ type: str
288
+ length: 255
289
+ - name: number
290
+ type: str
291
+ length: 255
292
+ - name: name
293
+ type: str
294
+ length: 255
295
+
296
+ #Trunk Group table definition derived from tkgrp.dat
297
+ echi_trunk_groups:
298
+ - name: acd_number
299
+ type: str
300
+ length: 255
301
+ - name: trunk_group
302
+ type: str
303
+ length: 255
304
+ - name: name
305
+ type: str
306
+ length: 255
307
+
308
+ #VDN definition derived from vdn.dat
309
+ echi_vdns:
310
+ - name: group_id
311
+ type: str
312
+ length: 255
313
+ - name: vdn
314
+ type: str
315
+ length: 255
316
+ - name: name
317
+ type: str
318
+ length: 255
319
+
320
+ #Vector definition derived from vector.dat
321
+ echi_vectors:
322
+ - name: acd_number
323
+ type: str
324
+ length: 255
325
+ - name: number
326
+ type: str
327
+ length: 255
328
+ - name: name
329
+ type: str
330
+ length: 255