asterisk-ari-client 0.0.1 → 0.0.2

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 85b27638324674e15bd2f5220dc966c300ca2784
4
- data.tar.gz: 5550be4213033e9599c04ec67ffede7c2bfa8ad3
3
+ metadata.gz: 913eef1e5760c777527e334f409d67c1750c51e5
4
+ data.tar.gz: 351129e33ec99c3252593725ede8c71fd0928246
5
5
  SHA512:
6
- metadata.gz: ee5e99c5b46cfe4c15e290a823ab4263d9a0547c980cb14799b792a4e856686464ae5624e1b5676d4619b0c49ab57b786b5b3bc246ae408e55fb387346b994a4
7
- data.tar.gz: fa4a32b9192197a9f9ec2a1631db0d839b67b0c763775c83e7b68be6a966e32bf8bc3e7884cb791f8d039af5d67f042a823f063b333b3e841c63f837852c1f4f
6
+ metadata.gz: 42c535bf79eff0b97a6477e88dff76de43bc5e5c2bceffff4d553c7ff926365b7e9d434cbf4649a8a72c026da85db4dd43f4a50c874a5f4fd27265e3d3b305f1
7
+ data.tar.gz: 4bcc3f65c9057cb5f2a9c79c314c1e5e77dfc2be9fa04bc3e1957aed9781e1f96662013cc128122948e2279d8d24d199d9a60b5e60ca39ea4e68217e68245a72
data/.gitignore CHANGED
@@ -1,14 +1,69 @@
1
- /.bundle/
2
- /.yardoc
3
- /Gemfile.lock
4
- /_yardoc/
5
- /coverage/
6
- /doc/
7
- /pkg/
8
- /spec/reports/
9
- /tmp/
10
- *.bundle
11
- *.so
1
+ # Compiled source #
2
+ ###################
3
+ *.com
4
+ *.class
5
+ *.dll
6
+ *.exe
12
7
  *.o
13
- *.a
14
- mkmf.log
8
+ *.so
9
+
10
+ # Packages #
11
+ ############
12
+ # it's better to unpack these files and commit the raw source
13
+ # git has its own built in compression methods
14
+ *.7z
15
+ *.dmg
16
+ *.gz
17
+ *.iso
18
+ *.jar
19
+ *.rar
20
+ *.tar
21
+ *.zip
22
+
23
+ # Logs and databases #
24
+ ######################
25
+ *.log
26
+ *.sql
27
+ *.sqlite
28
+ *.sqlite3
29
+
30
+ # OS generated files #
31
+ ######################
32
+ .DS_Store
33
+ .DS_Store?
34
+ ._*
35
+ .Spotlight-V100
36
+ .Trashes
37
+ ehthumbs.db
38
+ Thumbs.db
39
+
40
+ # Rails
41
+ *.rbc
42
+ *.sassc
43
+ .sass-cache
44
+ capybara-*.html
45
+ .rspec
46
+ /log
47
+ /tmp
48
+ /db/*.sqlite3
49
+ /public/system
50
+ /coverage/
51
+ /spec/tmp
52
+ **.orig
53
+ rerun.txt
54
+ pickle-email-*.html
55
+ config/initializers/secret_token.rb
56
+ config/secrets.yml
57
+
58
+ ## Environment normalisation:
59
+ /.bundle
60
+ /vendor/bundle
61
+
62
+ # these should all be checked in to normalise the environment:
63
+ # Gemfile.lock, .ruby-version, .ruby-gemset
64
+
65
+ # unless supporting rvm < 1.11.0 or doing something fancy, ignore this:
66
+ .rvmrc
67
+
68
+ pkg/*
69
+ Gemfile.lock
data/.travis.yml ADDED
@@ -0,0 +1,8 @@
1
+ language: ruby
2
+ rvm:
3
+ - 1.9.3
4
+ - 2.0.0
5
+ - 2.1.0
6
+ - jruby
7
+ - rbx-2.1.1
8
+ - ruby-head
data/README.md CHANGED
@@ -1,3 +1,5 @@
1
+ [![Build Status](https://secure.travis-ci.org/svoboda-jan/asterisk-ari.png?branch=master)](http://travis-ci.org/svoboda-jan/asterisk-ari)
2
+
1
3
  # About
2
4
 
3
5
  This repository contains the ruby client library for the Asterisk REST Interface (ARI).
data/Rakefile CHANGED
@@ -52,3 +52,10 @@ task :generate do
52
52
  models_file.close
53
53
 
54
54
  end
55
+
56
+ require 'rake/testtask'
57
+ Rake::TestTask.new do |t|
58
+ t.pattern = "test/**/*_test.rb"
59
+ end
60
+
61
+ task :default => :test
@@ -25,7 +25,7 @@ Gem::Specification.new do |spec|
25
25
  spec.add_development_dependency "vcr", "~> 2.9.3"
26
26
  spec.add_development_dependency "webmock", "~> 1.19.0"
27
27
 
28
- spec.add_development_dependency "active_support", "~> 4.1.6"
28
+ spec.add_development_dependency "activesupport", "~> 4.1.6"
29
29
 
30
30
  spec.add_dependency "websocket-client-simple", "~> 0.2.0"
31
31
  spec.add_dependency "event_emitter", "~> 0.2.5"
data/lib/ari/client.rb CHANGED
@@ -16,7 +16,7 @@ module Ari
16
16
  }
17
17
 
18
18
  HTTP_HEADERS = {
19
- 'Content-Type' => 'json',
19
+ 'Content-Type' => 'application/json',
20
20
  'Accept' => 'application/json',
21
21
  'Accept-Charset' => 'utf-8',
22
22
  'User-Agent' => "asterisk-ari-client/#{::Asterisk::Ari::Client::VERSION} ruby/#{RUBY_VERSION}"
@@ -31,10 +31,12 @@ module Ari
31
31
  %w{ get put post delete }.each do |http_method|
32
32
  method_klass = Net::HTTP.const_get http_method.to_s.capitalize
33
33
  define_method http_method do |path, params = {}|
34
+ request_body = params.delete(:body)
34
35
  params.merge!({ api_key: @options[:api_key], app: @options[:app] })
35
36
  query_string = URI.encode_www_form params
36
37
  request_path = "#{@uri.path}#{path}?#{query_string}"
37
38
  request = method_klass.new request_path, HTTP_HEADERS
39
+ request.body = request_body.is_a?(Hash) ? MultiJson.dump(request_body) : request_body
38
40
  send_request request
39
41
  end
40
42
  end
@@ -1,7 +1,7 @@
1
1
  module Asterisk
2
2
  module Ari
3
3
  module Client
4
- VERSION = "0.0.1"
4
+ VERSION = "0.0.2"
5
5
  end
6
6
  end
7
7
  end
@@ -0,0 +1,144 @@
1
+ {
2
+ "http_interactions": [
3
+ {
4
+ "request": {
5
+ "method": "post",
6
+ "uri": "http://192.168.1.23:8088/ari/channels?api_key=asterisk:asterisk&app=dialplan&client=%23%3CAri::Client:0x007fe2092d9d88%3E&endpoint=PJSIP/1ca410-mac&extension=11",
7
+ "body": {
8
+ "encoding": "UTF-8",
9
+ "string": "{\"variables\":{\"my_var\":\"my_value\"}}"
10
+ },
11
+ "headers": {
12
+ "Content-Type": [
13
+ "application/json"
14
+ ],
15
+ "Accept": [
16
+ "application/json"
17
+ ],
18
+ "Accept-Charset": [
19
+ "utf-8"
20
+ ],
21
+ "User-Agent": [
22
+ "asterisk-ari-client/0.0.1 ruby/2.2.0"
23
+ ],
24
+ "Accept-Encoding": [
25
+ "gzip;q=1.0,deflate;q=0.6,identity;q=0.3"
26
+ ]
27
+ }
28
+ },
29
+ "response": {
30
+ "status": {
31
+ "code": 200,
32
+ "message": "OK"
33
+ },
34
+ "headers": {
35
+ "Server": [
36
+ "Asterisk/12.5.0"
37
+ ],
38
+ "Date": [
39
+ "Mon, 13 Oct 2014 00:20:01 GMT"
40
+ ],
41
+ "Connection": [
42
+ "close"
43
+ ],
44
+ "Cache-Control": [
45
+ "no-cache, no-store"
46
+ ],
47
+ "Content-Type": [
48
+ "application/json"
49
+ ],
50
+ "Content-Length": [
51
+ "299"
52
+ ]
53
+ },
54
+ "body": {
55
+ "encoding": "UTF-8",
56
+ "string": {
57
+ "id": "1413159601.264",
58
+ "state": "Down",
59
+ "name": "PJSIP/1ca410-mac-00000059",
60
+ "caller": {
61
+ "name": "",
62
+ "number": ""
63
+ },
64
+ "connected": {
65
+ "name": "",
66
+ "number": ""
67
+ },
68
+ "accountcode": "1ca4106c-20b2-11e4-9f50-03cba5fbf325",
69
+ "dialplan": {
70
+ "context": "default",
71
+ "exten": "s",
72
+ "priority": 1
73
+ },
74
+ "creationtime": "2014-10-13T00:20:01.629+0000"
75
+ }
76
+ },
77
+ "http_version": null
78
+ },
79
+ "recorded_at": "Wed, 15 Oct 2014 22:33:37 GMT"
80
+ },
81
+ {
82
+ "request": {
83
+ "method": "get",
84
+ "uri": "http://192.168.1.23:8088/ari/channels/1413159601.264/variable?api_key=asterisk:asterisk&app=dialplan&channelId=1413159601.264&client=%23%3CAri::Client:0x007fe2092d9d88%3E&variable=my_var",
85
+ "body": {
86
+ "encoding": "US-ASCII",
87
+ "string": ""
88
+ },
89
+ "headers": {
90
+ "Content-Type": [
91
+ "application/json"
92
+ ],
93
+ "Accept": [
94
+ "application/json"
95
+ ],
96
+ "Accept-Charset": [
97
+ "utf-8"
98
+ ],
99
+ "User-Agent": [
100
+ "asterisk-ari-client/0.0.1 ruby/2.2.0"
101
+ ],
102
+ "Accept-Encoding": [
103
+ "gzip;q=1.0,deflate;q=0.6,identity;q=0.3"
104
+ ]
105
+ }
106
+ },
107
+ "response": {
108
+ "status": {
109
+ "code": 200,
110
+ "message": "OK"
111
+ },
112
+ "headers": {
113
+ "Server": [
114
+ "Asterisk/12.5.0"
115
+ ],
116
+ "Date": [
117
+ "Mon, 13 Oct 2014 00:20:05 GMT"
118
+ ],
119
+ "Connection": [
120
+ "close"
121
+ ],
122
+ "Cache-Control": [
123
+ "no-cache, no-store"
124
+ ],
125
+ "Content-Type": [
126
+ "application/json"
127
+ ],
128
+ "Content-Length": [
129
+ "20"
130
+ ]
131
+ },
132
+ "body": {
133
+ "encoding": "UTF-8",
134
+ "string": {
135
+ "value": "my_value"
136
+ }
137
+ },
138
+ "http_version": null
139
+ },
140
+ "recorded_at": "Wed, 15 Oct 2014 22:33:41 GMT"
141
+ }
142
+ ],
143
+ "recorded_with": "VCR 2.9.3"
144
+ }
@@ -56,4 +56,22 @@ class TestChannel < Minitest::Test
56
56
  end
57
57
  end
58
58
 
59
+ def test_originate_with_channel_vars
60
+ VCR.use_cassette 'channel_originate_with_channel_vars' do
61
+ channel = @client.channels.originate({
62
+ endpoint: 'PJSIP/1ca410-mac',
63
+ extension: 11,
64
+ body: { variables: { my_var: 'my_value' } }
65
+ })
66
+
67
+ assert_kind_of Ari::Channel, channel
68
+
69
+ # TODO here channel needs to be in Stasis app (answered)
70
+
71
+ channel_var = channel.get_channel_var variable: 'my_var'
72
+
73
+ assert_equal 'my_value', channel_var.value
74
+ end
75
+ end
76
+
59
77
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: asterisk-ari-client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jan Svoboda
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-10-11 00:00:00.000000000 Z
11
+ date: 2014-10-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -81,7 +81,7 @@ dependencies:
81
81
  - !ruby/object:Gem::Version
82
82
  version: 1.19.0
83
83
  - !ruby/object:Gem::Dependency
84
- name: active_support
84
+ name: activesupport
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
87
  - - "~>"
@@ -130,6 +130,7 @@ extensions: []
130
130
  extra_rdoc_files: []
131
131
  files:
132
132
  - ".gitignore"
133
+ - ".travis.yml"
133
134
  - Gemfile
134
135
  - LICENSE.txt
135
136
  - README.md
@@ -221,9 +222,9 @@ files:
221
222
  - test/fixtures/bridges_list.json
222
223
  - test/fixtures/channel_get.json
223
224
  - test/fixtures/channel_originate.json
225
+ - test/fixtures/channel_originate_with_channel_vars.json
224
226
  - test/fixtures/channel_originate_with_id.json
225
227
  - test/fixtures/channels_list.json
226
- - test/lib/asterisk-ari-client/.DS_Store
227
228
  - test/lib/asterisk-ari-client/bridge_test.rb
228
229
  - test/lib/asterisk-ari-client/channel_test.rb
229
230
  - test/test_helper.rb
@@ -257,9 +258,9 @@ test_files:
257
258
  - test/fixtures/bridges_list.json
258
259
  - test/fixtures/channel_get.json
259
260
  - test/fixtures/channel_originate.json
261
+ - test/fixtures/channel_originate_with_channel_vars.json
260
262
  - test/fixtures/channel_originate_with_id.json
261
263
  - test/fixtures/channels_list.json
262
- - test/lib/asterisk-ari-client/.DS_Store
263
264
  - test/lib/asterisk-ari-client/bridge_test.rb
264
265
  - test/lib/asterisk-ari-client/channel_test.rb
265
266
  - test/test_helper.rb
Binary file