obzvonilka-api 0.2.0 → 0.2.1
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.
- checksums.yaml +7 -7
- data/README.md +27 -13
- data/lib/obzvonilka/api/version.rb +1 -1
- data/lib/obzvonilka/asterisk/voice.rb +7 -3
- metadata +78 -68
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
|
-
---
|
2
|
-
SHA1:
|
3
|
-
|
4
|
-
|
5
|
-
SHA512:
|
6
|
-
|
7
|
-
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: bbfb2e731974b70aaec46792fb8714e1a4a84379
|
4
|
+
data.tar.gz: 5bc0b3ae01340ddca87beae11f436c7b7800d169
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: a351f46761bffe71355a554f27da4dc340a9ded4785725de5b86add73207885d55699b1338b38a0d4300dfc0bf8aeaf4f28648caade20c3749242e92be5c411b
|
7
|
+
data.tar.gz: 84e25b89014de274e09ceac9f0ce4fbda02c65b1b0af508d4ff400ae2c9cfaec4f91477f2c866d5ca8c21cc5dc1606380b93b5777e43ce7e3673e90d26021440
|
data/README.md
CHANGED
@@ -1,28 +1,42 @@
|
|
1
1
|
# Obzvonilka::Api
|
2
2
|
|
3
|
-
|
3
|
+
Предназначен для интеграции сервиса Obzvonilka с другими системами (Asterisk и другие).
|
4
4
|
|
5
|
-
|
5
|
+
## Установка
|
6
6
|
|
7
|
-
|
7
|
+
$ gem install obzvonilka-api
|
8
8
|
|
9
|
-
|
9
|
+
## Usage
|
10
10
|
|
11
|
-
|
12
|
-
gem 'obzvonilka-api'
|
13
|
-
```
|
11
|
+
Для интеграции с Asterisk нужно выполнить команду:
|
14
12
|
|
15
|
-
|
13
|
+
$ OBZVONILKA_API_KEY=1234567890 ruby -e "require 'rubygems'; require 'obzvonilka/api'; Obzvonilka::Asterisk::Voice.send_voices"
|
16
14
|
|
17
|
-
|
15
|
+
Значение параметра OBZVONILKA_API_KEY получаете в настройках профила на вкладке "Организации".
|
18
16
|
|
19
|
-
|
17
|
+
Другие возможные параметры, задаваемые переменными окружения:
|
18
|
+
|
19
|
+
| Название | Описание | Значение по умолчанию
|
20
|
+
|------------------------------|---------------------------------------------------|--------------------------------------
|
21
|
+
| ASTERISK_CDR_CSV_PATH | Путь к файлу CDR. | /var/log/asterisk/cdr-csv/Master.csv
|
22
|
+
| ASTERISK_VOICE_FILES_DIR | Путь к звуковым файлам. | /var/spool/asterisk/monitor
|
23
|
+
| ASTERISK_VOICE_PATH_TEMPLATE | Шаблон для формирования имени звукового файла | "#{FILES_PATH}/%Y/%m/%d/*-%ai.\*"
|
24
|
+
| ASTERISK_CHECK_FILE_COUNT | Количество старых CDR, обрабатываемых при запуске | 100
|
25
|
+
| ASTERISK_DST_FIELD_NAME | Имя поля, в котором хранится вызываемый номер (например, если реальный номер хранится в userfield |
|
26
|
+
|
27
|
+
В шаблоне для формирования имени звукового файла (ASTERISK_VOICE_PATH_TEMPLATE) можно использовать следующие подстановки:
|
28
|
+
|
29
|
+
* %ai - ID звонка в Asterisk
|
30
|
+
* %as - src звонка
|
31
|
+
* %ad - dst звонка
|
32
|
+
* %Y, %m, %d, %H, %M, %S и другие стандартные параметры форматирования даты/времени
|
33
|
+
|
34
|
+
Например, можно использовать шаблон для задания нестандартного имени звукового файла:
|
35
|
+
|
36
|
+
/records/mind/2xx/outgoing/%H-%M_%Y-%m-%d-*-%ad.wav
|
20
37
|
|
21
|
-
$ gem install obzvonilka-api
|
22
38
|
|
23
|
-
## Usage
|
24
39
|
|
25
|
-
TODO: Write usage instructions here
|
26
40
|
|
27
41
|
## Development
|
28
42
|
|
@@ -15,10 +15,14 @@ module Obzvonilka
|
|
15
15
|
# Amount of old file, then will be checked
|
16
16
|
PREV_FILE_CNT = ENV['ASTERISK_CHECK_FILE_COUNT'] || 100
|
17
17
|
|
18
|
+
# DST field name from Master.csv. Use if real DST wroted in other field (i.e. userfield)
|
19
|
+
LOG_FIELD_DST = (ENV['ASTERISK_DST_FIELD_NAME'] || :dst).to_sym
|
20
|
+
|
18
21
|
TAIL_COMMAND = "tail -n #{PREV_FILE_CNT} -F '#{LOGS_PATH}'"
|
19
22
|
|
20
23
|
HEADINGS = [:accountcode, :src, :dst, :dcontet, :clid, :channel, :dstchannel, :lastapp, :lastdata,
|
21
|
-
:start, :answer, :end, :duration, :billsec, :disposition, :amaflags, :astid]
|
24
|
+
:start, :answer, :end, :duration, :billsec, :disposition, :amaflags, :astid, :userfield]
|
25
|
+
|
22
26
|
|
23
27
|
def self.send_voices
|
24
28
|
read_cdr_rows do |row|
|
@@ -31,7 +35,7 @@ module Obzvonilka
|
|
31
35
|
end
|
32
36
|
|
33
37
|
def self.send_voice(row, file_name)
|
34
|
-
Obzvonilka::Api::Voice.new.put_voice row[
|
38
|
+
Obzvonilka::Api::Voice.new.put_voice row[LOG_FIELD_DST], row[:start], row[:end], file_name, row[:astid]
|
35
39
|
end
|
36
40
|
|
37
41
|
def self.read_cdr_rows
|
@@ -74,7 +78,7 @@ module Obzvonilka
|
|
74
78
|
when '%as'
|
75
79
|
row[:src]
|
76
80
|
when '%ad'
|
77
|
-
row[
|
81
|
+
row[LOG_FIELD_DST]
|
78
82
|
else
|
79
83
|
row_date(row).strftime(m)
|
80
84
|
end
|
metadata
CHANGED
@@ -1,81 +1,92 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: obzvonilka-api
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.2.1
|
5
5
|
platform: ruby
|
6
|
-
authors:
|
6
|
+
authors:
|
7
7
|
- ukolovda
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
- !ruby/object:Gem::Dependency
|
11
|
+
date: 2016-01-28 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
15
14
|
name: rest-client
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
- !ruby/object:Gem::Version
|
22
|
-
version: "0"
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - '>='
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
23
20
|
type: :runtime
|
24
|
-
version_requirements: *id001
|
25
|
-
- !ruby/object:Gem::Dependency
|
26
|
-
name: json
|
27
21
|
prerelease: false
|
28
|
-
|
29
|
-
requirements:
|
30
|
-
-
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - '>='
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: json
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - '>='
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
31
34
|
type: :runtime
|
32
|
-
version_requirements: *id003
|
33
|
-
- !ruby/object:Gem::Dependency
|
34
|
-
name: bundler
|
35
35
|
prerelease: false
|
36
|
-
|
37
|
-
requirements:
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - '>='
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: bundler
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
38
45
|
- - ~>
|
39
|
-
- !ruby/object:Gem::Version
|
40
|
-
version:
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '1.10'
|
41
48
|
type: :development
|
42
|
-
version_requirements: *id004
|
43
|
-
- !ruby/object:Gem::Dependency
|
44
|
-
name: rake
|
45
49
|
prerelease: false
|
46
|
-
|
47
|
-
requirements:
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
48
52
|
- - ~>
|
49
|
-
- !ruby/object:Gem::Version
|
50
|
-
version:
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '1.10'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: rake
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ~>
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '10.0'
|
51
62
|
type: :development
|
52
|
-
version_requirements: *id005
|
53
|
-
- !ruby/object:Gem::Dependency
|
54
|
-
name: minitest
|
55
63
|
prerelease: false
|
56
|
-
|
57
|
-
requirements:
|
58
|
-
-
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ~>
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '10.0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: minitest
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - '>='
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
59
76
|
type: :development
|
60
|
-
version_requirements: *id006
|
61
|
-
- !ruby/object:Gem::Dependency
|
62
|
-
name: rcov
|
63
77
|
prerelease: false
|
64
|
-
|
65
|
-
requirements:
|
66
|
-
-
|
67
|
-
|
68
|
-
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - '>='
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
69
83
|
description: Obzvonilka.ru API
|
70
|
-
email:
|
84
|
+
email:
|
71
85
|
- udmitry@mail.ru
|
72
86
|
executables: []
|
73
|
-
|
74
87
|
extensions: []
|
75
|
-
|
76
88
|
extra_rdoc_files: []
|
77
|
-
|
78
|
-
files:
|
89
|
+
files:
|
79
90
|
- .gitignore
|
80
91
|
- .travis.yml
|
81
92
|
- CODE_OF_CONDUCT.md
|
@@ -91,29 +102,28 @@ files:
|
|
91
102
|
- lib/obzvonilka/asterisk/voice.rb
|
92
103
|
- obzvonilka-api.gemspec
|
93
104
|
homepage: https://github.com/ukolovda/abzvonilka-api
|
94
|
-
licenses:
|
105
|
+
licenses:
|
95
106
|
- MIT
|
96
|
-
metadata:
|
107
|
+
metadata:
|
97
108
|
allowed_push_host: https://rubygems.org
|
98
109
|
post_install_message:
|
99
110
|
rdoc_options: []
|
100
|
-
|
101
|
-
require_paths:
|
111
|
+
require_paths:
|
102
112
|
- lib
|
103
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
104
|
-
requirements:
|
105
|
-
- -
|
106
|
-
- !ruby/object:Gem::Version
|
113
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - '>='
|
116
|
+
- !ruby/object:Gem::Version
|
107
117
|
version: 1.8.7
|
108
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
109
|
-
requirements:
|
110
|
-
-
|
118
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
119
|
+
requirements:
|
120
|
+
- - '>='
|
121
|
+
- !ruby/object:Gem::Version
|
122
|
+
version: '0'
|
111
123
|
requirements: []
|
112
|
-
|
113
124
|
rubyforge_project:
|
114
|
-
rubygems_version: 2.
|
125
|
+
rubygems_version: 2.4.8
|
115
126
|
signing_key:
|
116
127
|
specification_version: 4
|
117
128
|
summary: Obzvonilka.ru API
|
118
129
|
test_files: []
|
119
|
-
|