obzvonilka-api 0.2.0 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
- ---
2
- SHA1:
3
- data.tar.gz: 8284a8ebc49e5fd0c88c1d1350856504df53395d
4
- metadata.gz: b149c8ca739fc96a1c9650f92a105f68fad27ae1
5
- SHA512:
6
- data.tar.gz: deaf55baa40f828c8939d51d0f995e031ac682c159872b51910ba4e3b484286b27eaae8a239d60bc47871bf4e6a05c111d5bf952c76347f04037c37fe23d29cf
7
- metadata.gz: e8beda307c4a1ccdad2fd743a8894cdb280e7587e7e30ae91b401421cdff5a85dbff1cc3d6666238eefd70363c8558f17e580ed5f646db27e06ba724ccdae0e4
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
- Welcome to your new gem! In this directory, you'll find the files you need to be able to package up your Ruby library into a gem. Put your Ruby code in the file `lib/obzvonilka/api`. To experiment with that code, run `bin/console` for an interactive prompt.
3
+ Предназначен для интеграции сервиса Obzvonilka с другими системами (Asterisk и другие).
4
4
 
5
- TODO: Delete this and the text above, and describe your gem
5
+ ## Установка
6
6
 
7
- ## Installation
7
+ $ gem install obzvonilka-api
8
8
 
9
- Add this line to your application's Gemfile:
9
+ ## Usage
10
10
 
11
- ```ruby
12
- gem 'obzvonilka-api'
13
- ```
11
+ Для интеграции с Asterisk нужно выполнить команду:
14
12
 
15
- And then execute:
13
+ $ OBZVONILKA_API_KEY=1234567890 ruby -e "require 'rubygems'; require 'obzvonilka/api'; Obzvonilka::Asterisk::Voice.send_voices"
16
14
 
17
- $ bundle
15
+ Значение параметра OBZVONILKA_API_KEY получаете в настройках профила на вкладке "Организации".
18
16
 
19
- Or install it yourself as:
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
 
@@ -1,5 +1,5 @@
1
1
  module Obzvonilka
2
2
  module Api
3
- VERSION = "0.2.0"
3
+ VERSION = "0.2.1"
4
4
  end
5
5
  end
@@ -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[:dst], row[:start], row[:end], file_name, row[:astid]
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[:dst]
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.0
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
- date: 2015-12-23 00:00:00 Z
13
- dependencies:
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
- prerelease: false
17
- requirement: &id001 !ruby/object:Gem::Requirement
18
- requirements:
19
- - &id002
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
- requirement: &id003 !ruby/object:Gem::Requirement
29
- requirements:
30
- - *id002
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
- requirement: &id004 !ruby/object:Gem::Requirement
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: "1.10"
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
- requirement: &id005 !ruby/object:Gem::Requirement
47
- requirements:
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
48
52
  - - ~>
49
- - !ruby/object:Gem::Version
50
- version: "10.0"
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
- requirement: &id006 !ruby/object:Gem::Requirement
57
- requirements:
58
- - *id002
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
- requirement: &id007 !ruby/object:Gem::Requirement
65
- requirements:
66
- - *id002
67
- type: :development
68
- version_requirements: *id007
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
- - *id002
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.0.17
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
-