Class: Punchblock::Translator::Freeswitch::Component::Record
- Inherits:
-
Component
show all
- Defined in:
- lib/punchblock/translator/freeswitch/component/record.rb
Constant Summary
collapse
- RECORDING_BASE_PATH =
'/var/punchblock/record'
Instance Attribute Summary
Attributes inherited from Component
#call, #call_id, #id
Instance Method Summary
collapse
Methods inherited from Component
#application, #call_ended, #handle_es_event, #initialize, #logger_id, #send_event
#safe_from_dead_actors
Instance Method Details
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
# File 'lib/punchblock/translator/freeswitch/component/record.rb', line 14
def execute
max_duration = @component_node.max_duration || -1
raise OptionError, 'A start-beep value of true is unsupported.' if @component_node.start_beep
raise OptionError, 'A start-paused value of true is unsupported.' if @component_node.start_paused
raise OptionError, 'An initial-timeout value is unsupported.' if @component_node.initial_timeout && @component_node.initial_timeout != -1
raise OptionError, 'A final-timeout value is unsupported.' if @component_node.final_timeout && @component_node.final_timeout != -1
raise OptionError, 'A max-duration value that is negative (and not -1) is invalid.' unless max_duration >= -1
@format = @component_node.format || 'wav'
component = current_actor
call.register_handler :es, :event_name => 'RECORD_STOP', [:[], :record_file_path] => filename do |event|
component.finished
end
record_args = ['start', filename]
record_args << max_duration/1000 unless max_duration == -1
call.uuid_foo :record, record_args.join(' ')
send_ref
rescue OptionError => e
with_error 'option error', e.message
end
|
#execute_command(command) ⇒ Object
39
40
41
42
43
44
45
46
47
48
|
# File 'lib/punchblock/translator/freeswitch/component/record.rb', line 39
def execute_command(command)
case command
when Punchblock::Component::Stop
call.uuid_foo :record, "stop #{filename}"
@complete_reason = stop_reason
command.response = true
else
super
end
end
|
50
51
52
|
# File 'lib/punchblock/translator/freeswitch/component/record.rb', line 50
def finished
send_complete_event(@complete_reason || success_reason)
end
|
10
11
12
|
# File 'lib/punchblock/translator/freeswitch/component/record.rb', line 10
def setup
@complete_reason = nil
end
|