freeswitcher 0.4.2 → 0.4.3

Sign up to get free protection for your applications and to get access to all the features.
data/AUTHORS CHANGED
@@ -2,13 +2,14 @@ Following persons have contributed to freeswitcher.
2
2
  (Sorted by number of submitted patches, then alphabetically)
3
3
 
4
4
  125 TJ Vanderpoel <bougy.man@gmail.com>
5
- 112 Jayson Vaughn <vaughn.jayson@gmail.com>
5
+ 122 Jayson Vaughn <vaughn.jayson@gmail.com>
6
6
  40 Michael Fellinger <m.fellinger@gmail.com>
7
+ 10 Harry Vangberg <harry@vangberg.name>
8
+ 7 TJ Vanderpoel <TJ Vanderpoel tj@rubyists.com>
7
9
  6 Mikael Bjerkeland <mikael@consoll.no>
8
10
  4 foo <jvaughn@hellspass.nationwide-recovery.com>
9
11
  3 Kevin Berry <kevin@opensourcealchemist.com>
10
12
  2 freeswitch <freeswitch@falcon.(none)>
11
13
  2 TJ Vanderpoel <Jayson Vaughn jv@rubyists.com>
12
14
  1 TJ Vanderpoel <bougyman@zero.(none)>
13
- 1 TJ Vanderpoel <TJ Vanderpoel tj@rubyists.com>
14
15
  1 U-Paul-PC\Paul <Paul@Paul-PC.(none)>
data/CHANGELOG CHANGED
@@ -1,3 +1,126 @@
1
+ [1f5537d | 2009-11-18 06:43:28 UTC] TJ Vanderpoel <TJ Vanderpoel tj@rubyists.com>
2
+
3
+ * commented out more debugging
4
+
5
+ [4eb4342 | 2009-11-18 06:42:33 UTC] TJ Vanderpoel <TJ Vanderpoel tj@rubyists.com>
6
+
7
+ * commented out debugging
8
+
9
+ [daa5c02 | 2009-11-18 06:03:59 UTC] TJ Vanderpoel <TJ Vanderpoel tj@rubyists.com>
10
+
11
+ * upped version to 0.4.3, encompassing harryv bug fixes
12
+
13
+ [3685cad | 2009-11-18 06:01:06 UTC] TJ Vanderpoel <TJ Vanderpoel tj@rubyists.com>
14
+
15
+ * removed non-UTF characters from inbound.rb
16
+
17
+ [d90ae67 | 2009-11-16 21:09:04 UTC] Harry Vangberg <harry@vangberg.name>
18
+
19
+ * reconnect inbound listener when no connection has been made
20
+
21
+ [1d41dcb | 2009-11-10 21:16:35 UTC] Harry Vangberg <harry@vangberg.name>
22
+
23
+ * signature should be integer to make tests pass
24
+
25
+ [313b7cc | 2009-11-10 21:16:03 UTC] Harry Vangberg <harry@vangberg.name>
26
+
27
+ * don't force rubygems
28
+
29
+ [45bc310 | 2009-09-24 03:42:47 UTC] Harry Vangberg <harry@vangberg.name>
30
+
31
+ * inbound socket should default to port 8021
32
+
33
+ [1a5c881 | 2009-09-22 21:31:14 UTC] Harry Vangberg <harry@vangberg.name>
34
+
35
+ * instance_eval event hooks
36
+
37
+ [f5a32b5 | 2009-09-02 19:01:46 UTC] Harry Vangberg <harry@vangberg.name>
38
+
39
+ * strip newlines from event.content values
40
+
41
+ [206d683 | 2009-09-02 19:48:03 UTC] Harry Vangberg <harry@vangberg.name>
42
+
43
+ * rename app -> execute_app. otherwise it royally fucked up.
44
+
45
+ [0d16330 | 2009-09-02 17:31:15 UTC] Harry Vangberg <harry@vangberg.name>
46
+
47
+ * Add App::App for executing arbitrary apps.
48
+
49
+ Use: app("app_name", "arg1", "arg2")
50
+
51
+ [911a4db | 2009-08-27 13:50:20 UTC] Jayson Vaughn <jayson@onedrop.(none)>
52
+
53
+ * Brain fart - changed #push to #unshift. We need the update_session
54
+
55
+
56
+
57
+ [4ad32cb | 2009-08-27 13:40:04 UTC] Jayson Vaughn <jayson@onedrop.(none)>
58
+
59
+ * When using an FSR::App object with a FSR::Listener::Outbound instance
60
+
61
+
62
+
63
+ [17630f1 | 2009-08-25 23:57:07 UTC] Harry Vangberg <harry@vangberg.name>
64
+
65
+ * add App::BindMetaApp
66
+
67
+ [2867c81 | 2009-08-24 19:03:57 UTC] Harry Vangberg <harry@vangberg.name>
68
+
69
+ * take multiple endpoints + :sequential => true
70
+
71
+ [b3cd01a | 2009-08-21 18:48:08 UTC] TJ Vanderpoel <TJ Vanderpoel tj@rubyists.com>
72
+
73
+ * pushed the lib, too :)
74
+
75
+ [9fc86a2 | 2009-08-21 18:17:35 UTC] TJ Vanderpoel <TJ Vanderpoel tj@rubyists.com>
76
+
77
+ * added hash accessible arguments to play_and_get_digits
78
+
79
+ [6ed562f | 2009-08-20 18:44:28 UTC] Jayson Vaughn <jayson@onedrop.(none)>
80
+
81
+ * Updated examples to use #to_s incase something goes wrong. I.e. wrong
82
+
83
+
84
+
85
+ [2a3e3e5 | 2009-08-20 15:34:10 UTC] Jayson Vaughn <jayson@onedrop.(none)>
86
+
87
+ * Reverted back to not use FSR::App in the inbound listener. Was a
88
+
89
+
90
+
91
+ [73464df | 2009-08-20 15:25:53 UTC] Jayson Vaughn <jayson@onedrop.(none)>
92
+
93
+ * Added load_all_applications to inbound event socket as well as include
94
+
95
+
96
+
97
+ [f50b64d | 2009-08-20 15:22:26 UTC] Jayson Vaughn <jayson@onedrop.(none)>
98
+
99
+ * Added FSR::Inbound::Listener#api as an abstraction to #say("api blah")
100
+
101
+ [ec9cad3 | 2009-08-20 14:44:36 UTC] Jayson Vaughn <jayson@onedrop.(none)>
102
+
103
+ * Added callback FSR::Listener::Inbound#before_session that is called once before
104
+
105
+
106
+ Added FSR::Listener::Inbound#add_event and #del_event for instance level
107
+ event hooks. As opposed to add_event_hook and del_event_hook which are
108
+ class level
109
+
110
+ Added specs for before_session and add_event and del_event
111
+
112
+ [63021ac | 2009-07-16 12:55:00 UTC] Jayson Vaughn <jayson@debtorforever.(none)>
113
+
114
+ * Probably be good to actually send sched_hangup command to FS in the sched_hangup method
115
+
116
+ [763464f | 2009-07-16 12:26:46 UTC] Jayson Vaughn <jayson@debtorforever.(none)>
117
+
118
+ * Added FSR::Listener::Outbound#sched_hangup
119
+
120
+ [33ab5f7 | 2009-07-15 19:18:01 UTC] Jayson Vaughn <JaysonVaughn@tiger.Nationwide-recovery.com>
121
+
122
+ * Added engine capabilities to FSR::App::Speak
123
+
1
124
  [fc083ef | 2009-07-03 14:14:17 UTC] TJ Vanderpoel <TJ Vanderpoel tj@rubyists.com>
2
125
 
3
126
  * Version 0.4.2
data/MANIFEST CHANGED
@@ -13,8 +13,10 @@ freeswitcher.gemspec
13
13
  lib/fsr.rb
14
14
  lib/fsr/app.rb
15
15
  lib/fsr/app/answer.rb
16
+ lib/fsr/app/bind_meta_app.rb
16
17
  lib/fsr/app/bridge.rb
17
18
  lib/fsr/app/conference.rb
19
+ lib/fsr/app/execute_app.rb
18
20
  lib/fsr/app/fifo.rb
19
21
  lib/fsr/app/fs_break.rb
20
22
  lib/fsr/app/fs_sleep.rb
@@ -74,8 +76,10 @@ spec/helper.rb
74
76
  spec/fsr_listener_helper.rb
75
77
  spec/fsr/app.rb
76
78
  spec/fsr/app/answer.rb
79
+ spec/fsr/app/bind_meta_app.rb
77
80
  spec/fsr/app/bridge.rb
78
81
  spec/fsr/app/conference.rb
82
+ spec/fsr/app/execute_app.rb
79
83
  spec/fsr/app/fifo.rb
80
84
  spec/fsr/app/fs_break.rb
81
85
  spec/fsr/app/fs_sleep.rb
data/README CHANGED
@@ -22,7 +22,7 @@ An Outbound Event Listener Example that reads and returns DTMF input:
22
22
  Simply just create a subclass of FSR::Listner::Outbound and all
23
23
  new calls/sessions will invoke the "session_initiated" callback method.
24
24
 
25
- <b>NOTE</b>: FSR uses blocks within the 'session_inititated' method to ensure that the next "freeswich command" is not executed until the previous "Freeswitch command" has finished. This is kicked off by "answer do"
25
+ <b>NOTE</b>: FSR uses blocks within the 'session_inititated' method to ensure that the next "freeswich command" is not executed until the previous "Freeswitch command" has finished. (Basically a continuation) This is kicked off by "answer do".
26
26
 
27
27
  #!/usr/bin/ruby
28
28
  require 'fsr'
@@ -37,9 +37,9 @@ new calls/sessions will invoke the "session_initiated" callback method.
37
37
  answer do
38
38
  FSR::Log.info "***Reading DTMF from #{exten}"
39
39
  read("/home/freeswitch/freeswitch/sounds/music/8000/sweet.wav", 4, 10, "input", 7000) do |read_var|
40
- FSR::Log.info "***Success, grabbed #{read_var.strip} from #{exten}"
40
+ FSR::Log.info "***Success, grabbed #{read_var.to_s.strip} from #{exten}"
41
41
  # Tell the caller what they entered
42
- speak("Got the DTMF of: #{read_var}") do
42
+ speak("Got the DTMF of: #{read_var.to_s.strip}") do
43
43
  #Hangup the call
44
44
  hangup
45
45
  end
@@ -62,7 +62,7 @@ An Inbound Event Socket Listener example using FreeSWITCHeR's hook system:
62
62
 
63
63
  # EXAMPLE 1
64
64
  # This adds a hook on CHANNEL_CREATE events. You can also create a method to handle the event you're after. See the next example
65
- FSL::Inbound.add_event_hook(:CHANNEL_CREATE) {|event| FSR::Log.info "*** [#{event.content[:unique_id]}] Channel created - greetings from the hook!" }
65
+ FSL::Inbound.add_event_hook(:CHANNEL_CREATE) { FSR::Log.info "*** [#{event.content[:unique_id]}] Channel created - greetings from the hook!" }
66
66
 
67
67
  # EXAMPLE 2
68
68
  # Define a method to handle CHANNEL_HANGUP events.
@@ -72,7 +72,7 @@ An Inbound Event Socket Listener example using FreeSWITCHeR's hook system:
72
72
  end
73
73
 
74
74
  # This adds a hook for EXAMPLE 2
75
- FSL::Inbound.add_event_hook(:CHANNEL_HANGUP) {|event| custom_channel_hangup_handler(event) }
75
+ FSL::Inbound.add_event_hook(:CHANNEL_HANGUP) { custom_channel_hangup_handler(event) }
76
76
 
77
77
 
78
78
  # Start FSR Inbound Listener
@@ -90,7 +90,7 @@ An Inbound Event Socket Listener example using the on_event callback method inst
90
90
 
91
91
  class IesDemo < FSR::Listener::Inbound
92
92
 
93
- def on_event(event)
93
+ def on_event
94
94
  pp event.headers
95
95
  pp event.content[:event_name]
96
96
  end
data/Rakefile CHANGED
@@ -1,6 +1,6 @@
1
1
  require 'rake/clean'
2
2
  require "rubygems"
3
- require "lib/fsr"
3
+ require "./lib/fsr"
4
4
  require "pathname"
5
5
 
6
6
  PROJECT_COPYRIGHT = Pathname(__FILE__).dirname.join("License.txt").read
@@ -10,7 +10,7 @@ class IesDemo < FSR::Listener::Inbound
10
10
 
11
11
  def on_event(event)
12
12
  pp event.headers
13
- pp event.content[:event_name]
13
+ pp event.content[:event_name].to_s
14
14
  end
15
15
 
16
16
  end
@@ -16,13 +16,17 @@ class OutboundDemo < FSR::Listener::Outbound
16
16
  ## NOTE YOU MUST MAKE SURE YOU PASS A VALID WAV FILE ##
17
17
  #######################################################
18
18
  read("/usr/local/freeswitch/sounds/music/8000/sweet.wav", 4, 10, "input", 7000) do |read_var|
19
- FSR::Log.info "***Success, grabbed #{read_var.strip} from #{exten}"
19
+ FSR::Log.info "***Success, grabbed #{read_var.to_s.strip} from #{exten}"
20
20
  # Tell the caller what they entered
21
21
  # If you have mod_flite installed you should hear speech
22
- speak("Got the DTMF of: #{read_var}") { hangup }
22
+ speak("Got the DTMF of: #{read_var.to_s.strip}") { hangup }
23
23
  end
24
24
  end
25
25
 
26
+ def receive_reply(reply)
27
+ FSR::Log.info "Received #{reply.inspect}"
28
+ end
29
+
26
30
  end
27
31
 
28
32
  end
data/freeswitcher.gemspec CHANGED
@@ -2,137 +2,14 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = %q{freeswitcher}
5
- s.version = "0.4.2"
5
+ s.version = "0.4.3"
6
6
 
7
7
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
8
8
  s.authors = ["Jayson Vaughn", "Michael Fellinger", "Kevin Berry", "TJ Vanderpoel"]
9
- s.date = %q{2009-07-03}
10
- s.description = %q{=========================================================
11
- FreeSWITCHeR
12
- Copyright (c) 2009 The Rubyists (Jayson Vaughn, Tj Vanderpoel, Michael Fellinger, Kevin Berry)
13
- Distributed under the terms of the MIT License.
14
- ==========================================================
15
-
16
- ABOUT
17
- -----
18
- A ruby library for interacting with the "FreeSWITCH" (http://www.freeswitch.org) opensource telephony platform
19
-
20
- REQUIREMENTS
21
- ------------
22
- * ruby (>= 1.8)
23
- * eventmachine (If you wish to use Outbound and Inbound listener)
24
-
25
- USAGE
26
- -----
27
-
28
- An Outbound Event Listener Example that reads and returns DTMF input:
29
- --------------------------------------------------------------------
30
-
31
- Simply just create a subclass of FSR::Listner::Outbound and all
32
- new calls/sessions will invoke the "session_initiated" callback method.
33
-
34
- <b>NOTE</b>: FSR uses blocks within the 'session_inititated' method to ensure that the next "freeswich command" is not executed until the previous "Freeswitch command" has finished. This is kicked off by "answer do"
35
-
36
- #!/usr/bin/ruby
37
- require 'fsr'
38
- require 'fsr/listener/outbound'
39
-
40
- class OutboundDemo < FSR::Listener::Outbound
41
-
42
- def session_initiated
43
- exten = @session.headers[:caller_caller_id_number]
44
- FSR::Log.info "*** Answering incoming call from #{exten}"
45
-
46
- answer do
47
- FSR::Log.info "***Reading DTMF from #{exten}"
48
- read("/home/freeswitch/freeswitch/sounds/music/8000/sweet.wav", 4, 10, "input", 7000) do |read_var|
49
- FSR::Log.info "***Success, grabbed #{read_var.strip} from #{exten}"
50
- # Tell the caller what they entered
51
- speak("Got the DTMF of: #{read_var}") do
52
- #Hangup the call
53
- hangup
54
- end
55
- end
56
- end
57
-
58
- end
59
-
60
- end
61
-
62
- FSR.start_oes! OutboundDemo, :port => 8084, :host => "127.0.0.1"
63
-
64
- An Inbound Event Socket Listener example using FreeSWITCHeR's hook system:
65
- --------------------------------------------------------------------------
66
-
67
- #!/usr/bin/ruby
68
- require 'pp'
69
- require 'fsr'
70
- require "fsr/listener/inbound"
71
-
72
- # EXAMPLE 1
73
- # This adds a hook on CHANNEL_CREATE events. You can also create a method to handle the event you're after. See the next example
74
- FSL::Inbound.add_event_hook(:CHANNEL_CREATE) {|event| FSR::Log.info "*** [#{event.content[:unique_id]}] Channel created - greetings from the hook!" }
75
-
76
- # EXAMPLE 2
77
- # Define a method to handle CHANNEL_HANGUP events.
78
- def custom_channel_hangup_handler(event)
79
- FSR::Log.info "*** [#{event.content[:unique_id]}] Channel hangup. The event:"
80
- pp event
81
- end
82
-
83
- # This adds a hook for EXAMPLE 2
84
- FSL::Inbound.add_event_hook(:CHANNEL_HANGUP) {|event| custom_channel_hangup_handler(event) }
85
-
86
-
87
- # Start FSR Inbound Listener
88
- FSR.start_ies!(FSL::Inbound, :host => "localhost", :port => 8021)
89
-
90
-
91
- An Inbound Event Socket Listener example using the on_event callback method instead of hooks:
92
- ---------------------------------------------------------------------------------------------
93
-
94
- #!/usr/bin/ruby
95
- require 'pp'
96
- require 'fsr'
97
- require "fsr/listener/inbound"
98
-
99
-
100
- class IesDemo < FSR::Listener::Inbound
101
-
102
- def on_event(event)
103
- pp event.headers
104
- pp event.content[:event_name]
105
- end
106
-
107
- end
108
-
109
- FSR.start_ies!(IesDemo, :host => "localhost", :port => 8021, :auth => "ClueCon")
110
-
111
-
112
- An example of using FSR::CommandSocket to originate a new call in irb:
113
- ----------------------------------------------------------------------
114
-
115
- irb(main):001:0> require 'fsr'
116
- => true
117
-
118
- irb(main):002:0> FSR.load_all_commands
119
- => [:sofia, :originate]
120
-
121
- irb(main):003:0> sock = FSR::CommandSocket.new
122
- => #<FSR::CommandSocket:0xb7a89104 @server="127.0.0.1", @socket=#<TCPSocket:0xb7a8908c>, @port="8021", @auth="ClueCon">
123
-
124
- irb(main):007:0> sock.originate(:target => 'sofia/gateway/carlos/8179395222', :endpoint => FSR::App::Bridge.new("user/bougyman")).run
125
- => {"Job-UUID"=>"732075a4-7dd5-4258-b124-6284a82a5ae7", "body"=>"", "Content-Type"=>"command/reply", "Reply-Text"=>"+OK Job-UUID: 732075a4-7dd5-4258-b124-6284a82a5ae7"}
126
-
127
-
128
-
129
- SUPPORT
130
- -------
131
- Home page at http://code.rubyists.com/projects/fs
132
- #rubyists on FreeNode
133
- }
9
+ s.date = %q{2009-11-18}
10
+ s.description = %q{========================================================= FreeSWITCHeR Copyright (c) 2009 The Rubyists (Jayson Vaughn, Tj Vanderpoel, Michael Fellinger, Kevin Berry) Distributed under the terms of the MIT License. ========================================================== ABOUT ----- A ruby library for interacting with the "FreeSWITCH" (http://www.freeswitch.org) opensource telephony platform REQUIREMENTS ------------ * ruby (>= 1.8) * eventmachine (If you wish to use Outbound and Inbound listener) USAGE ----- An Outbound Event Listener Example that reads and returns DTMF input: -------------------------------------------------------------------- Simply just create a subclass of FSR::Listner::Outbound and all new calls/sessions will invoke the "session_initiated" callback method. <b>NOTE</b>: FSR uses blocks within the 'session_inititated' method to ensure that the next "freeswich command" is not executed until the previous "Freeswitch command" has finished. (Basically a continuation) This is kicked off by "answer do". #!/usr/bin/ruby require 'fsr' require 'fsr/listener/outbound' class OutboundDemo < FSR::Listener::Outbound def session_initiated exten = @session.headers[:caller_caller_id_number] FSR::Log.info "*** Answering incoming call from #{exten}" answer do FSR::Log.info "***Reading DTMF from #{exten}" read("/home/freeswitch/freeswitch/sounds/music/8000/sweet.wav", 4, 10, "input", 7000) do |read_var| FSR::Log.info "***Success, grabbed #{read_var.to_s.strip} from #{exten}" # Tell the caller what they entered speak("Got the DTMF of: #{read_var.to_s.strip}") do #Hangup the call hangup end end end end end FSR.start_oes! OutboundDemo, :port => 8084, :host => "127.0.0.1" An Inbound Event Socket Listener example using FreeSWITCHeR's hook system: -------------------------------------------------------------------------- #!/usr/bin/ruby require 'pp' require 'fsr' require "fsr/listener/inbound" # EXAMPLE 1 # This adds a hook on CHANNEL_CREATE events. You can also create a method to handle the event you're after. See the next example FSL::Inbound.add_event_hook(:CHANNEL_CREATE) { FSR::Log.info "*** [#{event.content[:unique_id]}] Channel created - greetings from the hook!" } # EXAMPLE 2 # Define a method to handle CHANNEL_HANGUP events. def custom_channel_hangup_handler(event) FSR::Log.info "*** [#{event.content[:unique_id]}] Channel hangup. The event:" pp event end # This adds a hook for EXAMPLE 2 FSL::Inbound.add_event_hook(:CHANNEL_HANGUP) { custom_channel_hangup_handler(event) } # Start FSR Inbound Listener FSR.start_ies!(FSL::Inbound, :host => "localhost", :port => 8021) An Inbound Event Socket Listener example using the on_event callback method instead of hooks: --------------------------------------------------------------------------------------------- #!/usr/bin/ruby require 'pp' require 'fsr' require "fsr/listener/inbound" class IesDemo < FSR::Listener::Inbound def on_event pp event.headers pp event.content[:event_name] end end FSR.start_ies!(IesDemo, :host => "localhost", :port => 8021, :auth => "ClueCon") An example of using FSR::CommandSocket to originate a new call in irb: ---------------------------------------------------------------------- irb(main):001:0> require 'fsr' => true irb(main):002:0> FSR.load_all_commands => [:sofia, :originate] irb(main):003:0> sock = FSR::CommandSocket.new => #<FSR::CommandSocket:0xb7a89104 @server="127.0.0.1", @socket=#<TCPSocket:0xb7a8908c>, @port="8021", @auth="ClueCon"> irb(main):007:0> sock.originate(:target => 'sofia/gateway/carlos/8179395222', :endpoint => FSR::App::Bridge.new("user/bougyman")).run => {"Job-UUID"=>"732075a4-7dd5-4258-b124-6284a82a5ae7", "body"=>"", "Content-Type"=>"command/reply", "Reply-Text"=>"+OK Job-UUID: 732075a4-7dd5-4258-b124-6284a82a5ae7"} SUPPORT ------- Home page at http://code.rubyists.com/projects/fs #rubyists on FreeNode}
134
11
  s.email = %q{FreeSWITCHeR@rubyists.com}
135
- s.files = [".gitignore", "AUTHORS", "CHANGELOG", "License.txt", "MANIFEST", "NEWS", "README", "Rakefile", "examples/inbound_event_socket.rb", "examples/inbound_socket_events.rb", "examples/outbound_event_socket.rb", "freeswitcher.gemspec", "lib/fsr.rb", "lib/fsr/app.rb", "lib/fsr/app/answer.rb", "lib/fsr/app/bridge.rb", "lib/fsr/app/conference.rb", "lib/fsr/app/fifo.rb", "lib/fsr/app/fs_break.rb", "lib/fsr/app/fs_sleep.rb", "lib/fsr/app/hangup.rb", "lib/fsr/app/limit.rb", "lib/fsr/app/log.rb", "lib/fsr/app/play_and_get_digits.rb", "lib/fsr/app/playback.rb", "lib/fsr/app/read.rb", "lib/fsr/app/set.rb", "lib/fsr/app/speak.rb", "lib/fsr/app/transfer.rb", "lib/fsr/app/uuid_dump.rb", "lib/fsr/app/uuid_getvar.rb", "lib/fsr/app/uuid_setvar.rb", "lib/fsr/cmd.rb", "lib/fsr/cmd/calls.rb", "lib/fsr/cmd/fsctl.rb", "lib/fsr/cmd/originate.rb", "lib/fsr/cmd/sofia.rb", "lib/fsr/cmd/sofia/profile.rb", "lib/fsr/cmd/sofia/status.rb", "lib/fsr/cmd/sofia_contact.rb", "lib/fsr/cmd/status.rb", "lib/fsr/cmd/uuid_dump.rb", "lib/fsr/command_socket.rb", "lib/fsr/database.rb", "lib/fsr/database/call_limit.rb", "lib/fsr/database/core.rb", "lib/fsr/database/sofia_reg_external.rb", "lib/fsr/database/sofia_reg_internal.rb", "lib/fsr/database/voicemail_default.rb", "lib/fsr/event_socket.rb", "lib/fsr/fake_socket.rb", "lib/fsr/listener.rb", "lib/fsr/listener/header_and_content_response.rb", "lib/fsr/listener/inbound.rb", "lib/fsr/listener/inbound/event.rb", "lib/fsr/listener/mock.rb", "lib/fsr/listener/outbound.rb", "lib/fsr/model/call.rb", "lib/fsr/version.rb", "tasks/authors.rake", "tasks/bacon.rake", "tasks/changelog.rake", "tasks/copyright.rake", "tasks/gem.rake", "tasks/gem_installer.rake", "tasks/install_dependencies.rake", "tasks/manifest.rake", "tasks/release.rake", "tasks/reversion.rake", "tasks/setup.rake", "tasks/spec.rake", "tasks/yard.rake", "spec/helper.rb", "spec/fsr_listener_helper.rb", "spec/fsr/app.rb", "spec/fsr/app/answer.rb", "spec/fsr/app/bridge.rb", "spec/fsr/app/conference.rb", "spec/fsr/app/fifo.rb", "spec/fsr/app/fs_break.rb", "spec/fsr/app/fs_sleep.rb", "spec/fsr/app/hangup.rb", "spec/fsr/app/limit.rb", "spec/fsr/app/log.rb", "spec/fsr/app/play_and_get_digits.rb", "spec/fsr/app/playback.rb", "spec/fsr/app/set.rb", "spec/fsr/app/transfer.rb", "spec/fsr/cmd.rb", "spec/fsr/cmd/calls.rb", "spec/fsr/cmd/originate.rb", "spec/fsr/cmd/sofia.rb", "spec/fsr/cmd/sofia/profile.rb", "spec/fsr/cmd/uuid_dump.rb", "spec/fsr/listener.rb", "spec/fsr/listener/header_and_content_response.rb", "spec/fsr/listener/inbound.rb", "spec/fsr/listener/outbound.rb", "spec/fsr/loading.rb"]
12
+ s.files = [".gitignore", "AUTHORS", "CHANGELOG", "License.txt", "MANIFEST", "NEWS", "README", "Rakefile", "examples/inbound_event_socket.rb", "examples/inbound_socket_events.rb", "examples/outbound_event_socket.rb", "freeswitcher.gemspec", "lib/fsr.rb", "lib/fsr/app.rb", "lib/fsr/app/answer.rb", "lib/fsr/app/bind_meta_app.rb", "lib/fsr/app/bridge.rb", "lib/fsr/app/conference.rb", "lib/fsr/app/execute_app.rb", "lib/fsr/app/fifo.rb", "lib/fsr/app/fs_break.rb", "lib/fsr/app/fs_sleep.rb", "lib/fsr/app/hangup.rb", "lib/fsr/app/limit.rb", "lib/fsr/app/log.rb", "lib/fsr/app/play_and_get_digits.rb", "lib/fsr/app/playback.rb", "lib/fsr/app/read.rb", "lib/fsr/app/set.rb", "lib/fsr/app/speak.rb", "lib/fsr/app/transfer.rb", "lib/fsr/app/uuid_dump.rb", "lib/fsr/app/uuid_getvar.rb", "lib/fsr/app/uuid_setvar.rb", "lib/fsr/cmd.rb", "lib/fsr/cmd/calls.rb", "lib/fsr/cmd/fsctl.rb", "lib/fsr/cmd/originate.rb", "lib/fsr/cmd/sofia.rb", "lib/fsr/cmd/sofia/profile.rb", "lib/fsr/cmd/sofia/status.rb", "lib/fsr/cmd/sofia_contact.rb", "lib/fsr/cmd/status.rb", "lib/fsr/cmd/uuid_dump.rb", "lib/fsr/command_socket.rb", "lib/fsr/database.rb", "lib/fsr/database/call_limit.rb", "lib/fsr/database/core.rb", "lib/fsr/database/sofia_reg_external.rb", "lib/fsr/database/sofia_reg_internal.rb", "lib/fsr/database/voicemail_default.rb", "lib/fsr/event_socket.rb", "lib/fsr/fake_socket.rb", "lib/fsr/listener.rb", "lib/fsr/listener/header_and_content_response.rb", "lib/fsr/listener/inbound.rb", "lib/fsr/listener/inbound/event.rb", "lib/fsr/listener/mock.rb", "lib/fsr/listener/outbound.rb", "lib/fsr/model/call.rb", "lib/fsr/version.rb", "tasks/authors.rake", "tasks/bacon.rake", "tasks/changelog.rake", "tasks/copyright.rake", "tasks/gem.rake", "tasks/gem_installer.rake", "tasks/install_dependencies.rake", "tasks/manifest.rake", "tasks/release.rake", "tasks/reversion.rake", "tasks/setup.rake", "tasks/spec.rake", "tasks/yard.rake", "spec/helper.rb", "spec/fsr_listener_helper.rb", "spec/fsr/app.rb", "spec/fsr/app/answer.rb", "spec/fsr/app/bind_meta_app.rb", "spec/fsr/app/bridge.rb", "spec/fsr/app/conference.rb", "spec/fsr/app/execute_app.rb", "spec/fsr/app/fifo.rb", "spec/fsr/app/fs_break.rb", "spec/fsr/app/fs_sleep.rb", "spec/fsr/app/hangup.rb", "spec/fsr/app/limit.rb", "spec/fsr/app/log.rb", "spec/fsr/app/play_and_get_digits.rb", "spec/fsr/app/playback.rb", "spec/fsr/app/set.rb", "spec/fsr/app/transfer.rb", "spec/fsr/cmd.rb", "spec/fsr/cmd/calls.rb", "spec/fsr/cmd/originate.rb", "spec/fsr/cmd/sofia.rb", "spec/fsr/cmd/sofia/profile.rb", "spec/fsr/cmd/uuid_dump.rb", "spec/fsr/listener.rb", "spec/fsr/listener/header_and_content_response.rb", "spec/fsr/listener/inbound.rb", "spec/fsr/listener/outbound.rb", "spec/fsr/loading.rb"]
136
13
  s.homepage = %q{http://code.rubyists.com/projects/fs}
137
14
  s.post_install_message = %q{=========================================================
138
15
  FreeSWITCHeR
@@ -158,7 +35,7 @@ An Outbound Event Listener Example that reads and returns DTMF input:
158
35
  Simply just create a subclass of FSR::Listner::Outbound and all
159
36
  new calls/sessions will invoke the "session_initiated" callback method.
160
37
 
161
- <b>NOTE</b>: FSR uses blocks within the 'session_inititated' method to ensure that the next "freeswich command" is not executed until the previous "Freeswitch command" has finished. This is kicked off by "answer do"
38
+ <b>NOTE</b>: FSR uses blocks within the 'session_inititated' method to ensure that the next "freeswich command" is not executed until the previous "Freeswitch command" has finished. (Basically a continuation) This is kicked off by "answer do".
162
39
 
163
40
  #!/usr/bin/ruby
164
41
  require 'fsr'
@@ -173,9 +50,9 @@ new calls/sessions will invoke the "session_initiated" callback method.
173
50
  answer do
174
51
  FSR::Log.info "***Reading DTMF from #{exten}"
175
52
  read("/home/freeswitch/freeswitch/sounds/music/8000/sweet.wav", 4, 10, "input", 7000) do |read_var|
176
- FSR::Log.info "***Success, grabbed #{read_var.strip} from #{exten}"
53
+ FSR::Log.info "***Success, grabbed #{read_var.to_s.strip} from #{exten}"
177
54
  # Tell the caller what they entered
178
- speak("Got the DTMF of: #{read_var}") do
55
+ speak("Got the DTMF of: #{read_var.to_s.strip}") do
179
56
  #Hangup the call
180
57
  hangup
181
58
  end
@@ -198,7 +75,7 @@ An Inbound Event Socket Listener example using FreeSWITCHeR's hook system:
198
75
 
199
76
  # EXAMPLE 1
200
77
  # This adds a hook on CHANNEL_CREATE events. You can also create a method to handle the event you're after. See the next example
201
- FSL::Inbound.add_event_hook(:CHANNEL_CREATE) {|event| FSR::Log.info "*** [#{event.content[:unique_id]}] Channel created - greetings from the hook!" }
78
+ FSL::Inbound.add_event_hook(:CHANNEL_CREATE) { FSR::Log.info "*** [#{event.content[:unique_id]}] Channel created - greetings from the hook!" }
202
79
 
203
80
  # EXAMPLE 2
204
81
  # Define a method to handle CHANNEL_HANGUP events.
@@ -208,7 +85,7 @@ An Inbound Event Socket Listener example using FreeSWITCHeR's hook system:
208
85
  end
209
86
 
210
87
  # This adds a hook for EXAMPLE 2
211
- FSL::Inbound.add_event_hook(:CHANNEL_HANGUP) {|event| custom_channel_hangup_handler(event) }
88
+ FSL::Inbound.add_event_hook(:CHANNEL_HANGUP) { custom_channel_hangup_handler(event) }
212
89
 
213
90
 
214
91
  # Start FSR Inbound Listener
@@ -226,7 +103,7 @@ An Inbound Event Socket Listener example using the on_event callback method inst
226
103
 
227
104
  class IesDemo < FSR::Listener::Inbound
228
105
 
229
- def on_event(event)
106
+ def on_event
230
107
  pp event.headers
231
108
  pp event.content[:event_name]
232
109
  end
@@ -260,13 +137,13 @@ Home page at http://code.rubyists.com/projects/fs
260
137
  }
261
138
  s.require_paths = ["lib"]
262
139
  s.rubyforge_project = %q{freeswitcher}
263
- s.rubygems_version = %q{1.3.4}
140
+ s.rubygems_version = %q{1.3.1}
264
141
  s.summary = %q{A library for interacting with the "FreeSWITCH":http://freeswitch.org telephony platform}
265
- s.test_files = ["spec/fsr/app.rb", "spec/fsr/app/answer.rb", "spec/fsr/app/bridge.rb", "spec/fsr/app/conference.rb", "spec/fsr/app/fifo.rb", "spec/fsr/app/fs_break.rb", "spec/fsr/app/fs_sleep.rb", "spec/fsr/app/hangup.rb", "spec/fsr/app/limit.rb", "spec/fsr/app/log.rb", "spec/fsr/app/play_and_get_digits.rb", "spec/fsr/app/playback.rb", "spec/fsr/app/set.rb", "spec/fsr/app/transfer.rb", "spec/fsr/cmd.rb", "spec/fsr/cmd/calls.rb", "spec/fsr/cmd/originate.rb", "spec/fsr/cmd/sofia.rb", "spec/fsr/cmd/sofia/profile.rb", "spec/fsr/cmd/uuid_dump.rb", "spec/fsr/listener.rb", "spec/fsr/listener/header_and_content_response.rb", "spec/fsr/listener/inbound.rb", "spec/fsr/listener/outbound.rb", "spec/fsr/loading.rb"]
142
+ s.test_files = ["spec/fsr/app.rb", "spec/fsr/app/answer.rb", "spec/fsr/app/bind_meta_app.rb", "spec/fsr/app/bridge.rb", "spec/fsr/app/conference.rb", "spec/fsr/app/execute_app.rb", "spec/fsr/app/fifo.rb", "spec/fsr/app/fs_break.rb", "spec/fsr/app/fs_sleep.rb", "spec/fsr/app/hangup.rb", "spec/fsr/app/limit.rb", "spec/fsr/app/log.rb", "spec/fsr/app/play_and_get_digits.rb", "spec/fsr/app/playback.rb", "spec/fsr/app/set.rb", "spec/fsr/app/transfer.rb", "spec/fsr/cmd.rb", "spec/fsr/cmd/calls.rb", "spec/fsr/cmd/originate.rb", "spec/fsr/cmd/sofia.rb", "spec/fsr/cmd/sofia/profile.rb", "spec/fsr/cmd/uuid_dump.rb", "spec/fsr/listener.rb", "spec/fsr/listener/header_and_content_response.rb", "spec/fsr/listener/inbound.rb", "spec/fsr/listener/outbound.rb", "spec/fsr/loading.rb"]
266
143
 
267
144
  if s.respond_to? :specification_version then
268
145
  current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
269
- s.specification_version = 3
146
+ s.specification_version = 2
270
147
 
271
148
  if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
272
149
  s.add_runtime_dependency(%q<eventmachine>, [">= 0"])