alucma 1.0.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 2428ca957935488b539453cc903f87b13e348e3b
4
+ data.tar.gz: 62b1ad3ef3dd6dd63ffce2f2d3a1e5f4d0ab5d6a
5
+ SHA512:
6
+ metadata.gz: 285a07c0c697b0c9a0643a035ca0465b724779018ef5c2b2c6d6dec7ac665e2a5d45bb3694201bbb91976891a076d5846681dc80731877cbd680c10a94e3853b
7
+ data.tar.gz: 88a4632e02266ac9f1ce5032234305098e33771c39bf6f38fe65a7008f72bd44e3ce6e1e13c50f32925aa57ee217f2d6206b210119e20fbd8d81673d7af4191b
@@ -0,0 +1,43 @@
1
+ class Client
2
+ attr_accessor :headers
3
+
4
+ def initialize(args={})
5
+ self.headers = {
6
+ "Authorization" => "Bearer #{args["access_token"]}",
7
+ "Content-Type" => "application/json"
8
+ }
9
+ end
10
+
11
+ def make_call(phonenumber,displayname)
12
+ return Http.post("http://api.foundry.att.net:9001/a1/nca/callcontrol/call/#{phonenumber}", self.headers, {
13
+ "p1_displayName" => "#{displayname}",
14
+ "announcement" => "http://www.freshsupercool.com/wp-content/uploads/2015/11/Silent.wav"
15
+ }.to_json)
16
+ end
17
+
18
+ def subscribe_to_call(session_id,callback_url)
19
+ return Http.post("http://api.foundry.att.net:9001/a1/nca/interaction/subscribe", self.headers, {
20
+ "sessionId": session_id,
21
+ "notifyURL": callback_url,
22
+ "type": "play"
23
+ }.to_json)
24
+ end
25
+
26
+ def play_recording_to_call_participant(session_id,party_phonenumber,recording)
27
+ return Http.post("http://api.foundry.att.net:9001/a1/nca/interaction/play", self.headers, {
28
+ "sessionId":session_id,
29
+ "callPartyL": [party_phonenumber],
30
+ "playURL": recording,
31
+ "playFormat": "audio"
32
+ }.to_json)
33
+ end
34
+
35
+ def call_and_ask_numeric_input(phonenumber,displayname,recording,callback_url)
36
+ resp = make_call(phonenumber,displayname)
37
+ sleep 6
38
+ if resp["sessionId"]
39
+ resp2 = subscribe_to_call(resp["sessionId"],callback_url)
40
+ resp3 = play_recording_to_call_participant(phonenumber,recording)
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,24 @@
1
+ class Http
2
+ def self.post(url, headers, payload)
3
+ begin
4
+ uri = URI.parse(url)
5
+ http = Net::HTTP.new(uri.host,uri.port)
6
+
7
+ path = uri.path
8
+ path = "#{path}?#{uri.query}" if uri.query
9
+
10
+ req = Net::HTTP::Post.new(path)
11
+ req.body = payload
12
+
13
+ headers.each do |k,v|
14
+ req[k] = v
15
+ end
16
+
17
+ res = http.request(req)
18
+ return res.body
19
+ rescue => e
20
+ puts e.to_s
21
+ return false
22
+ end
23
+ end
24
+ end
data/lib/alucma.rb ADDED
@@ -0,0 +1,29 @@
1
+ require 'net/http'
2
+ require 'json'
3
+ require 'alucma/http'
4
+ require 'alucma/client'
5
+
6
+ class ALUCMA
7
+ def self.init(hash)
8
+ if !hash.class == "Hash"
9
+ return { :error => "Invalid input. Input must be a hash." }
10
+ end
11
+
12
+ if !hash[:client_id] || !hash[:client_secret]
13
+ return { :error => "Missing parameters. Must Client ID and Client Secret" }
14
+ end
15
+
16
+ url = "http://api.foundry.att.net:9001/oauth/client_credential/accesstoken?grant_type=client_credentials"
17
+ headers = { "Content-Type" => "application/x-www-form-urlencoded" }
18
+ payload = "client_id=#{hash[:client_id]}&client_secret=#{hash[:client_secret]}"
19
+
20
+ resp = Http.post(url,headers,payload)
21
+ auth = JSON.parse(resp) || {}
22
+ if auth["status"] == "approved"
23
+ return Client.new(auth)
24
+ else
25
+ return { :error => "OAuth not approved." }
26
+ end
27
+ end
28
+ end
29
+
metadata ADDED
@@ -0,0 +1,46 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: alucma
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.4
5
+ platform: ruby
6
+ authors:
7
+ - Pulak Khurana (Nick)
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-11-10 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description: Wrapper for alcatel-lucent call management APIs
14
+ email: khurananick@gmail.com
15
+ executables: []
16
+ extensions: []
17
+ extra_rdoc_files: []
18
+ files:
19
+ - lib/alucma.rb
20
+ - lib/alucma/client.rb
21
+ - lib/alucma/http.rb
22
+ homepage: https://github.com/khurananick/alucma
23
+ licenses:
24
+ - MIT
25
+ metadata: {}
26
+ post_install_message:
27
+ rdoc_options: []
28
+ require_paths:
29
+ - lib
30
+ required_ruby_version: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - ">="
33
+ - !ruby/object:Gem::Version
34
+ version: '0'
35
+ required_rubygems_version: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - ">="
38
+ - !ruby/object:Gem::Version
39
+ version: '0'
40
+ requirements: []
41
+ rubyforge_project:
42
+ rubygems_version: 2.4.6
43
+ signing_key:
44
+ specification_version: 4
45
+ summary: Wrapper for alcatel-lucent call management APIs
46
+ test_files: []