voicemail 0.2.0 → 1.0.0.beta
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/CHANGELOG.md +44 -0
- data/README.md +57 -2
- data/lib/voicemail.rb +15 -8
- data/lib/voicemail/{application_controller.rb → call_controllers/application_controller.rb} +14 -1
- data/lib/voicemail/call_controllers/authentication_controller.rb +60 -0
- data/lib/voicemail/call_controllers/mailbox_controller.rb +46 -0
- data/lib/voicemail/{mailbox_main_menu_controller.rb → call_controllers/mailbox_main_menu_controller.rb} +9 -4
- data/lib/voicemail/call_controllers/mailbox_messages_controller.rb +48 -0
- data/lib/voicemail/{mailbox_play_message_controller.rb → call_controllers/mailbox_play_message_controller.rb} +26 -10
- data/lib/voicemail/call_controllers/mailbox_play_message_intro_controller.rb +72 -0
- data/lib/voicemail/{mailbox_set_greeting_controller.rb → call_controllers/mailbox_set_greeting_controller.rb} +2 -2
- data/lib/voicemail/{mailbox_set_pin_controller.rb → call_controllers/mailbox_set_pin_controller.rb} +0 -0
- data/lib/voicemail/call_controllers/voicemail_controller.rb +57 -0
- data/lib/voicemail/localization_loader.rb +28 -0
- data/lib/voicemail/matcher.rb +14 -0
- data/lib/voicemail/plugin.rb +40 -15
- data/lib/voicemail/storage_pstore.rb +49 -2
- data/lib/voicemail/version.rb +1 -1
- data/spec/voicemail/call_controllers/application_controller_spec.rb +31 -0
- data/spec/voicemail/call_controllers/authentication_controller_spec.rb +59 -0
- data/spec/voicemail/call_controllers/mailbox_controller_spec.rb +107 -0
- data/spec/voicemail/{mailbox_main_menu_controller_spec.rb → call_controllers/mailbox_main_menu_controller_spec.rb} +9 -2
- data/spec/voicemail/call_controllers/mailbox_messages_controller_spec.rb +110 -0
- data/spec/voicemail/call_controllers/mailbox_play_message_controller_spec.rb +97 -0
- data/spec/voicemail/call_controllers/mailbox_play_message_intro_controller_spec.rb +81 -0
- data/spec/voicemail/{mailbox_set_greeting_controller_spec.rb → call_controllers/mailbox_set_greeting_controller_spec.rb} +24 -6
- data/spec/voicemail/{mailbox_set_pin_controller_spec.rb → call_controllers/mailbox_set_pin_controller_spec.rb} +0 -0
- data/spec/voicemail/call_controllers/voicemail_controller_spec.rb +97 -0
- data/spec/voicemail/localization_loader_spec.rb +21 -0
- data/spec/voicemail/storage_pstore_spec.rb +64 -2
- data/templates/en.yml +67 -0
- data/voicemail.gemspec +2 -2
- metadata +42 -26
- data/lib/voicemail/mailbox_controller.rb +0 -56
- data/lib/voicemail/mailbox_messages_controller.rb +0 -55
- data/lib/voicemail/voicemail_controller.rb +0 -33
- data/spec/voicemail/mailbox_controller_spec.rb +0 -79
- data/spec/voicemail/mailbox_messages_controller_spec.rb +0 -71
- data/spec/voicemail/mailbox_play_message_controller_spec.rb +0 -70
- data/spec/voicemail/voicemail_controller_spec.rb +0 -76
@@ -0,0 +1,21 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
describe Voicemail::LocalizationLoader do
|
4
|
+
|
5
|
+
before { @old_config = Voicemail::Plugin.config.default_greeting }
|
6
|
+
after { Voicemail::Plugin.config.default_greeting = @old_config }
|
7
|
+
|
8
|
+
describe ".replace_config" do
|
9
|
+
let(:mock_hash) { {'en' => {'voicemail' => {'default_greeting' => 'foo'}}} }
|
10
|
+
|
11
|
+
before do
|
12
|
+
flexmock(YAML).should_receive(:load).and_return mock_hash
|
13
|
+
flexmock(I18n).should_receive(:t).and_return "bar"
|
14
|
+
end
|
15
|
+
|
16
|
+
it "changes the values to i18n" do
|
17
|
+
subject.replace_config
|
18
|
+
Voicemail::Plugin.config.default_greeting.should == "bar"
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -14,14 +14,20 @@ module Voicemail
|
|
14
14
|
|
15
15
|
let(:config) { Voicemail::Plugin.config }
|
16
16
|
|
17
|
+
let(:message_1) { {id: :foo} }
|
18
|
+
let(:message_2) { {id: :bar} }
|
19
|
+
let(:message_3) { {id: :biz} }
|
20
|
+
|
17
21
|
subject :storage do
|
18
22
|
basedir = File.expand_path("../../../tmp/", __FILE__)
|
19
23
|
pstore_path = File.join(basedir, 'voicemail.pstore')
|
20
24
|
File.unlink(pstore_path) if File.exists?(pstore_path)
|
21
25
|
config.storage.pstore_location = pstore_path
|
22
26
|
StoragePstore.new.tap do |storage|
|
23
|
-
storage.store.transaction do
|
24
|
-
|
27
|
+
storage.store.transaction do |store|
|
28
|
+
store[:recordings][100] = [message_1]
|
29
|
+
store[:archived][100] = [message_2, message_3]
|
30
|
+
store[:mailboxes][100] = mailbox
|
25
31
|
end
|
26
32
|
flexmock storage
|
27
33
|
end
|
@@ -41,5 +47,61 @@ module Voicemail
|
|
41
47
|
end
|
42
48
|
end
|
43
49
|
|
50
|
+
describe "#save_recording" do
|
51
|
+
let(:recording_object) { flexmock 'recording_object', uri: "file://somewav.wav" }
|
52
|
+
|
53
|
+
it "saves the recording" do
|
54
|
+
storage.save_recording(100, "foo", recording_object)
|
55
|
+
storage.store.transaction do |store|
|
56
|
+
store[:recordings][100].last[:uri].should == "file://somewav.wav"
|
57
|
+
store[:recordings][100].last[:from].should == "foo"
|
58
|
+
store[:recordings][100].last[:id].should_not be_nil
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
describe "#count_new_messages" do
|
64
|
+
it "returns the new message count" do
|
65
|
+
storage.count_new_messages(100).should == 1
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
describe "#count_saved_messages" do
|
70
|
+
it "returns the saved message count" do
|
71
|
+
storage.count_saved_messages(100).should == 2
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
75
|
+
describe "#next_new_message" do
|
76
|
+
it "returns the next new messaged" do
|
77
|
+
storage.next_new_message(100).should == {id: :foo}
|
78
|
+
end
|
79
|
+
end
|
80
|
+
|
81
|
+
describe "#next_saved_message" do
|
82
|
+
it "returns the next saved messaged" do
|
83
|
+
storage.next_saved_message(100).should == {id: :bar}
|
84
|
+
end
|
85
|
+
end
|
86
|
+
|
87
|
+
describe "#archive_message" do
|
88
|
+
it "archives the message" do
|
89
|
+
storage.archive_message 100, :foo
|
90
|
+
storage.store.transaction do |store|
|
91
|
+
store[:recordings][100].should == []
|
92
|
+
store[:archived][100].should == [message_2, message_3, message_1]
|
93
|
+
end
|
94
|
+
end
|
95
|
+
end
|
96
|
+
|
97
|
+
describe "#unarchive_message" do
|
98
|
+
it "unarchives the message" do
|
99
|
+
storage.unarchive_message 100, :bar
|
100
|
+
storage.store.transaction do |store|
|
101
|
+
store[:recordings][100].should == [message_1, message_2]
|
102
|
+
store[:archived][100].should == [message_3]
|
103
|
+
end
|
104
|
+
end
|
105
|
+
end
|
44
106
|
end
|
45
107
|
end
|
data/templates/en.yml
ADDED
@@ -0,0 +1,67 @@
|
|
1
|
+
en:
|
2
|
+
time:
|
3
|
+
am: am
|
4
|
+
pm: pm
|
5
|
+
formats:
|
6
|
+
default: '%A, %B %d at %-l:%M %p'
|
7
|
+
numbers:
|
8
|
+
'1': "one "
|
9
|
+
'2': "two "
|
10
|
+
'3': "three "
|
11
|
+
'4': "four "
|
12
|
+
'5': "five "
|
13
|
+
'6': "six "
|
14
|
+
'7': "seven "
|
15
|
+
'8': "eight "
|
16
|
+
'9': "nine "
|
17
|
+
'0': "zero "
|
18
|
+
|
19
|
+
voicemail:
|
20
|
+
default_greeting: "You have reached voicemail"
|
21
|
+
mailbox_not_found: "Mailbox not found"
|
22
|
+
|
23
|
+
mailbox:
|
24
|
+
greeting_message: "Welcome to the mailbox system."
|
25
|
+
please_enter_pin: "Please enter your PIN."
|
26
|
+
pin_wrong: "The PIN you entered does not match. Please try again."
|
27
|
+
could_not_auth: "We are sorry, the system could not authenticate you"
|
28
|
+
number_before: "You have "
|
29
|
+
number_after: " new messages"
|
30
|
+
number_after_saved: " saved messages"
|
31
|
+
x_new_messages:
|
32
|
+
one: "You have one new message. "
|
33
|
+
other: "You have %{count} new messages. "
|
34
|
+
x_saved_messages:
|
35
|
+
one: "You have one saved message. "
|
36
|
+
other: "You have %{count} saved messages. "
|
37
|
+
menu_greeting: "Press 1 to listen to new messages, 2 to change your greeting, 3 to change your PIN"
|
38
|
+
menu_timeout_message: "Please enter a digit for the menu"
|
39
|
+
menu_invalid_message: "Please enter valid input"
|
40
|
+
menu_failure_message: "Sorry, unable to understand your input."
|
41
|
+
|
42
|
+
after_record: "Press 1 to save your voicemail. Press 2 to rerecord."
|
43
|
+
|
44
|
+
set_greeting:
|
45
|
+
prompt: "Press 1 to listen to your current greeting, 2 to record a new greeting, 9 to return to the main menu"
|
46
|
+
before_record: "Please speak after the beep. The prompt will be played back after."
|
47
|
+
after_record: "Press 1 to save your new greeting, 2 to discard it, 9 to go back to the menu"
|
48
|
+
no_personal_greeting: "You do not currently have a personalized greeting."
|
49
|
+
|
50
|
+
set_pin:
|
51
|
+
menu: "Press 1 to change your current PIN, or 9 to go back to the main menu"
|
52
|
+
prompt: "Enter your new PIN of at least four digits followed by the pound sign"
|
53
|
+
repeat_prompt: "Please enter your new PIN again, followed by the pound sign"
|
54
|
+
pin_error: "Please enter at least four digits followed by the pound sign."
|
55
|
+
match_error: "The two entered PINs don't match, please try again."
|
56
|
+
change_ok: "Your PIN has been successfully changed"
|
57
|
+
|
58
|
+
messages:
|
59
|
+
menu_new: "Press 1 to archive the message and go to the next, press 5 to delete the message and go to the next, press 7 to hear the message again, press 9 for the main menu"
|
60
|
+
menu_saved: "Press 1 to unarchive the message and go to the next, press 5 to delete the message and go to the next, press 7 to hear the message again, press 9 for the main menu"
|
61
|
+
no_new_messages: "There are no new messages"
|
62
|
+
no_saved_messages: "There are no saved messages"
|
63
|
+
message_received_on: "Message received on "
|
64
|
+
from: " from "
|
65
|
+
message_received_on_x: "Message received on %{received_on}. "
|
66
|
+
message_received_from_x: "Message received from %{from}. "
|
67
|
+
|
data/voicemail.gemspec
CHANGED
@@ -5,8 +5,8 @@ require "voicemail/version"
|
|
5
5
|
Gem::Specification.new do |s|
|
6
6
|
s.name = "voicemail"
|
7
7
|
s.version = Voicemail::VERSION
|
8
|
-
s.authors = ["Luca Pradovera"]
|
9
|
-
s.email = ["lpradovera@mojolingo.com"]
|
8
|
+
s.authors = ["Luca Pradovera", "Justin Aiken"]
|
9
|
+
s.email = ["lpradovera@mojolingo.com", "jaiken@mojolingo.com"]
|
10
10
|
s.license = 'MIT'
|
11
11
|
s.homepage = "http://github.com/adhearsion/voicemail"
|
12
12
|
s.summary = %q{Voicemail for Adhearsion}
|
metadata
CHANGED
@@ -1,14 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: voicemail
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.0.0.beta
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Luca Pradovera
|
8
|
+
- Justin Aiken
|
8
9
|
autorequire:
|
9
10
|
bindir: bin
|
10
11
|
cert_chain: []
|
11
|
-
date: 2013-
|
12
|
+
date: 2013-10-24 00:00:00.000000000 Z
|
12
13
|
dependencies:
|
13
14
|
- !ruby/object:Gem::Dependency
|
14
15
|
name: adhearsion
|
@@ -111,41 +112,52 @@ dependencies:
|
|
111
112
|
description: A simple, extensible voicemail implementation
|
112
113
|
email:
|
113
114
|
- lpradovera@mojolingo.com
|
115
|
+
- jaiken@mojolingo.com
|
114
116
|
executables: []
|
115
117
|
extensions: []
|
116
118
|
extra_rdoc_files: []
|
117
119
|
files:
|
118
120
|
- .gitignore
|
119
121
|
- .rspec
|
122
|
+
- CHANGELOG.md
|
120
123
|
- Gemfile
|
121
124
|
- Guardfile
|
122
125
|
- LICENSE
|
123
126
|
- README.md
|
124
127
|
- Rakefile
|
125
128
|
- lib/voicemail.rb
|
126
|
-
- lib/voicemail/application_controller.rb
|
127
|
-
- lib/voicemail/
|
128
|
-
- lib/voicemail/
|
129
|
-
- lib/voicemail/
|
130
|
-
- lib/voicemail/
|
131
|
-
- lib/voicemail/
|
132
|
-
- lib/voicemail/
|
129
|
+
- lib/voicemail/call_controllers/application_controller.rb
|
130
|
+
- lib/voicemail/call_controllers/authentication_controller.rb
|
131
|
+
- lib/voicemail/call_controllers/mailbox_controller.rb
|
132
|
+
- lib/voicemail/call_controllers/mailbox_main_menu_controller.rb
|
133
|
+
- lib/voicemail/call_controllers/mailbox_messages_controller.rb
|
134
|
+
- lib/voicemail/call_controllers/mailbox_play_message_controller.rb
|
135
|
+
- lib/voicemail/call_controllers/mailbox_play_message_intro_controller.rb
|
136
|
+
- lib/voicemail/call_controllers/mailbox_set_greeting_controller.rb
|
137
|
+
- lib/voicemail/call_controllers/mailbox_set_pin_controller.rb
|
138
|
+
- lib/voicemail/call_controllers/voicemail_controller.rb
|
139
|
+
- lib/voicemail/localization_loader.rb
|
140
|
+
- lib/voicemail/matcher.rb
|
133
141
|
- lib/voicemail/plugin.rb
|
134
142
|
- lib/voicemail/storage.rb
|
135
143
|
- lib/voicemail/storage_pstore.rb
|
136
144
|
- lib/voicemail/version.rb
|
137
|
-
- lib/voicemail/voicemail_controller.rb
|
138
145
|
- spec/spec_helper.rb
|
139
146
|
- spec/support/voicemail_controller_spec_helper.rb
|
140
|
-
- spec/voicemail/
|
141
|
-
- spec/voicemail/
|
142
|
-
- spec/voicemail/
|
143
|
-
- spec/voicemail/
|
144
|
-
- spec/voicemail/
|
145
|
-
- spec/voicemail/
|
147
|
+
- spec/voicemail/call_controllers/application_controller_spec.rb
|
148
|
+
- spec/voicemail/call_controllers/authentication_controller_spec.rb
|
149
|
+
- spec/voicemail/call_controllers/mailbox_controller_spec.rb
|
150
|
+
- spec/voicemail/call_controllers/mailbox_main_menu_controller_spec.rb
|
151
|
+
- spec/voicemail/call_controllers/mailbox_messages_controller_spec.rb
|
152
|
+
- spec/voicemail/call_controllers/mailbox_play_message_controller_spec.rb
|
153
|
+
- spec/voicemail/call_controllers/mailbox_play_message_intro_controller_spec.rb
|
154
|
+
- spec/voicemail/call_controllers/mailbox_set_greeting_controller_spec.rb
|
155
|
+
- spec/voicemail/call_controllers/mailbox_set_pin_controller_spec.rb
|
156
|
+
- spec/voicemail/call_controllers/voicemail_controller_spec.rb
|
157
|
+
- spec/voicemail/localization_loader_spec.rb
|
146
158
|
- spec/voicemail/storage_pstore_spec.rb
|
147
159
|
- spec/voicemail/storage_spec.rb
|
148
|
-
-
|
160
|
+
- templates/en.yml
|
149
161
|
- tmp/.gitignore
|
150
162
|
- voicemail.gemspec
|
151
163
|
homepage: http://github.com/adhearsion/voicemail
|
@@ -163,9 +175,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
163
175
|
version: '0'
|
164
176
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
165
177
|
requirements:
|
166
|
-
- - '
|
178
|
+
- - '>'
|
167
179
|
- !ruby/object:Gem::Version
|
168
|
-
version:
|
180
|
+
version: 1.3.1
|
169
181
|
requirements: []
|
170
182
|
rubyforge_project: voicemail
|
171
183
|
rubygems_version: 2.0.0
|
@@ -175,13 +187,17 @@ summary: Voicemail for Adhearsion
|
|
175
187
|
test_files:
|
176
188
|
- spec/spec_helper.rb
|
177
189
|
- spec/support/voicemail_controller_spec_helper.rb
|
178
|
-
- spec/voicemail/
|
179
|
-
- spec/voicemail/
|
180
|
-
- spec/voicemail/
|
181
|
-
- spec/voicemail/
|
182
|
-
- spec/voicemail/
|
183
|
-
- spec/voicemail/
|
190
|
+
- spec/voicemail/call_controllers/application_controller_spec.rb
|
191
|
+
- spec/voicemail/call_controllers/authentication_controller_spec.rb
|
192
|
+
- spec/voicemail/call_controllers/mailbox_controller_spec.rb
|
193
|
+
- spec/voicemail/call_controllers/mailbox_main_menu_controller_spec.rb
|
194
|
+
- spec/voicemail/call_controllers/mailbox_messages_controller_spec.rb
|
195
|
+
- spec/voicemail/call_controllers/mailbox_play_message_controller_spec.rb
|
196
|
+
- spec/voicemail/call_controllers/mailbox_play_message_intro_controller_spec.rb
|
197
|
+
- spec/voicemail/call_controllers/mailbox_set_greeting_controller_spec.rb
|
198
|
+
- spec/voicemail/call_controllers/mailbox_set_pin_controller_spec.rb
|
199
|
+
- spec/voicemail/call_controllers/voicemail_controller_spec.rb
|
200
|
+
- spec/voicemail/localization_loader_spec.rb
|
184
201
|
- spec/voicemail/storage_pstore_spec.rb
|
185
202
|
- spec/voicemail/storage_spec.rb
|
186
|
-
- spec/voicemail/voicemail_controller_spec.rb
|
187
203
|
has_rdoc:
|
@@ -1,56 +0,0 @@
|
|
1
|
-
module Voicemail
|
2
|
-
class MailboxController < ApplicationController
|
3
|
-
def run
|
4
|
-
if mailbox
|
5
|
-
play_greeting
|
6
|
-
fail_auth unless authenticate
|
7
|
-
play_number_of_messages
|
8
|
-
main_menu
|
9
|
-
else
|
10
|
-
mailbox_not_found
|
11
|
-
end
|
12
|
-
end
|
13
|
-
|
14
|
-
def authenticate
|
15
|
-
current_tries = 0
|
16
|
-
auth_ok = false
|
17
|
-
while current_tries < config.mailbox.pin_tries
|
18
|
-
input = ask config.mailbox.please_enter_pin, terminator: "#", timeout: config.prompt_timeout
|
19
|
-
logger.info input.to_s
|
20
|
-
logger.info mailbox[:pin].to_s
|
21
|
-
auth_ok = true if input.to_s == mailbox[:pin].to_s
|
22
|
-
break if auth_ok
|
23
|
-
play config.mailbox.pin_wrong
|
24
|
-
current_tries += 1
|
25
|
-
end
|
26
|
-
auth_ok
|
27
|
-
end
|
28
|
-
|
29
|
-
def play_number_of_messages
|
30
|
-
number = storage.count_new_messages(mailbox[:id])
|
31
|
-
if number > 0
|
32
|
-
play config.mailbox.number_before
|
33
|
-
play_numeric number
|
34
|
-
play config.mailbox.number_after
|
35
|
-
else
|
36
|
-
play config.messages.no_new_messages
|
37
|
-
end
|
38
|
-
end
|
39
|
-
|
40
|
-
private
|
41
|
-
|
42
|
-
def play_greeting
|
43
|
-
play config.mailbox.greeting_message
|
44
|
-
end
|
45
|
-
|
46
|
-
def mailbox_not_found
|
47
|
-
play config.mailbox_not_found
|
48
|
-
hangup
|
49
|
-
end
|
50
|
-
|
51
|
-
def fail_auth
|
52
|
-
play config.mailbox.could_not_auth
|
53
|
-
hangup
|
54
|
-
end
|
55
|
-
end
|
56
|
-
end
|
@@ -1,55 +0,0 @@
|
|
1
|
-
module Voicemail
|
2
|
-
class MailboxMessagesController < ApplicationController
|
3
|
-
def run
|
4
|
-
message_loop
|
5
|
-
end
|
6
|
-
|
7
|
-
def message_loop
|
8
|
-
number = storage.count_new_messages(mailbox[:id])
|
9
|
-
if number > 0
|
10
|
-
next_message
|
11
|
-
else
|
12
|
-
bail_out
|
13
|
-
end
|
14
|
-
end
|
15
|
-
|
16
|
-
def next_message
|
17
|
-
current_message = storage.next_new_message(mailbox[:id])
|
18
|
-
handle_message current_message
|
19
|
-
message_loop
|
20
|
-
end
|
21
|
-
|
22
|
-
def handle_message(message)
|
23
|
-
invoke MailboxPlayMessageController, message: message, mailbox: mailbox[:id]
|
24
|
-
end
|
25
|
-
|
26
|
-
private
|
27
|
-
|
28
|
-
def bail_out
|
29
|
-
play config.messages.no_new_messages
|
30
|
-
main_menu
|
31
|
-
end
|
32
|
-
|
33
|
-
def section_menu
|
34
|
-
menu config.mailbox.menu_greeting,
|
35
|
-
timeout: config.menu_timeout, tries: config.menu_tries do
|
36
|
-
match(1) { listen_to_messages }
|
37
|
-
match(2) { set_greeting }
|
38
|
-
match(3) { set_pin }
|
39
|
-
|
40
|
-
timeout do
|
41
|
-
play config.mailbox.menu_timeout_message
|
42
|
-
end
|
43
|
-
|
44
|
-
invalid do
|
45
|
-
play config.mailbox.menu_invalid_message
|
46
|
-
end
|
47
|
-
|
48
|
-
failure do
|
49
|
-
play config.mailbox.menu_failure_message
|
50
|
-
hangup
|
51
|
-
end
|
52
|
-
end
|
53
|
-
end
|
54
|
-
end
|
55
|
-
end
|
@@ -1,33 +0,0 @@
|
|
1
|
-
module Voicemail
|
2
|
-
class VoicemailController < ApplicationController
|
3
|
-
def run
|
4
|
-
answer unless config.force_183
|
5
|
-
if mailbox
|
6
|
-
answer if config.force_183
|
7
|
-
play_greeting
|
8
|
-
handle_recording
|
9
|
-
else
|
10
|
-
mailbox_not_found
|
11
|
-
end
|
12
|
-
end
|
13
|
-
|
14
|
-
def play_greeting
|
15
|
-
play mailbox[:greeting_message] || config.default_greeting
|
16
|
-
end
|
17
|
-
|
18
|
-
def handle_recording
|
19
|
-
@from = call.from
|
20
|
-
record_comp = record config.recording.to_hash.merge(interruptible: true, direction: :recv)
|
21
|
-
save_recording record_comp.complete_event.recording.uri
|
22
|
-
end
|
23
|
-
|
24
|
-
def mailbox_not_found
|
25
|
-
play config.mailbox_not_found
|
26
|
-
hangup
|
27
|
-
end
|
28
|
-
|
29
|
-
def save_recording(uri)
|
30
|
-
storage.save_recording mailbox[:id], @from, uri
|
31
|
-
end
|
32
|
-
end
|
33
|
-
end
|