freeswitcher 0.5.10 → 0.5.11
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.
- data/lib/fsr/cmd/sched_hangup.rb +1 -1
- data/lib/fsr/cmd/sched_transfer.rb +29 -0
- data/lib/fsr/cmd/uuid_transfer.rb +30 -0
- data/lib/fsr/version.rb +1 -1
- data/spec/fsr/cmd/sched_hangup.rb +2 -2
- data/spec/fsr/cmd/sched_transfer.rb +26 -0
- data/spec/fsr/cmd/uuid_transfer.rb +27 -0
- data/spec/fsr/loading.rb +1 -1
- metadata +9 -3
data/lib/fsr/cmd/sched_hangup.rb
CHANGED
@@ -0,0 +1,29 @@
|
|
1
|
+
require "fsr/app"
|
2
|
+
module FSR
|
3
|
+
module Cmd
|
4
|
+
class SchedTransfer < Command
|
5
|
+
DEFAULTS = {when: 1, context: "default", dialplan: 'xml'}
|
6
|
+
def initialize(fs_socket = nil, args = {})
|
7
|
+
@fs_socket = fs_socket # FSR::CommandSocket obj
|
8
|
+
args = DEFAULTS.merge(args)
|
9
|
+
@when, @uuid, @to, @context, @dialplan = args.values_at(:when, :uuid, :to, :context, :dialplan)
|
10
|
+
raise(ArgumentError, "No uuid given") unless @uuid
|
11
|
+
raise(ArgumentError, "No to: extension given") unless @to
|
12
|
+
end
|
13
|
+
|
14
|
+
# Send the command to the event socket, using bgapi by default.
|
15
|
+
def run(api_method = :api)
|
16
|
+
orig_command = "%s %s" % [api_method, raw]
|
17
|
+
Log.debug "saying #{orig_command}"
|
18
|
+
@fs_socket.say(orig_command)
|
19
|
+
end
|
20
|
+
|
21
|
+
# This method builds the API command to send to the freeswitch event socket
|
22
|
+
def raw
|
23
|
+
"sched_transfer +#{@when} #{@uuid} #{@to} #{@dialplan} #{@context}"
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
register(:sched_transfer, SchedTransfer)
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
require "fsr/app"
|
2
|
+
module FSR
|
3
|
+
module Cmd
|
4
|
+
class UuidTransfer < Command
|
5
|
+
DEFAULTS = {both: false, context: "default", dialplan: 'xml'}
|
6
|
+
def initialize(fs_socket = nil, args = {})
|
7
|
+
@fs_socket = fs_socket # FSR::CommandSocket obj
|
8
|
+
args = DEFAULTS.merge(args)
|
9
|
+
both, @uuid, @to, @context, @dialplan = args.values_at(:both, :uuid, :to, :context, :dialplan)
|
10
|
+
@leg = both ? '-both' : '-bleg'
|
11
|
+
raise(ArgumentError, "No uuid given") unless @uuid
|
12
|
+
raise(ArgumentError, "No to: extension given") unless @to
|
13
|
+
end
|
14
|
+
|
15
|
+
# Send the command to the event socket, using bgapi by default.
|
16
|
+
def run(api_method = :api)
|
17
|
+
orig_command = "%s %s" % [api_method, raw]
|
18
|
+
Log.debug "saying #{orig_command}"
|
19
|
+
@fs_socket.say(orig_command)
|
20
|
+
end
|
21
|
+
|
22
|
+
# This method builds the API command to send to the freeswitch event socket
|
23
|
+
def raw
|
24
|
+
"uuid_transfer #{@uuid} #{@leg} #{@to} #{@dialplan} #{@context}"
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
register(:uuid_transfer, UuidTransfer)
|
29
|
+
end
|
30
|
+
end
|
data/lib/fsr/version.rb
CHANGED
@@ -2,7 +2,7 @@ require './spec/helper'
|
|
2
2
|
require "fsr/cmd"
|
3
3
|
FSR::Cmd.load_command("sched_hangup")
|
4
4
|
|
5
|
-
describe "Testing FSR::Cmd::
|
5
|
+
describe "Testing FSR::Cmd::SchedHangup" do
|
6
6
|
## Scheduled Hangup ##
|
7
7
|
it "FSR::Cmd::SchedHangup should schedule a hangup with default " do
|
8
8
|
cmd = FSR::Cmd::SchedHangup.new nil, uuid: 1234
|
@@ -29,7 +29,7 @@ describe "Testing FSR::Cmd::Callcenter" do
|
|
29
29
|
cmd.raw.should == 'sched_hangup +1 1234 "Say \"WHAT?\""'
|
30
30
|
end
|
31
31
|
|
32
|
-
it "FSR::Cmd::SchedHangup should raise " do
|
32
|
+
it "FSR::Cmd::SchedHangup should raise when it doesn't get a uuid" do
|
33
33
|
lambda { cmd = FSR::Cmd::SchedHangup.new nil, cause: "No Reason" }.should.raise ArgumentError
|
34
34
|
end
|
35
35
|
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
require './spec/helper'
|
2
|
+
require "fsr/cmd"
|
3
|
+
FSR::Cmd.load_command("sched_transfer")
|
4
|
+
|
5
|
+
describe "Testing FSR::Cmd::SchedTransfer" do
|
6
|
+
## Scheduled Transfer ##
|
7
|
+
it "FSR::Cmd::SchedTransfer should schedule a Transfer with defaults" do
|
8
|
+
cmd = FSR::Cmd::SchedTransfer.new nil, uuid: 1234, to: "5555"
|
9
|
+
cmd.raw.should == 'sched_transfer +1 1234 5555 xml default'
|
10
|
+
end
|
11
|
+
|
12
|
+
it "FSR::Cmd::SchedTransfer should schedule a hangup with user-supplied time " do
|
13
|
+
cmd = FSR::Cmd::SchedTransfer.new nil, uuid: 1234, to: "5555", when: 60
|
14
|
+
cmd.raw.should == 'sched_transfer +60 1234 5555 xml default'
|
15
|
+
end
|
16
|
+
|
17
|
+
it "FSR::Cmd::SchedHangup should schedule a hangup with user-supplied context" do
|
18
|
+
cmd = FSR::Cmd::SchedTransfer.new nil, uuid: 1234, context: "my_context", to: "5555"
|
19
|
+
cmd.raw.should == 'sched_transfer +1 1234 5555 xml my_context'
|
20
|
+
end
|
21
|
+
|
22
|
+
it "FSR::Cmd::SchedTransfer should raise when not given uuid or to: extension" do
|
23
|
+
lambda { cmd = FSR::Cmd::SchedTransfer.new nil, to: '5555' }.should.raise ArgumentError
|
24
|
+
lambda { cmd = FSR::Cmd::SchedTransfer.new nil, uuid: 1234 }.should.raise ArgumentError
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
require './spec/helper'
|
2
|
+
require "fsr/cmd"
|
3
|
+
FSR::Cmd.load_command("uuid_transfer")
|
4
|
+
|
5
|
+
describe "Testing FSR::Cmd::UuidTransfer" do
|
6
|
+
## UUID Transfer ##
|
7
|
+
#uuid_transfer <uuid> [-bleg|-both] <dest-exten> [<dialplan>] [<context>]
|
8
|
+
it "FSR::Cmd::UuidTransfer should Transfer with defaults" do
|
9
|
+
cmd = FSR::Cmd::UuidTransfer.new nil, uuid: 1234, to: "5555"
|
10
|
+
cmd.raw.should == 'uuid_transfer 1234 -bleg 5555 xml default'
|
11
|
+
end
|
12
|
+
|
13
|
+
it "FSR::Cmd::UuidTransfer should transfer with user-supplied context" do
|
14
|
+
cmd = FSR::Cmd::UuidTransfer.new nil, uuid: 1234, context: "my_context", to: "5555"
|
15
|
+
cmd.raw.should == 'uuid_transfer 1234 -bleg 5555 xml my_context'
|
16
|
+
end
|
17
|
+
|
18
|
+
it "FSR::Cmd::UuidTransfer should transfer both legs" do
|
19
|
+
cmd = FSR::Cmd::UuidTransfer.new nil, uuid: 1234, both: true, to: "5555"
|
20
|
+
cmd.raw.should == 'uuid_transfer 1234 -both 5555 xml default'
|
21
|
+
end
|
22
|
+
|
23
|
+
it "FSR::Cmd::UuidTransfer should raise when not given uuid or to: extension" do
|
24
|
+
lambda { cmd = FSR::Cmd::UuidTransfer.new nil, to: '5555' }.should.raise ArgumentError
|
25
|
+
lambda { cmd = FSR::Cmd::UuidTransfer.new nil, uuid: 1234 }.should.raise ArgumentError
|
26
|
+
end
|
27
|
+
end
|
data/spec/fsr/loading.rb
CHANGED
@@ -16,7 +16,7 @@ describe "Testing FSR module loading methods" do
|
|
16
16
|
|
17
17
|
# When you add commands you must modify the expected cmds_loaded behavior
|
18
18
|
it "Loads all commands" do
|
19
|
-
all_commands = [:uuid_dump, :originate, :sofia, :fsctl, :sofia_contact, :status, :calls, :call_center, :channels, :enum, :sched_hangup] # If you add a command add it to this set
|
19
|
+
all_commands = [:uuid_dump, :originate, :sofia, :fsctl, :sofia_contact, :status, :calls, :call_center, :channels, :enum, :sched_hangup, :sched_transfer, :uuid_transfer] # If you add a command add it to this set
|
20
20
|
cmds_loaded = FSR.load_all_commands
|
21
21
|
cmds_loaded.kind_of?(Array).should == true
|
22
22
|
all_commands.each do |cmd|
|
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 5
|
8
|
-
-
|
9
|
-
version: 0.5.
|
8
|
+
- 11
|
9
|
+
version: 0.5.11
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Jayson Vaughn
|
@@ -17,7 +17,7 @@ autorequire:
|
|
17
17
|
bindir: bin
|
18
18
|
cert_chain: []
|
19
19
|
|
20
|
-
date: 2011-02-
|
20
|
+
date: 2011-02-18 00:00:00 -06:00
|
21
21
|
default_executable:
|
22
22
|
dependencies:
|
23
23
|
- !ruby/object:Gem::Dependency
|
@@ -86,12 +86,14 @@ files:
|
|
86
86
|
- lib/fsr/cmd/fsctl.rb
|
87
87
|
- lib/fsr/cmd/originate.rb
|
88
88
|
- lib/fsr/cmd/sched_hangup.rb
|
89
|
+
- lib/fsr/cmd/sched_transfer.rb
|
89
90
|
- lib/fsr/cmd/sofia.rb
|
90
91
|
- lib/fsr/cmd/sofia/profile.rb
|
91
92
|
- lib/fsr/cmd/sofia/status.rb
|
92
93
|
- lib/fsr/cmd/sofia_contact.rb
|
93
94
|
- lib/fsr/cmd/status.rb
|
94
95
|
- lib/fsr/cmd/uuid_dump.rb
|
96
|
+
- lib/fsr/cmd/uuid_transfer.rb
|
95
97
|
- lib/fsr/command_socket.rb
|
96
98
|
- lib/fsr/database.rb
|
97
99
|
- lib/fsr/database/call_limit.rb
|
@@ -155,9 +157,11 @@ files:
|
|
155
157
|
- spec/fsr/cmd/enum.rb
|
156
158
|
- spec/fsr/cmd/originate.rb
|
157
159
|
- spec/fsr/cmd/sched_hangup.rb
|
160
|
+
- spec/fsr/cmd/sched_transfer.rb
|
158
161
|
- spec/fsr/cmd/sofia.rb
|
159
162
|
- spec/fsr/cmd/sofia/profile.rb
|
160
163
|
- spec/fsr/cmd/uuid_dump.rb
|
164
|
+
- spec/fsr/cmd/uuid_transfer.rb
|
161
165
|
- spec/fsr/file_methods.rb
|
162
166
|
- spec/fsr/listener.rb
|
163
167
|
- spec/fsr/listener/header_and_content_response.rb
|
@@ -401,9 +405,11 @@ test_files:
|
|
401
405
|
- spec/fsr/cmd/enum.rb
|
402
406
|
- spec/fsr/cmd/originate.rb
|
403
407
|
- spec/fsr/cmd/sched_hangup.rb
|
408
|
+
- spec/fsr/cmd/sched_transfer.rb
|
404
409
|
- spec/fsr/cmd/sofia.rb
|
405
410
|
- spec/fsr/cmd/sofia/profile.rb
|
406
411
|
- spec/fsr/cmd/uuid_dump.rb
|
412
|
+
- spec/fsr/cmd/uuid_transfer.rb
|
407
413
|
- spec/fsr/file_methods.rb
|
408
414
|
- spec/fsr/listener.rb
|
409
415
|
- spec/fsr/listener/header_and_content_response.rb
|