didww-v3 1.3.1 → 4.0.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.
- checksums.yaml +4 -4
- data/.github/workflows/tests.yml +5 -1
- data/.rubocop.yml +3 -0
- data/CHANGELOG.md +51 -2
- data/Gemfile +2 -1
- data/README.md +10 -1
- data/Rakefile +1 -0
- data/bin/console +1 -0
- data/didww-v3.gemspec +3 -1
- data/lib/didww/{middleware.rb → base_middleware.rb} +5 -4
- data/lib/didww/callback/const.rb +14 -0
- data/lib/didww/callback/request_validator.rb +77 -0
- data/lib/didww/client.rb +98 -39
- data/lib/didww/complex_objects/base.rb +2 -3
- data/lib/didww/complex_objects/capacity_order_item.rb +1 -0
- data/lib/didww/complex_objects/configurations/base.rb +143 -2
- data/lib/didww/complex_objects/configurations/h323_configuration.rb +1 -0
- data/lib/didww/complex_objects/configurations/iax2_configuration.rb +1 -0
- data/lib/didww/complex_objects/configurations/pstn_configuration.rb +1 -0
- data/lib/didww/complex_objects/configurations/sip_configuration.rb +34 -3
- data/lib/didww/complex_objects/configurations.rb +1 -0
- data/lib/didww/complex_objects/did_order_item.rb +15 -12
- data/lib/didww/complex_objects/export_filters.rb +26 -0
- data/lib/didww/encrypt.rb +101 -0
- data/lib/didww/jsonapi_middleware.rb +21 -0
- data/lib/didww/resource/address.rb +37 -0
- data/lib/didww/resource/address_verification.rb +56 -0
- data/lib/didww/resource/area.rb +12 -0
- data/lib/didww/{resources → resource}/available_did.rb +2 -0
- data/lib/didww/{resources → resource}/balance.rb +1 -0
- data/lib/didww/{resources → resource}/base.rb +2 -2
- data/lib/didww/{resources → resource}/capacity_pool.rb +1 -0
- data/lib/didww/resource/city.rb +14 -0
- data/lib/didww/{resources → resource}/country.rb +1 -0
- data/lib/didww/{resources → resource}/did.rb +5 -3
- data/lib/didww/{resources → resource}/did_group.rb +13 -25
- data/lib/didww/{resources → resource}/did_group_type.rb +1 -0
- data/lib/didww/{resources → resource}/did_reservation.rb +1 -0
- data/lib/didww/resource/encrypted_file.rb +58 -0
- data/lib/didww/{resources/cdr_export.rb → resource/export.rb} +24 -5
- data/lib/didww/resource/identity.rb +78 -0
- data/lib/didww/resource/nanpa_prefix.rb +18 -0
- data/lib/didww/{resources → resource}/order.rb +20 -12
- data/lib/didww/resource/permanent_supporting_document.rb +15 -0
- data/lib/didww/{resources → resource}/pop.rb +1 -0
- data/lib/didww/resource/proof.rb +19 -0
- data/lib/didww/resource/proof_type.rb +14 -0
- data/lib/didww/resource/public_key.rb +12 -0
- data/lib/didww/{resources → resource}/qty_based_pricing.rb +1 -0
- data/lib/didww/{resources → resource}/region.rb +1 -0
- data/lib/didww/resource/requirement.rb +61 -0
- data/lib/didww/resource/requirement_validation.rb +10 -0
- data/lib/didww/{resources → resource}/shared_capacity_group.rb +1 -0
- data/lib/didww/{resources → resource}/stock_keeping_unit.rb +1 -0
- data/lib/didww/resource/supporting_document_template.rb +14 -0
- data/lib/didww/{resources/trunk.rb → resource/voice_in_trunk.rb} +40 -4
- data/lib/didww/{resources/trunk_group.rb → resource/voice_in_trunk_group.rb} +3 -2
- data/lib/didww/resource/voice_out_trunk.rb +75 -0
- data/lib/didww/resource/voice_out_trunk_regenerate_credential.rb +11 -0
- data/lib/didww/types/ip_addresses.rb +23 -0
- data/lib/didww/types/strings.rb +21 -0
- data/lib/didww/types.rb +12 -0
- data/lib/didww/version.rb +2 -1
- data/lib/didww.rb +6 -1
- metadata +63 -28
- data/lib/didww/complex_objects/cdr_export_filter.rb +0 -23
- data/lib/didww/complex_objects/configurations/const.rb +0 -149
- data/lib/didww/resources/city.rb +0 -9
- data/lib/didww/resources/trunk/const.rb +0 -46
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: didww-v3
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 4.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Alex Korobeinikov
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-07-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -44,14 +44,14 @@ dependencies:
|
|
44
44
|
requirements:
|
45
45
|
- - '='
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: 1.
|
47
|
+
version: 1.18.0
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
52
|
- - '='
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: 1.
|
54
|
+
version: 1.18.0
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: http
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -80,6 +80,20 @@ dependencies:
|
|
80
80
|
- - ">="
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: openssl-oaep
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
type: :runtime
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
83
97
|
description: Ruby client for DIDWW API v3
|
84
98
|
email:
|
85
99
|
- alex.k@didww.com
|
@@ -100,39 +114,59 @@ files:
|
|
100
114
|
- bin/setup
|
101
115
|
- didww-v3.gemspec
|
102
116
|
- lib/didww.rb
|
117
|
+
- lib/didww/base_middleware.rb
|
118
|
+
- lib/didww/callback/const.rb
|
119
|
+
- lib/didww/callback/request_validator.rb
|
103
120
|
- lib/didww/client.rb
|
104
121
|
- lib/didww/complex_objects/base.rb
|
105
122
|
- lib/didww/complex_objects/capacity_order_item.rb
|
106
|
-
- lib/didww/complex_objects/cdr_export_filter.rb
|
107
123
|
- lib/didww/complex_objects/configurations.rb
|
108
124
|
- lib/didww/complex_objects/configurations/base.rb
|
109
|
-
- lib/didww/complex_objects/configurations/const.rb
|
110
125
|
- lib/didww/complex_objects/configurations/h323_configuration.rb
|
111
126
|
- lib/didww/complex_objects/configurations/iax2_configuration.rb
|
112
127
|
- lib/didww/complex_objects/configurations/pstn_configuration.rb
|
113
128
|
- lib/didww/complex_objects/configurations/sip_configuration.rb
|
114
129
|
- lib/didww/complex_objects/did_order_item.rb
|
115
|
-
- lib/didww/
|
116
|
-
- lib/didww/
|
117
|
-
- lib/didww/
|
118
|
-
- lib/didww/
|
119
|
-
- lib/didww/
|
120
|
-
- lib/didww/
|
121
|
-
- lib/didww/
|
122
|
-
- lib/didww/
|
123
|
-
- lib/didww/
|
124
|
-
- lib/didww/
|
125
|
-
- lib/didww/
|
126
|
-
- lib/didww/
|
127
|
-
- lib/didww/
|
128
|
-
- lib/didww/
|
129
|
-
- lib/didww/
|
130
|
-
- lib/didww/
|
131
|
-
- lib/didww/
|
132
|
-
- lib/didww/
|
133
|
-
- lib/didww/
|
134
|
-
- lib/didww/
|
135
|
-
- lib/didww/
|
130
|
+
- lib/didww/complex_objects/export_filters.rb
|
131
|
+
- lib/didww/encrypt.rb
|
132
|
+
- lib/didww/jsonapi_middleware.rb
|
133
|
+
- lib/didww/resource/address.rb
|
134
|
+
- lib/didww/resource/address_verification.rb
|
135
|
+
- lib/didww/resource/area.rb
|
136
|
+
- lib/didww/resource/available_did.rb
|
137
|
+
- lib/didww/resource/balance.rb
|
138
|
+
- lib/didww/resource/base.rb
|
139
|
+
- lib/didww/resource/capacity_pool.rb
|
140
|
+
- lib/didww/resource/city.rb
|
141
|
+
- lib/didww/resource/country.rb
|
142
|
+
- lib/didww/resource/did.rb
|
143
|
+
- lib/didww/resource/did_group.rb
|
144
|
+
- lib/didww/resource/did_group_type.rb
|
145
|
+
- lib/didww/resource/did_reservation.rb
|
146
|
+
- lib/didww/resource/encrypted_file.rb
|
147
|
+
- lib/didww/resource/export.rb
|
148
|
+
- lib/didww/resource/identity.rb
|
149
|
+
- lib/didww/resource/nanpa_prefix.rb
|
150
|
+
- lib/didww/resource/order.rb
|
151
|
+
- lib/didww/resource/permanent_supporting_document.rb
|
152
|
+
- lib/didww/resource/pop.rb
|
153
|
+
- lib/didww/resource/proof.rb
|
154
|
+
- lib/didww/resource/proof_type.rb
|
155
|
+
- lib/didww/resource/public_key.rb
|
156
|
+
- lib/didww/resource/qty_based_pricing.rb
|
157
|
+
- lib/didww/resource/region.rb
|
158
|
+
- lib/didww/resource/requirement.rb
|
159
|
+
- lib/didww/resource/requirement_validation.rb
|
160
|
+
- lib/didww/resource/shared_capacity_group.rb
|
161
|
+
- lib/didww/resource/stock_keeping_unit.rb
|
162
|
+
- lib/didww/resource/supporting_document_template.rb
|
163
|
+
- lib/didww/resource/voice_in_trunk.rb
|
164
|
+
- lib/didww/resource/voice_in_trunk_group.rb
|
165
|
+
- lib/didww/resource/voice_out_trunk.rb
|
166
|
+
- lib/didww/resource/voice_out_trunk_regenerate_credential.rb
|
167
|
+
- lib/didww/types.rb
|
168
|
+
- lib/didww/types/ip_addresses.rb
|
169
|
+
- lib/didww/types/strings.rb
|
136
170
|
- lib/didww/version.rb
|
137
171
|
homepage: https://github.com/didww/didww-v3-ruby
|
138
172
|
licenses:
|
@@ -153,7 +187,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
153
187
|
- !ruby/object:Gem::Version
|
154
188
|
version: '0'
|
155
189
|
requirements: []
|
156
|
-
|
190
|
+
rubyforge_project:
|
191
|
+
rubygems_version: 2.7.6.2
|
157
192
|
signing_key:
|
158
193
|
specification_version: 4
|
159
194
|
summary: Ruby client for DIDWW API v3
|
@@ -1,23 +0,0 @@
|
|
1
|
-
require 'json_api_client/schema'
|
2
|
-
|
3
|
-
module DIDWW
|
4
|
-
module ComplexObject
|
5
|
-
class CdrExportFilter < Base
|
6
|
-
# Type casting for JsonApiClient parser/setters
|
7
|
-
def self.cast_single_object(hash)
|
8
|
-
new(hash)
|
9
|
-
end
|
10
|
-
|
11
|
-
property :year, type: :integer
|
12
|
-
property :month, type: :integer
|
13
|
-
property :did_number, type: :string
|
14
|
-
|
15
|
-
def as_json(*)
|
16
|
-
super[:attributes]
|
17
|
-
end
|
18
|
-
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
22
|
-
|
23
|
-
JsonApiClient::Schema.register cdr_export_filter: DIDWW::ComplexObject::CdrExportFilter
|
@@ -1,149 +0,0 @@
|
|
1
|
-
module DIDWW
|
2
|
-
module ComplexObject
|
3
|
-
module Configuration
|
4
|
-
module CONST
|
5
|
-
RX_DTMF_FORMATS = {
|
6
|
-
1 => 'RFC 2833' .freeze,
|
7
|
-
2 => 'SIP INFO application/dtmf-relay OR application/dtmf'.freeze,
|
8
|
-
3 => 'RFC 2833 OR SIP INFO' .freeze
|
9
|
-
}.freeze
|
10
|
-
|
11
|
-
TX_DTMF_FORMATS = {
|
12
|
-
0 => 'Disable sending' .freeze,
|
13
|
-
1 => 'RFC 2833' .freeze,
|
14
|
-
2 => 'SIP INFO application/dtmf-relay' .freeze,
|
15
|
-
4 => 'SIP INFO application/dtmf' .freeze
|
16
|
-
}.freeze
|
17
|
-
|
18
|
-
SST_REFRESH_METHODS = {
|
19
|
-
1 => 'Invite' .freeze,
|
20
|
-
2 => 'Update' .freeze,
|
21
|
-
3 => 'Update fallback Invite' .freeze
|
22
|
-
}.freeze
|
23
|
-
|
24
|
-
TRANSPORT_PROTOCOLS = {
|
25
|
-
1 => 'UDP' .freeze,
|
26
|
-
2 => 'TCP' .freeze
|
27
|
-
}.freeze
|
28
|
-
|
29
|
-
REROUTING_DISCONNECT_CODES = {
|
30
|
-
56 => '400 | Bad Request' .freeze,
|
31
|
-
57 => '401 | Unauthorized' .freeze,
|
32
|
-
58 => '402 | Payment Required' .freeze,
|
33
|
-
59 => '403 | Forbidden' .freeze,
|
34
|
-
60 => '404 | Not Found' .freeze,
|
35
|
-
64 => '408 | Request Timeout' .freeze,
|
36
|
-
65 => '409 | Conflict' .freeze,
|
37
|
-
66 => '410 | Gone' .freeze,
|
38
|
-
67 => '412 | Conditional Request Failed' .freeze,
|
39
|
-
68 => '413 | Request Entity Too Large' .freeze,
|
40
|
-
69 => '414 | Request-URI Too Long' .freeze,
|
41
|
-
70 => '415 | Unsupported Media Type' .freeze,
|
42
|
-
71 => '416 | Unsupported URI Scheme' .freeze,
|
43
|
-
72 => '417 | Unknown Resource-Priority' .freeze,
|
44
|
-
73 => '420 | Bad Extension' .freeze,
|
45
|
-
74 => '421 | Extension Required' .freeze,
|
46
|
-
75 => '422 | Session Interval Too Small' .freeze,
|
47
|
-
76 => '423 | Interval Too Brief' .freeze,
|
48
|
-
77 => '424 | Bad Location Information' .freeze,
|
49
|
-
78 => '428 | Use Identity Header' .freeze,
|
50
|
-
79 => '429 | Provide Referrer Identity' .freeze,
|
51
|
-
80 => '433 | Anonymity Disallowed' .freeze,
|
52
|
-
81 => '436 | Bad Identity-Info' .freeze,
|
53
|
-
82 => '437 | Unsupported Certificate' .freeze,
|
54
|
-
83 => '438 | Invalid Identity Header' .freeze,
|
55
|
-
84 => '480 | Temporarily Unavailable' .freeze,
|
56
|
-
86 => '482 | Loop Detected' .freeze,
|
57
|
-
87 => '483 | Too Many Hops' .freeze,
|
58
|
-
88 => '484 | Address Incomplete' .freeze,
|
59
|
-
89 => '485 | Ambiguous' .freeze,
|
60
|
-
90 => '486 | Busy Here' .freeze,
|
61
|
-
91 => '487 | Request Terminated' .freeze,
|
62
|
-
92 => '488 | Not Acceptable Here' .freeze,
|
63
|
-
96 => '494 | Security Agreement Required' .freeze,
|
64
|
-
97 => '500 | Server Internal Error' .freeze,
|
65
|
-
98 => '501 | Not Implemented' .freeze,
|
66
|
-
99 => '502 | Bad Gateway' .freeze,
|
67
|
-
100 => '503 | Service Unavailable' .freeze,
|
68
|
-
101 => '504 | Server Time-out' .freeze,
|
69
|
-
102 => '505 | Version Not Supported' .freeze,
|
70
|
-
103 => '513 | Message Too Large' .freeze,
|
71
|
-
104 => '580 | Precondition Failure' .freeze,
|
72
|
-
105 => '600 | Busy Everywhere' .freeze,
|
73
|
-
106 => '603 | Decline' .freeze,
|
74
|
-
107 => '604 | Does Not Exist Anywhere' .freeze,
|
75
|
-
108 => '606 | Not Acceptable' .freeze,
|
76
|
-
1505 => 'Ringing timeout' .freeze
|
77
|
-
}.freeze
|
78
|
-
|
79
|
-
CODECS = {
|
80
|
-
6 => 'telephone-event' .freeze,
|
81
|
-
7 => 'G723' .freeze,
|
82
|
-
8 => 'G729' .freeze,
|
83
|
-
9 => 'PCMU' .freeze,
|
84
|
-
10 => 'PCMA' .freeze,
|
85
|
-
12 => 'speex' .freeze,
|
86
|
-
13 => 'GSM' .freeze,
|
87
|
-
14 => 'G726-32' .freeze,
|
88
|
-
15 => 'G721' .freeze,
|
89
|
-
16 => 'G726-24' .freeze,
|
90
|
-
17 => 'G726-40' .freeze,
|
91
|
-
18 => 'G726-16' .freeze,
|
92
|
-
19 => 'L16' .freeze
|
93
|
-
}.freeze
|
94
|
-
|
95
|
-
DEFAULT_REROUTING_DISCONNECT_CODE_IDS = [
|
96
|
-
56,
|
97
|
-
58,
|
98
|
-
59,
|
99
|
-
60,
|
100
|
-
64,
|
101
|
-
65,
|
102
|
-
66,
|
103
|
-
67,
|
104
|
-
68,
|
105
|
-
69,
|
106
|
-
70,
|
107
|
-
71,
|
108
|
-
72,
|
109
|
-
73,
|
110
|
-
74,
|
111
|
-
75,
|
112
|
-
76,
|
113
|
-
77,
|
114
|
-
78,
|
115
|
-
79,
|
116
|
-
80,
|
117
|
-
81,
|
118
|
-
82,
|
119
|
-
83,
|
120
|
-
84,
|
121
|
-
86,
|
122
|
-
87,
|
123
|
-
88,
|
124
|
-
89,
|
125
|
-
90,
|
126
|
-
91,
|
127
|
-
92,
|
128
|
-
96,
|
129
|
-
97,
|
130
|
-
98,
|
131
|
-
99,
|
132
|
-
101,
|
133
|
-
102,
|
134
|
-
103,
|
135
|
-
104,
|
136
|
-
105,
|
137
|
-
106,
|
138
|
-
107,
|
139
|
-
108,
|
140
|
-
1505
|
141
|
-
].freeze
|
142
|
-
|
143
|
-
DEFAULT_CODEC_IDS = [ 9, 10, 8, 7, 6 ].freeze
|
144
|
-
|
145
|
-
DID_PLACEHOLDER = '{DID}'.freeze
|
146
|
-
end
|
147
|
-
end
|
148
|
-
end
|
149
|
-
end
|
data/lib/didww/resources/city.rb
DELETED
@@ -1,46 +0,0 @@
|
|
1
|
-
module DIDWW
|
2
|
-
module Resource
|
3
|
-
class Trunk < Base
|
4
|
-
module CONST
|
5
|
-
# Allowed values for trunk.cli_format
|
6
|
-
CLI_FORMAT_RAW = 'raw' .freeze
|
7
|
-
CLI_FORMAT_E164 = 'e164' .freeze
|
8
|
-
CLI_FORMAT_LOCAL = 'local' .freeze
|
9
|
-
|
10
|
-
CLI_FORMATS = {
|
11
|
-
CLI_FORMAT_RAW => 'Raw' .freeze,
|
12
|
-
CLI_FORMAT_E164 => 'E.164' .freeze,
|
13
|
-
CLI_FORMAT_LOCAL => 'Local' .freeze
|
14
|
-
}.freeze
|
15
|
-
|
16
|
-
# Configuration types
|
17
|
-
CONF_TYPE_SIP = 'sip_configurations' .freeze
|
18
|
-
CONF_TYPE_H323 = 'h323_configurations' .freeze
|
19
|
-
CONF_TYPE_IAX2 = 'iax2_configurations' .freeze
|
20
|
-
CONF_TYPE_PSTN = 'pstn_configurations' .freeze
|
21
|
-
|
22
|
-
CONF_TYPES = {
|
23
|
-
CONF_TYPE_SIP => 'SIP' .freeze,
|
24
|
-
CONF_TYPE_H323 => 'H323' .freeze,
|
25
|
-
CONF_TYPE_IAX2 => 'IAX2' .freeze,
|
26
|
-
CONF_TYPE_PSTN => 'PSTN' .freeze
|
27
|
-
}.freeze
|
28
|
-
|
29
|
-
CONF_TYPE_CLASSES = {
|
30
|
-
CONF_TYPE_SIP => DIDWW::ComplexObject::SipConfiguration,
|
31
|
-
CONF_TYPE_H323 => DIDWW::ComplexObject::H323Configuration,
|
32
|
-
CONF_TYPE_IAX2 => DIDWW::ComplexObject::Iax2Configuration,
|
33
|
-
CONF_TYPE_PSTN => DIDWW::ComplexObject::PstnConfiguration
|
34
|
-
}.freeze
|
35
|
-
|
36
|
-
def cli_format_human
|
37
|
-
CLI_FORMATS[cli_format]
|
38
|
-
end
|
39
|
-
|
40
|
-
def configuration_type_human
|
41
|
-
CONF_TYPES[configuration.type] if configuration
|
42
|
-
end
|
43
|
-
end
|
44
|
-
end
|
45
|
-
end
|
46
|
-
end
|