polylink_api 0.1.0 → 0.1.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 +4 -4
- data/lib/polylink_api/helper.rb +58 -29
- data/lib/polylink_api/version.rb +1 -1
- data/polylink_api.gemspec +1 -1
- data/spec/lib/polylink_api/helper_spec.rb +21 -6
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 95a0826a248317f30e0372c9cce792c863b239ae
|
4
|
+
data.tar.gz: 9deb89aad40ba5208f616efd4b5278b910de37f7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 01cfbff77bee1a5183d63ffedfc2fc28a200c5f81f319636b50f1d85047a7a3d5c5eb959dc8b36dcd624a17849711a868ef2e577cbaaf0c31357a5faa5c00ff6
|
7
|
+
data.tar.gz: b335ca902ebdcffcc8135a51bcbbb571e4a18fa6f04fc01719bfff66f91773ded3f9cdcc762bb20a408d994efd1e66ca7eefb8665d6794ff1e811d35afc2480f
|
data/lib/polylink_api/helper.rb
CHANGED
@@ -11,7 +11,6 @@ module PolylinkApi
|
|
11
11
|
:get_v2_cid,
|
12
12
|
:call_back_v2_c_id,
|
13
13
|
:get_v2_c_cdr,
|
14
|
-
:get_cdr,
|
15
14
|
:upload_did_voice,
|
16
15
|
:bind_phone_by_vendor_did,
|
17
16
|
:delete_phone_by_vendor_did,
|
@@ -22,7 +21,7 @@ module PolylinkApi
|
|
22
21
|
:getivr_did_list
|
23
22
|
]
|
24
23
|
|
25
|
-
METHODS_RESPONSE_KEY = { get_v2_cid: "V2CID", get_v2_c_cdr: "CDR", get_vendor_did_phone_list: "List" }
|
24
|
+
METHODS_RESPONSE_KEY = { get_v2_cid: "V2CID", get_v2_c_cdr: "CDR", get_vendor_did_phone_list: "List", getivr_did_list: "List", get_vendor_did_ivr_did_list: "List" }
|
26
25
|
STATUS_CODES = [ "500", "501", "502", "510", "511", "516", "517", "518", "519", "600" ]
|
27
26
|
|
28
27
|
def self.client
|
@@ -43,13 +42,6 @@ module PolylinkApi
|
|
43
42
|
ensure
|
44
43
|
return get_response(method, response.body)
|
45
44
|
end
|
46
|
-
|
47
|
-
# log = PolylinkApi::Models::Log.new
|
48
|
-
# PolylinkApi.logger.debug response.body
|
49
|
-
# log.method = method
|
50
|
-
# log.params = message
|
51
|
-
# log.response = response.hash
|
52
|
-
# log.save
|
53
45
|
end
|
54
46
|
|
55
47
|
def self.get_response(method, response_body){}
|
@@ -67,7 +59,7 @@ module PolylinkApi
|
|
67
59
|
when "516" then raise InvalidDataError, "V2CID已存在"
|
68
60
|
when "517" then raise InvalidDataError, "DID不存在"
|
69
61
|
when "518" then raise InvalidDataError, "V2CID不存在"
|
70
|
-
when "519" then raise InvalidDataError, "DID不存在"
|
62
|
+
when "519" then raise InvalidDataError, "虚拟总机DID不存在"
|
71
63
|
when "600" then raise InvalidResponseError, "远程服务器发生未知错误"
|
72
64
|
end
|
73
65
|
return get_response_data(method, result)
|
@@ -98,23 +90,28 @@ module PolylinkApi
|
|
98
90
|
end
|
99
91
|
end
|
100
92
|
|
93
|
+
# 创建V2C DID绑定
|
101
94
|
def self.create_v2c_did(v2c_id, vendor_phone, customer_phone, did)
|
102
95
|
call(:create_v2_c_did, v2c_id: v2c_id, vendor_phone: vendor_phone, customer_phone: customer_phone, did: did)
|
103
96
|
end
|
104
97
|
|
98
|
+
# 解除V2C DID绑定
|
105
99
|
def self.delete_v2c_did(v2c_id)
|
106
100
|
call(:delete_v2_c_did, v2c_id: v2c_id)
|
107
101
|
end
|
108
102
|
|
103
|
+
# 根据V2C ID回拨
|
109
104
|
def self.callback_v2c_id(v2c_id)
|
110
105
|
call(:call_back_v2_c_id, v2c_id: v2c_id)
|
111
106
|
end
|
112
107
|
|
108
|
+
# 获取V2C ID
|
113
109
|
def self.get_v2c_id(vendor_phone, customer_phone, did)
|
114
110
|
call(:get_v2_cid, vendor_phone: vendor_phone, customer_phone: customer_phone, did: did)
|
115
111
|
end
|
116
112
|
|
117
|
-
|
113
|
+
# V2C ID通话记录查询
|
114
|
+
def self.get_cdrs(did, type, begintime, endtime, vendor_phone = nil, customer_phone = nil, page = 1, page_count = 10)
|
118
115
|
begintime = begintime.strftime("%Y-%m-%d %H:%M:%S") unless begintime.nil?
|
119
116
|
endtime = endtime.strftime("%Y-%m-%d %H:%M:%S") unless endtime.nil?
|
120
117
|
response = call(:get_v2_c_cdr,
|
@@ -140,7 +137,24 @@ module PolylinkApi
|
|
140
137
|
cdrs
|
141
138
|
end
|
142
139
|
|
143
|
-
def self.
|
140
|
+
def self.get_cdr_from_string(string)
|
141
|
+
cdr = {}
|
142
|
+
attributes = string.split(',')
|
143
|
+
cdr[:did] = attributes[0]
|
144
|
+
cdr[:v2c_id] = attributes[1]
|
145
|
+
cdr[:device_name] = attributes[2]
|
146
|
+
cdr[:calling_number] = attributes[3]
|
147
|
+
cdr[:called_number] = attributes[4]
|
148
|
+
cdr[:starttime] = attributes[5]
|
149
|
+
cdr[:duration] = attributes[6]
|
150
|
+
cdr[:endtime] = attributes[7]
|
151
|
+
cdr[:recordpath] = attributes[8]
|
152
|
+
cdr[:call_status] = attributes[9]
|
153
|
+
return cdr
|
154
|
+
end
|
155
|
+
|
156
|
+
# 下载录音文件
|
157
|
+
def self.get_cdr_file(file)
|
144
158
|
local_file = File.join(PolylinkApi.config.cdrs_path, file)
|
145
159
|
remote_file = PolylinkApi.config.download_server + file
|
146
160
|
unless File.exists?(local_file)
|
@@ -161,22 +175,7 @@ module PolylinkApi
|
|
161
175
|
local_file
|
162
176
|
end
|
163
177
|
|
164
|
-
|
165
|
-
cdr = {}
|
166
|
-
attributes = string.split(',')
|
167
|
-
cdr[:did] = attributes[0]
|
168
|
-
cdr[:v2c_id] = attributes[1]
|
169
|
-
cdr[:device_name] = attributes[2]
|
170
|
-
cdr[:calling_number] = attributes[3]
|
171
|
-
cdr[:called_number] = attributes[4]
|
172
|
-
cdr[:starttime] = attributes[5]
|
173
|
-
cdr[:duration] = attributes[6]
|
174
|
-
cdr[:endtime] = attributes[7]
|
175
|
-
cdr[:recordpath] = attributes[8]
|
176
|
-
cdr[:call_status] = attributes[9]
|
177
|
-
return cdr
|
178
|
-
end
|
179
|
-
|
178
|
+
#
|
180
179
|
def self.bind_did_default_phone(did, vendor_phone)
|
181
180
|
call(:bind_phone_by_vendor_did, vendor_did: did, phone: vendor_phone)
|
182
181
|
end
|
@@ -196,12 +195,42 @@ module PolylinkApi
|
|
196
195
|
did_phone = {}
|
197
196
|
attributes = item.split(',')
|
198
197
|
did_phone[:did] = attributes[0]
|
199
|
-
did_phone[:
|
198
|
+
did_phone[:default_phone] = attributes[1]
|
200
199
|
did_phones_list << did_phone
|
201
200
|
end
|
202
201
|
return did_phones_list
|
203
202
|
end
|
204
203
|
|
204
|
+
def self.bind_did_default_did(did, vendor_did)
|
205
|
+
call(:bindivr_by_vendor_did, vendor_did: did, ivr_did: vendor_did)
|
206
|
+
end
|
207
|
+
|
208
|
+
def self.unbind_did_default_did(did)
|
209
|
+
call(:deleteivr_by_vendor_did, vendor_did: did)
|
210
|
+
end
|
211
|
+
|
212
|
+
def self.get_did_default_dids_list
|
213
|
+
response = call(:get_vendor_did_ivr_did_list)
|
214
|
+
get_did_dids_from_string response
|
215
|
+
end
|
216
|
+
|
217
|
+
def self.get_did_dids_from_string(string)
|
218
|
+
did_dids_list = []
|
219
|
+
string.split(';').each do |item|
|
220
|
+
did_did = {}
|
221
|
+
attributes = item.split(',')
|
222
|
+
did_did[:did] = attributes[0]
|
223
|
+
did_did[:default_did] = attributes[1]
|
224
|
+
did_dids_list << did_did
|
225
|
+
end
|
226
|
+
return did_dids_list
|
227
|
+
end
|
228
|
+
|
229
|
+
def self.get_dids
|
230
|
+
response = call(:getivr_did_list)
|
231
|
+
return response.split(';')
|
232
|
+
end
|
233
|
+
|
205
234
|
def self.set_did_announcement(did, file)
|
206
235
|
if File.exists? file
|
207
236
|
data = File.read file
|
data/lib/polylink_api/version.rb
CHANGED
data/polylink_api.gemspec
CHANGED
@@ -6,12 +6,10 @@ describe "Helper" do
|
|
6
6
|
|
7
7
|
before(:all) do
|
8
8
|
response = PolylinkApi::Helper.create_v2c_did(binding_id, "18101801755", "18616015606", did)
|
9
|
-
expect(response).to be_nil
|
10
9
|
end
|
11
10
|
|
12
11
|
after(:all) do
|
13
12
|
response = PolylinkApi::Helper.delete_v2c_did(binding_id)
|
14
|
-
expect(response).to be_nil
|
15
13
|
end
|
16
14
|
|
17
15
|
it "should bind get client" do
|
@@ -78,7 +76,7 @@ describe "Helper" do
|
|
78
76
|
response = PolylinkApi::Helper.get_did_default_phones_list
|
79
77
|
expect(response).to be_an_instance_of(Array)
|
80
78
|
expect(response.length).to be >= 1
|
81
|
-
expect(response[0].keys).to eq([:did, :
|
79
|
+
expect(response[0].keys).to eq([:did, :default_phone])
|
82
80
|
response = PolylinkApi::Helper.unbind_did_default_phone(did)
|
83
81
|
expect(response).to be_nil
|
84
82
|
end
|
@@ -106,14 +104,14 @@ describe "Helper" do
|
|
106
104
|
end
|
107
105
|
|
108
106
|
it "should get cdr records" do
|
109
|
-
response = PolylinkApi::Helper.
|
107
|
+
response = PolylinkApi::Helper.get_cdrs(did, 1, Time.now - 2.hours, Time.now + 2.hours)
|
110
108
|
expect(response).to be_an_instance_of(Array)
|
111
109
|
expect(response.length).to be >= 1
|
112
110
|
end
|
113
111
|
|
114
112
|
it "should get cdr file" do
|
115
|
-
file_cdr = "
|
116
|
-
file = PolylinkApi::Helper.
|
113
|
+
file_cdr = "20150202/20150202162456_18101801755_18616015606_33190074_58.WAV"
|
114
|
+
file = PolylinkApi::Helper.get_cdr_file(file_cdr)
|
117
115
|
expect(file).to eq(File.join(PolylinkApi.config.cdrs_path, file_cdr))
|
118
116
|
expect(File.exists?(File.join(PolylinkApi.config.cdrs_path, file_cdr))).to be true
|
119
117
|
end
|
@@ -128,4 +126,21 @@ describe "Helper" do
|
|
128
126
|
response = PolylinkApi::Helper.remove_did_announcement(did)
|
129
127
|
expect(response).to be_nil
|
130
128
|
end
|
129
|
+
|
130
|
+
it "should get default did" do
|
131
|
+
response = PolylinkApi::Helper.bind_did_default_did(did, "33190084")
|
132
|
+
expect(response).to be_nil
|
133
|
+
response = PolylinkApi::Helper.get_did_default_dids_list
|
134
|
+
expect(response).to be_an_instance_of(Array)
|
135
|
+
expect(response.length).to be >= 1
|
136
|
+
expect(response[0].keys).to eq([:did, :default_did])
|
137
|
+
response = PolylinkApi::Helper.unbind_did_default_did(did)
|
138
|
+
expect(response).to be_nil
|
139
|
+
end
|
140
|
+
|
141
|
+
it "should get did default dids" do
|
142
|
+
response = PolylinkApi::Helper.get_dids
|
143
|
+
expect(response).to be_an_instance_of(Array)
|
144
|
+
expect(response.length).to be >= 1
|
145
|
+
end
|
131
146
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: polylink_api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- liuzelei
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-02-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -122,7 +122,7 @@ dependencies:
|
|
122
122
|
- - "~>"
|
123
123
|
- !ruby/object:Gem::Version
|
124
124
|
version: 4.0.0
|
125
|
-
description: "
|
125
|
+
description: "跟聚领对接的接口"
|
126
126
|
email:
|
127
127
|
- liuzelei@gmail.com
|
128
128
|
executables: []
|