marchex 0.1.2 → 0.1.3
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/README.md +54 -2
- data/lib/marchex.rb +36 -4
- data/lib/marchex/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0dd04c01da60af405506c24cc747523fdb9a8808
|
4
|
+
data.tar.gz: 4fedaf92eb9ffa1a8db6fd9e063587d191e60030
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6ce053b434135452bbf8a474e9ae5d0d23ca53a3b1b8b85388892181cd6efa5ec86408c687907e3277d0b5d182cbffa76703db5619e30e4c845f74dc7cd6190c
|
7
|
+
data.tar.gz: 54f5ac131288ea78fbca2b9251f027cf1bb99043ef722948fd7f3fa8c08b58a56cf5ec50c837d85bcf243dbe2876c81034c4c8936912b99d49cd64209e323685
|
data/README.md
CHANGED
@@ -44,9 +44,61 @@ Create a connection using your Marchex account email address and password:
|
|
44
44
|
# @testcon.ad_custom_define(acc_id,field_number, field_name, field_type, field_values)
|
45
45
|
Define a custom field for an ad
|
46
46
|
|
47
|
-
# @ad_custom_set(acc_id, campaign_id, field_name, field_value)
|
47
|
+
# @testcon.ad_custom_set(acc_id, campaign_id, field_name, field_value)
|
48
48
|
Set the value of a custom field. For boolean, use yes/no
|
49
49
|
|
50
|
+
# @testcon.call_search(search_options)
|
51
|
+
search_options = {}
|
52
|
+
search_options[:acct_id] Required string. The unique, system-generated account ID of the specified account.
|
53
|
+
|
54
|
+
search_options[:start] Optional (but recommended) strings. The start and end date/time of the search.
|
55
|
+
search_options[:end]
|
56
|
+
|
57
|
+
search_options[:assto] Optional string. The unique, system-generated user ID of the user assigned to the call.
|
58
|
+
|
59
|
+
search_options[:call_boundary] Optional string. Indicates whether to use the start date and time or the end date and time of the call to determine if
|
60
|
+
the call is within the dates and times specified in the start and end parameters.
|
61
|
+
|
62
|
+
search_options[:callerid] Optional string. The caller ID.
|
63
|
+
|
64
|
+
search_options[:cmpid] Optional string. The unique, system-generated campaign ID.
|
65
|
+
|
66
|
+
search_options[:dispo] Optional string. A tag added to call(s) in the call log
|
67
|
+
|
68
|
+
search_options[:dna_class] Optional string. The Call DNA classification of the call. (Conversation, Voicemail, Wrong Number, Hold-Time Abandon, IVR/Voicemail Abandon, Ring Transfer Abandon, Unknown)
|
69
|
+
|
70
|
+
search_options[:exact_times] Optional boolean. Indicates that the start and end parameters contain a datetime value.
|
71
|
+
|
72
|
+
search_options[:extended] Optional string. If not included or false, the response includes only basic information about each call
|
73
|
+
|
74
|
+
search_options[:grpid] Optional string, which can contain up to 16 characters. The unique, system-generated group ID of the ad group
|
75
|
+
for the call.
|
76
|
+
|
77
|
+
search_options[:include_dna] Optional boolean. If not included or false, Call DNA information is not returned in the results
|
78
|
+
|
79
|
+
search_options[:include_spotted_keywords] Optional boolean. If not included or false, the "spotted" keywords are not returned in the results.
|
80
|
+
|
81
|
+
search_options[:keyword] Optional string. The keyword or the Custom URL Parameter (if specified in the dynamic tracking rewrite) asso-
|
82
|
+
ciated with the call.
|
83
|
+
|
84
|
+
search_options[:min_duration_secs] Optional integer. The minimum number of seconds of the call duration
|
85
|
+
|
86
|
+
search_options[:status] Optional string. The status of the call. ANswer, BUSY, CANCEL or HANGUP, CONGESTION, NOANSWER, NOFORWARDS, VOICEMAIL, WINDDOWN
|
87
|
+
|
88
|
+
search_options[:spotted_keywords] Optional object. If specified, only calls containing one or more of the specified call transcription keywords are
|
89
|
+
returned. The spotted_keywords parameter is independent of include_spotted_keywords. agent - Filter the calls based on keywords spoken by the agent. caller - Filter the calls based on keywords spoken by the caller.
|
90
|
+
Example: spotted_keywords = {}
|
91
|
+
spotted_keywords[:agent] = ['keyword1', 'keyword2', 'keyword3']
|
92
|
+
spotted_keywords[:caller] = ['keyword1', 'keyword2', 'keyword']
|
93
|
+
|
94
|
+
search_options[:subacct] Optional boolean. true to search all calls in all client accounts of the specified parent account.
|
95
|
+
|
96
|
+
# @testcon.get_call(call_id)
|
97
|
+
Return details for a single call
|
98
|
+
|
99
|
+
# @testcon.get_call_audio(call_id, audio_format)
|
100
|
+
Gets a Base64-encoded string that contains the audio data of the specified call, in the specified format. (mp3 or wav)
|
101
|
+
|
50
102
|
## Development
|
51
103
|
|
52
104
|
After checking out the repo, run `bin/setup` to install dependencies. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
|
@@ -55,7 +107,7 @@ To install this gem onto your local machine, run `bundle exec rake install`. To
|
|
55
107
|
|
56
108
|
## Contributing
|
57
109
|
|
58
|
-
Bug reports and pull requests are welcome on GitHub at https://github.com/
|
110
|
+
Bug reports and pull requests are welcome on GitHub at https://github.com/mhoskiso/marchex.
|
59
111
|
|
60
112
|
|
61
113
|
## License
|
data/lib/marchex.rb
CHANGED
@@ -10,7 +10,8 @@ require 'rest-client'
|
|
10
10
|
|
11
11
|
module Marchex
|
12
12
|
class Marchexapi
|
13
|
-
|
13
|
+
|
14
|
+
#RestClient.log = 'stdout' #Debugging API calls
|
14
15
|
|
15
16
|
def initialize(u, p)
|
16
17
|
@url = 'https://userapi.voicestar.com/api/jsonrpc/1'
|
@@ -62,9 +63,40 @@ module Marchex
|
|
62
63
|
return response.body["result"]
|
63
64
|
end
|
64
65
|
|
65
|
-
|
66
|
-
|
67
|
-
|
66
|
+
def call_search ( opts = {})
|
67
|
+
search_options = {}
|
68
|
+
search_options[:start] = opts[:start] if opts[:start]
|
69
|
+
search_options[:end] = opts[:end] if opts[:end]
|
70
|
+
search_options[:assto] = opts[:assto] if opts[:assto]
|
71
|
+
search_options[:call_boundary] = opts[:call_boundary] if opts[:call_boundary]
|
72
|
+
search_options[:callerid] = opts[:callerid] if opts[:callerid]
|
73
|
+
search_options[:cmpid] = opts[:cmpid] if opts[:cmpid]
|
74
|
+
search_options[:dispo] = opts[:dispo] if opts[:dispo]
|
75
|
+
search_options[:dna_class] = opts[:dna_class] if opts[:dna_class]
|
76
|
+
search_options[:exact_times] = opts[:exact_times] if opts[:exact_times]
|
77
|
+
search_options[:extended] = opts[:extended] if opts[:extended]
|
78
|
+
search_options[:exact_times] = true if opts[:extended] == true
|
79
|
+
search_options[:grpid] = opts[:grpid] if opts[:grpid]
|
80
|
+
search_options[:include_dna] = opts[:include_dna] if opts[:include_dna]
|
81
|
+
search_options[:include_spotted_keywords] = opts[:include_spotted_keywords] if opts[:include_spotted_keywords]
|
82
|
+
search_options[:keyword] = opts[:keyword] if opts[:keyword]
|
83
|
+
search_options[:min_duration_secs] = opts[:min_duration_secs] if opts[:min_duration_secs]
|
84
|
+
search_options[:status] = opts[:status] if opts[:status]
|
85
|
+
search_options[:spotted_keywords] = opts[:spotted_keywords] if opts[:spotted_keywords]
|
86
|
+
search_options[:subacct] = opts[:subacct] if opts[:subacct]
|
87
|
+
response = parse_json(RestClient.post(@url, {'jsonrpc' => '2.0', 'id' => '1', 'method' => 'call.search', 'params' => [opts[:acct_id], search_options ]}.to_json, :content_type => 'application/json', :accept => 'application/json', :Authorization => $auth))
|
88
|
+
return response.body["result"]
|
89
|
+
end
|
68
90
|
|
91
|
+
def get_call (call_id)
|
92
|
+
response = parse_json(RestClient.post(@url, {'jsonrpc' => '2.0', 'id' => '1', 'method' => 'call.get', 'params' => [call_id]}.to_json, :content_type => 'application/json', :accept => 'application/json', :Authorization => $auth))
|
93
|
+
return response.body["result"]
|
94
|
+
end
|
69
95
|
|
96
|
+
def get_call_audio(call_id, audio_format)
|
97
|
+
response = parse_json(RestClient.post(@url, {'jsonrpc' => '2.0', 'id' => '1', 'method' => 'call.audio', 'params' => [call_id, audio_format]}.to_json, :content_type => 'application/json', :accept => 'application/json', :Authorization => $auth))
|
98
|
+
return response.body["result"]
|
99
|
+
end
|
70
100
|
|
101
|
+
end
|
102
|
+
end
|
data/lib/marchex/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: marchex
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Michael Hoskison
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-12-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|