| line |
stmt |
bran |
cond |
sub |
pod |
time |
code |
|
1
|
|
|
|
|
|
|
package SignalWire::Agents::REST::Namespaces::Calling; |
|
2
|
4
|
|
|
4
|
|
31
|
use strict; |
|
|
4
|
|
|
|
|
10
|
|
|
|
4
|
|
|
|
|
167
|
|
|
3
|
4
|
|
|
4
|
|
22
|
use warnings; |
|
|
4
|
|
|
|
|
8
|
|
|
|
4
|
|
|
|
|
256
|
|
|
4
|
4
|
|
|
4
|
|
44
|
use Moo; |
|
|
4
|
|
|
|
|
8
|
|
|
|
4
|
|
|
|
|
31
|
|
|
5
|
|
|
|
|
|
|
extends 'SignalWire::Agents::REST::Namespaces::Base'; |
|
6
|
|
|
|
|
|
|
|
|
7
|
|
|
|
|
|
|
# REST call control -- all commands dispatched via single POST endpoint. |
|
8
|
|
|
|
|
|
|
|
|
9
|
|
|
|
|
|
|
sub BUILD { |
|
10
|
5
|
|
|
5
|
0
|
13872
|
my ($self) = @_; |
|
11
|
|
|
|
|
|
|
# base_path is /api/calling/calls |
|
12
|
|
|
|
|
|
|
} |
|
13
|
|
|
|
|
|
|
|
|
14
|
|
|
|
|
|
|
sub _execute { |
|
15
|
0
|
|
|
0
|
|
|
my ($self, $command, $call_id, %params) = @_; |
|
16
|
0
|
|
|
|
|
|
my %body = (command => $command, params => \%params); |
|
17
|
0
|
0
|
|
|
|
|
$body{id} = $call_id if defined $call_id; |
|
18
|
0
|
|
|
|
|
|
return $self->_http->post($self->_base_path, body => \%body); |
|
19
|
|
|
|
|
|
|
} |
|
20
|
|
|
|
|
|
|
|
|
21
|
|
|
|
|
|
|
# Call lifecycle |
|
22
|
0
|
|
|
0
|
0
|
|
sub dial { my ($s, %p) = @_; $s->_execute('dial', undef, %p) } |
|
|
0
|
|
|
|
|
|
|
|
23
|
0
|
|
|
0
|
0
|
|
sub update_call { my ($s, %p) = @_; $s->_execute('update', undef, %p) } |
|
|
0
|
|
|
|
|
|
|
|
24
|
0
|
|
|
0
|
0
|
|
sub end { my ($s, $id, %p) = @_; $s->_execute('calling.end', $id, %p) } |
|
|
0
|
|
|
|
|
|
|
|
25
|
0
|
|
|
0
|
0
|
|
sub transfer { my ($s, $id, %p) = @_; $s->_execute('calling.transfer', $id, %p) } |
|
|
0
|
|
|
|
|
|
|
|
26
|
0
|
|
|
0
|
0
|
|
sub disconnect { my ($s, $id, %p) = @_; $s->_execute('calling.disconnect', $id, %p) } |
|
|
0
|
|
|
|
|
|
|
|
27
|
|
|
|
|
|
|
|
|
28
|
|
|
|
|
|
|
# Play |
|
29
|
0
|
|
|
0
|
0
|
|
sub play { my ($s, $id, %p) = @_; $s->_execute('calling.play', $id, %p) } |
|
|
0
|
|
|
|
|
|
|
|
30
|
0
|
|
|
0
|
0
|
|
sub play_pause { my ($s, $id, %p) = @_; $s->_execute('calling.play.pause', $id, %p) } |
|
|
0
|
|
|
|
|
|
|
|
31
|
0
|
|
|
0
|
0
|
|
sub play_resume { my ($s, $id, %p) = @_; $s->_execute('calling.play.resume', $id, %p) } |
|
|
0
|
|
|
|
|
|
|
|
32
|
0
|
|
|
0
|
0
|
|
sub play_stop { my ($s, $id, %p) = @_; $s->_execute('calling.play.stop', $id, %p) } |
|
|
0
|
|
|
|
|
|
|
|
33
|
0
|
|
|
0
|
0
|
|
sub play_volume { my ($s, $id, %p) = @_; $s->_execute('calling.play.volume', $id, %p) } |
|
|
0
|
|
|
|
|
|
|
|
34
|
|
|
|
|
|
|
|
|
35
|
|
|
|
|
|
|
# Record |
|
36
|
0
|
|
|
0
|
0
|
|
sub record { my ($s, $id, %p) = @_; $s->_execute('calling.record', $id, %p) } |
|
|
0
|
|
|
|
|
|
|
|
37
|
0
|
|
|
0
|
0
|
|
sub record_pause { my ($s, $id, %p) = @_; $s->_execute('calling.record.pause', $id, %p) } |
|
|
0
|
|
|
|
|
|
|
|
38
|
0
|
|
|
0
|
0
|
|
sub record_resume { my ($s, $id, %p) = @_; $s->_execute('calling.record.resume', $id, %p) } |
|
|
0
|
|
|
|
|
|
|
|
39
|
0
|
|
|
0
|
0
|
|
sub record_stop { my ($s, $id, %p) = @_; $s->_execute('calling.record.stop', $id, %p) } |
|
|
0
|
|
|
|
|
|
|
|
40
|
|
|
|
|
|
|
|
|
41
|
|
|
|
|
|
|
# Collect |
|
42
|
0
|
|
|
0
|
0
|
|
sub collect { my ($s, $id, %p) = @_; $s->_execute('calling.collect', $id, %p) } |
|
|
0
|
|
|
|
|
|
|
|
43
|
0
|
|
|
0
|
0
|
|
sub collect_stop { my ($s, $id, %p) = @_; $s->_execute('calling.collect.stop', $id, %p) } |
|
|
0
|
|
|
|
|
|
|
|
44
|
0
|
|
|
0
|
0
|
|
sub collect_start_input_timers { my ($s, $id, %p) = @_; $s->_execute('calling.collect.start_input_timers', $id, %p) } |
|
|
0
|
|
|
|
|
|
|
|
45
|
|
|
|
|
|
|
|
|
46
|
|
|
|
|
|
|
# Detect |
|
47
|
0
|
|
|
0
|
0
|
|
sub detect { my ($s, $id, %p) = @_; $s->_execute('calling.detect', $id, %p) } |
|
|
0
|
|
|
|
|
|
|
|
48
|
0
|
|
|
0
|
0
|
|
sub detect_stop { my ($s, $id, %p) = @_; $s->_execute('calling.detect.stop', $id, %p) } |
|
|
0
|
|
|
|
|
|
|
|
49
|
|
|
|
|
|
|
|
|
50
|
|
|
|
|
|
|
# Tap |
|
51
|
0
|
|
|
0
|
0
|
|
sub tap { my ($s, $id, %p) = @_; $s->_execute('calling.tap', $id, %p) } |
|
|
0
|
|
|
|
|
|
|
|
52
|
0
|
|
|
0
|
0
|
|
sub tap_stop { my ($s, $id, %p) = @_; $s->_execute('calling.tap.stop', $id, %p) } |
|
|
0
|
|
|
|
|
|
|
|
53
|
|
|
|
|
|
|
|
|
54
|
|
|
|
|
|
|
# Stream |
|
55
|
0
|
|
|
0
|
0
|
|
sub stream { my ($s, $id, %p) = @_; $s->_execute('calling.stream', $id, %p) } |
|
|
0
|
|
|
|
|
|
|
|
56
|
0
|
|
|
0
|
0
|
|
sub stream_stop { my ($s, $id, %p) = @_; $s->_execute('calling.stream.stop', $id, %p) } |
|
|
0
|
|
|
|
|
|
|
|
57
|
|
|
|
|
|
|
|
|
58
|
|
|
|
|
|
|
# Denoise |
|
59
|
0
|
|
|
0
|
0
|
|
sub denoise { my ($s, $id, %p) = @_; $s->_execute('calling.denoise', $id, %p) } |
|
|
0
|
|
|
|
|
|
|
|
60
|
0
|
|
|
0
|
0
|
|
sub denoise_stop { my ($s, $id, %p) = @_; $s->_execute('calling.denoise.stop', $id, %p) } |
|
|
0
|
|
|
|
|
|
|
|
61
|
|
|
|
|
|
|
|
|
62
|
|
|
|
|
|
|
# Transcribe |
|
63
|
0
|
|
|
0
|
0
|
|
sub transcribe { my ($s, $id, %p) = @_; $s->_execute('calling.transcribe', $id, %p) } |
|
|
0
|
|
|
|
|
|
|
|
64
|
0
|
|
|
0
|
0
|
|
sub transcribe_stop { my ($s, $id, %p) = @_; $s->_execute('calling.transcribe.stop', $id, %p) } |
|
|
0
|
|
|
|
|
|
|
|
65
|
|
|
|
|
|
|
|
|
66
|
|
|
|
|
|
|
# AI |
|
67
|
0
|
|
|
0
|
0
|
|
sub ai_message { my ($s, $id, %p) = @_; $s->_execute('calling.ai_message', $id, %p) } |
|
|
0
|
|
|
|
|
|
|
|
68
|
0
|
|
|
0
|
0
|
|
sub ai_hold { my ($s, $id, %p) = @_; $s->_execute('calling.ai_hold', $id, %p) } |
|
|
0
|
|
|
|
|
|
|
|
69
|
0
|
|
|
0
|
0
|
|
sub ai_unhold { my ($s, $id, %p) = @_; $s->_execute('calling.ai_unhold', $id, %p) } |
|
|
0
|
|
|
|
|
|
|
|
70
|
0
|
|
|
0
|
0
|
|
sub ai_stop { my ($s, $id, %p) = @_; $s->_execute('calling.ai.stop', $id, %p) } |
|
|
0
|
|
|
|
|
|
|
|
71
|
|
|
|
|
|
|
|
|
72
|
|
|
|
|
|
|
# Live transcribe / translate |
|
73
|
0
|
|
|
0
|
0
|
|
sub live_transcribe { my ($s, $id, %p) = @_; $s->_execute('calling.live_transcribe', $id, %p) } |
|
|
0
|
|
|
|
|
|
|
|
74
|
0
|
|
|
0
|
0
|
|
sub live_translate { my ($s, $id, %p) = @_; $s->_execute('calling.live_translate', $id, %p) } |
|
|
0
|
|
|
|
|
|
|
|
75
|
|
|
|
|
|
|
|
|
76
|
|
|
|
|
|
|
# Fax |
|
77
|
0
|
|
|
0
|
0
|
|
sub send_fax_stop { my ($s, $id, %p) = @_; $s->_execute('calling.send_fax.stop', $id, %p) } |
|
|
0
|
|
|
|
|
|
|
|
78
|
0
|
|
|
0
|
0
|
|
sub receive_fax_stop { my ($s, $id, %p) = @_; $s->_execute('calling.receive_fax.stop', $id, %p) } |
|
|
0
|
|
|
|
|
|
|
|
79
|
|
|
|
|
|
|
|
|
80
|
|
|
|
|
|
|
# SIP |
|
81
|
0
|
|
|
0
|
0
|
|
sub refer { my ($s, $id, %p) = @_; $s->_execute('calling.refer', $id, %p) } |
|
|
0
|
|
|
|
|
|
|
|
82
|
|
|
|
|
|
|
|
|
83
|
|
|
|
|
|
|
# Custom events |
|
84
|
0
|
|
|
0
|
0
|
|
sub user_event { my ($s, $id, %p) = @_; $s->_execute('calling.user_event', $id, %p) } |
|
|
0
|
|
|
|
|
|
|
|
85
|
|
|
|
|
|
|
|
|
86
|
|
|
|
|
|
|
1; |