vobiz-python 0.1.0__py3-none-any.whl
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.
- vobiz/__init__.py +4 -0
- vobiz/base.py +237 -0
- vobiz/exceptions.py +34 -0
- vobiz/resources/__init__.py +12 -0
- vobiz/resources/accounts.py +59 -0
- vobiz/resources/applications.py +138 -0
- vobiz/resources/calls_vobiz.py +206 -0
- vobiz/resources/cdrs.py +46 -0
- vobiz/resources/credentials.py +104 -0
- vobiz/resources/endpoints.py +101 -0
- vobiz/resources/ip_access_control_lists.py +100 -0
- vobiz/resources/numbers.py +134 -0
- vobiz/resources/origination_uris.py +109 -0
- vobiz/resources/recordings.py +91 -0
- vobiz/resources/sip_trunks.py +99 -0
- vobiz/resources/subaccounts.py +101 -0
- vobiz/rest/__init__.py +2 -0
- vobiz/rest/client.py +277 -0
- vobiz/utils/__init__.py +72 -0
- vobiz/utils/interactive.py +50 -0
- vobiz/utils/jwt.py +97 -0
- vobiz/utils/location.py +6 -0
- vobiz/utils/signature_v3.py +111 -0
- vobiz/utils/template.py +50 -0
- vobiz/utils/validators.py +280 -0
- vobiz/version.py +2 -0
- vobiz/xml/ConferenceElement.py +485 -0
- vobiz/xml/DTMFElement.py +41 -0
- vobiz/xml/DialElement.py +371 -0
- vobiz/xml/MultiPartyCallElement.py +711 -0
- vobiz/xml/ResponseElement.py +414 -0
- vobiz/xml/VobizXMLElement.py +48 -0
- vobiz/xml/__init__.py +31 -0
- vobiz/xml/breakElement.py +62 -0
- vobiz/xml/contElement.py +190 -0
- vobiz/xml/emphasisElement.py +174 -0
- vobiz/xml/getDigitsElement.py +294 -0
- vobiz/xml/getInputElement.py +369 -0
- vobiz/xml/hangupElement.py +57 -0
- vobiz/xml/langElement.py +197 -0
- vobiz/xml/messageElement.py +115 -0
- vobiz/xml/numberElement.py +77 -0
- vobiz/xml/pElement.py +164 -0
- vobiz/xml/phonemeElement.py +62 -0
- vobiz/xml/playElement.py +41 -0
- vobiz/xml/preAnswerElement.py +148 -0
- vobiz/xml/prosodyElement.py +227 -0
- vobiz/xml/recordElement.py +337 -0
- vobiz/xml/redirectElement.py +42 -0
- vobiz/xml/sElement.py +154 -0
- vobiz/xml/sayAsElement.py +61 -0
- vobiz/xml/speakElement.py +249 -0
- vobiz/xml/streamElement.py +123 -0
- vobiz/xml/subElement.py +43 -0
- vobiz/xml/userElement.py +79 -0
- vobiz/xml/wElement.py +144 -0
- vobiz/xml/waitElement.py +93 -0
- vobiz/xml/xmlUtils.py +6 -0
- vobiz_python-0.1.0.dist-info/METADATA +640 -0
- vobiz_python-0.1.0.dist-info/RECORD +63 -0
- vobiz_python-0.1.0.dist-info/WHEEL +5 -0
- vobiz_python-0.1.0.dist-info/licenses/LICENSE.txt +19 -0
- vobiz_python-0.1.0.dist-info/top_level.txt +1 -0
vobiz/xml/contElement.py
ADDED
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
|
|
2
|
+
from vobiz.xml import (
|
|
3
|
+
VobizXMLElement,
|
|
4
|
+
map_type,
|
|
5
|
+
BreakElement
|
|
6
|
+
)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class ContElement(VobizXMLElement):
|
|
10
|
+
_name = 'cont'
|
|
11
|
+
_nestable = [
|
|
12
|
+
'break',
|
|
13
|
+
'emphasis',
|
|
14
|
+
'lang',
|
|
15
|
+
'p',
|
|
16
|
+
'phoneme',
|
|
17
|
+
'prosody',
|
|
18
|
+
's',
|
|
19
|
+
'say-as',
|
|
20
|
+
'sub',
|
|
21
|
+
'w',
|
|
22
|
+
'cont'
|
|
23
|
+
]
|
|
24
|
+
|
|
25
|
+
def __init__(
|
|
26
|
+
self,
|
|
27
|
+
content=None,
|
|
28
|
+
):
|
|
29
|
+
super(ContElement, self).__init__()
|
|
30
|
+
self.content = content
|
|
31
|
+
|
|
32
|
+
def to_dict(self):
|
|
33
|
+
d = {}
|
|
34
|
+
return {
|
|
35
|
+
k: str(map_type(v))
|
|
36
|
+
for k, v in d.items() if v is not None
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
def add_break(
|
|
40
|
+
self,
|
|
41
|
+
strength=None,
|
|
42
|
+
time=None
|
|
43
|
+
):
|
|
44
|
+
self.add(
|
|
45
|
+
BreakElement(
|
|
46
|
+
strength=strength,
|
|
47
|
+
time=time,
|
|
48
|
+
))
|
|
49
|
+
return self
|
|
50
|
+
|
|
51
|
+
def add_emphasis(
|
|
52
|
+
self,
|
|
53
|
+
content,
|
|
54
|
+
level=None,
|
|
55
|
+
):
|
|
56
|
+
from .emphasisElement import EmphasisElement
|
|
57
|
+
|
|
58
|
+
self.add(
|
|
59
|
+
EmphasisElement(
|
|
60
|
+
content=content,
|
|
61
|
+
level=level,
|
|
62
|
+
))
|
|
63
|
+
return self
|
|
64
|
+
|
|
65
|
+
def add_lang(
|
|
66
|
+
self,
|
|
67
|
+
content,
|
|
68
|
+
xmllang=None,
|
|
69
|
+
):
|
|
70
|
+
from .langElement import LangElement
|
|
71
|
+
|
|
72
|
+
self.add(
|
|
73
|
+
LangElement(
|
|
74
|
+
content=content,
|
|
75
|
+
xmllang=xmllang,
|
|
76
|
+
))
|
|
77
|
+
return self
|
|
78
|
+
|
|
79
|
+
def add_p(
|
|
80
|
+
self,
|
|
81
|
+
content,
|
|
82
|
+
):
|
|
83
|
+
from .pElement import PElement
|
|
84
|
+
|
|
85
|
+
self.add(
|
|
86
|
+
PElement(
|
|
87
|
+
content=content,
|
|
88
|
+
))
|
|
89
|
+
return self
|
|
90
|
+
|
|
91
|
+
def add_phoneme(
|
|
92
|
+
self,
|
|
93
|
+
content,
|
|
94
|
+
alphabet=None,
|
|
95
|
+
ph=None,
|
|
96
|
+
):
|
|
97
|
+
from .phonemeElement import PhonemeElement
|
|
98
|
+
|
|
99
|
+
self.add(
|
|
100
|
+
PhonemeElement(
|
|
101
|
+
content=content,
|
|
102
|
+
alphabet=alphabet,
|
|
103
|
+
ph=ph,
|
|
104
|
+
))
|
|
105
|
+
return self
|
|
106
|
+
|
|
107
|
+
def add_prosody(
|
|
108
|
+
self,
|
|
109
|
+
content,
|
|
110
|
+
volume=None,
|
|
111
|
+
rate=None,
|
|
112
|
+
pitch=None,
|
|
113
|
+
):
|
|
114
|
+
from .prosodyElement import ProsodyElement
|
|
115
|
+
|
|
116
|
+
self.add(
|
|
117
|
+
ProsodyElement(
|
|
118
|
+
content=content,
|
|
119
|
+
volume=volume,
|
|
120
|
+
rate=rate,
|
|
121
|
+
pitch=pitch,
|
|
122
|
+
))
|
|
123
|
+
return self
|
|
124
|
+
|
|
125
|
+
def add_s(
|
|
126
|
+
self,
|
|
127
|
+
content,
|
|
128
|
+
):
|
|
129
|
+
from .sElement import SElement
|
|
130
|
+
|
|
131
|
+
self.add(
|
|
132
|
+
SElement(
|
|
133
|
+
content=content,
|
|
134
|
+
))
|
|
135
|
+
return self
|
|
136
|
+
|
|
137
|
+
def add_say_as(
|
|
138
|
+
self,
|
|
139
|
+
content,
|
|
140
|
+
interpret_as=None,
|
|
141
|
+
format=None,
|
|
142
|
+
):
|
|
143
|
+
from .sayAsElement import SayAsElement
|
|
144
|
+
|
|
145
|
+
self.add(
|
|
146
|
+
SayAsElement(
|
|
147
|
+
content=content,
|
|
148
|
+
interpret_as=interpret_as,
|
|
149
|
+
format=format,
|
|
150
|
+
))
|
|
151
|
+
return self
|
|
152
|
+
|
|
153
|
+
def add_sub(
|
|
154
|
+
self,
|
|
155
|
+
content,
|
|
156
|
+
alias=None,
|
|
157
|
+
):
|
|
158
|
+
from .subElement import SubElement
|
|
159
|
+
|
|
160
|
+
self.add(
|
|
161
|
+
SubElement(
|
|
162
|
+
content=content,
|
|
163
|
+
alias=alias,
|
|
164
|
+
))
|
|
165
|
+
return self
|
|
166
|
+
|
|
167
|
+
def add_w(
|
|
168
|
+
self,
|
|
169
|
+
content,
|
|
170
|
+
role=None,
|
|
171
|
+
):
|
|
172
|
+
from .wElement import WElement
|
|
173
|
+
|
|
174
|
+
self.add(
|
|
175
|
+
WElement(
|
|
176
|
+
content=content,
|
|
177
|
+
role=role,
|
|
178
|
+
))
|
|
179
|
+
return self
|
|
180
|
+
|
|
181
|
+
def add_cont(
|
|
182
|
+
self,
|
|
183
|
+
content=None,
|
|
184
|
+
):
|
|
185
|
+
|
|
186
|
+
self.add(
|
|
187
|
+
ContElement(
|
|
188
|
+
content=content,
|
|
189
|
+
))
|
|
190
|
+
return self
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
from vobiz.xml import (
|
|
2
|
+
VobizXMLElement,
|
|
3
|
+
map_type,
|
|
4
|
+
BreakElement,
|
|
5
|
+
)
|
|
6
|
+
from vobiz.utils.validators import *
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class EmphasisElement(VobizXMLElement):
|
|
10
|
+
_name = 'emphasis'
|
|
11
|
+
_nestable = [
|
|
12
|
+
'break',
|
|
13
|
+
'emphasis',
|
|
14
|
+
'lang',
|
|
15
|
+
'phoneme',
|
|
16
|
+
'prosody',
|
|
17
|
+
'say-as',
|
|
18
|
+
'sub',
|
|
19
|
+
'w'
|
|
20
|
+
]
|
|
21
|
+
|
|
22
|
+
@property
|
|
23
|
+
def level(self):
|
|
24
|
+
return self.__level
|
|
25
|
+
|
|
26
|
+
@level.setter
|
|
27
|
+
def level(self, value):
|
|
28
|
+
self.__level = str(
|
|
29
|
+
value) if value is not None else None
|
|
30
|
+
|
|
31
|
+
@validate_args(
|
|
32
|
+
value=[of_type(str)],
|
|
33
|
+
)
|
|
34
|
+
def set_level(self, value):
|
|
35
|
+
self.level = value
|
|
36
|
+
return self
|
|
37
|
+
|
|
38
|
+
def __init__(
|
|
39
|
+
self,
|
|
40
|
+
content=None,
|
|
41
|
+
level=None,
|
|
42
|
+
):
|
|
43
|
+
|
|
44
|
+
super(EmphasisElement, self).__init__()
|
|
45
|
+
self.content = content
|
|
46
|
+
self.level = level
|
|
47
|
+
|
|
48
|
+
def to_dict(self):
|
|
49
|
+
d = {
|
|
50
|
+
'level': self.level,
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
return {
|
|
54
|
+
k: str(map_type(v))
|
|
55
|
+
for k, v in d.items() if v is not None
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
def add_break(
|
|
59
|
+
self,
|
|
60
|
+
strength=None,
|
|
61
|
+
time=None
|
|
62
|
+
):
|
|
63
|
+
self.add(
|
|
64
|
+
BreakElement(
|
|
65
|
+
strength=strength,
|
|
66
|
+
time=time,
|
|
67
|
+
))
|
|
68
|
+
return self
|
|
69
|
+
|
|
70
|
+
def add_lang(
|
|
71
|
+
self,
|
|
72
|
+
content,
|
|
73
|
+
xmllang=None,
|
|
74
|
+
):
|
|
75
|
+
from .langElement import LangElement
|
|
76
|
+
|
|
77
|
+
self.add(
|
|
78
|
+
LangElement(
|
|
79
|
+
content=content,
|
|
80
|
+
xmllang=xmllang,
|
|
81
|
+
))
|
|
82
|
+
return self
|
|
83
|
+
|
|
84
|
+
def add_emphasis(
|
|
85
|
+
self,
|
|
86
|
+
content,
|
|
87
|
+
level=None,
|
|
88
|
+
):
|
|
89
|
+
from .emphasisElement import EmphasisElement
|
|
90
|
+
|
|
91
|
+
self.add(
|
|
92
|
+
EmphasisElement(
|
|
93
|
+
content=content,
|
|
94
|
+
level=level,
|
|
95
|
+
))
|
|
96
|
+
return self
|
|
97
|
+
|
|
98
|
+
def add_phoneme(
|
|
99
|
+
self,
|
|
100
|
+
content,
|
|
101
|
+
alphabet=None,
|
|
102
|
+
ph=None,
|
|
103
|
+
):
|
|
104
|
+
from .phonemeElement import PhonemeElement
|
|
105
|
+
|
|
106
|
+
self.add(
|
|
107
|
+
PhonemeElement(
|
|
108
|
+
content=content,
|
|
109
|
+
alphabet=alphabet,
|
|
110
|
+
ph=ph,
|
|
111
|
+
))
|
|
112
|
+
return self
|
|
113
|
+
|
|
114
|
+
def add_prosody(
|
|
115
|
+
self,
|
|
116
|
+
content,
|
|
117
|
+
volume=None,
|
|
118
|
+
rate=None,
|
|
119
|
+
pitch=None,
|
|
120
|
+
):
|
|
121
|
+
from .prosodyElement import ProsodyElement
|
|
122
|
+
|
|
123
|
+
self.add(
|
|
124
|
+
ProsodyElement(
|
|
125
|
+
content=content,
|
|
126
|
+
volume=volume,
|
|
127
|
+
rate=rate,
|
|
128
|
+
pitch=pitch,
|
|
129
|
+
))
|
|
130
|
+
return self
|
|
131
|
+
|
|
132
|
+
def add_say_as(
|
|
133
|
+
self,
|
|
134
|
+
content,
|
|
135
|
+
interpret_as=None,
|
|
136
|
+
format=None,
|
|
137
|
+
):
|
|
138
|
+
from .sayAsElement import SayAsElement
|
|
139
|
+
|
|
140
|
+
self.add(
|
|
141
|
+
SayAsElement(
|
|
142
|
+
content=content,
|
|
143
|
+
interpret_as=interpret_as,
|
|
144
|
+
format=format,
|
|
145
|
+
))
|
|
146
|
+
return self
|
|
147
|
+
|
|
148
|
+
def add_sub(
|
|
149
|
+
self,
|
|
150
|
+
content,
|
|
151
|
+
alias=None,
|
|
152
|
+
):
|
|
153
|
+
from .subElement import SubElement
|
|
154
|
+
|
|
155
|
+
self.add(
|
|
156
|
+
SubElement(
|
|
157
|
+
content=content,
|
|
158
|
+
alias=alias,
|
|
159
|
+
))
|
|
160
|
+
return self
|
|
161
|
+
|
|
162
|
+
def add_w(
|
|
163
|
+
self,
|
|
164
|
+
content,
|
|
165
|
+
role=None,
|
|
166
|
+
):
|
|
167
|
+
from .wElement import WElement
|
|
168
|
+
|
|
169
|
+
self.add(
|
|
170
|
+
WElement(
|
|
171
|
+
content=content,
|
|
172
|
+
role=role,
|
|
173
|
+
))
|
|
174
|
+
return self
|
|
@@ -0,0 +1,294 @@
|
|
|
1
|
+
from vobiz.xml import (
|
|
2
|
+
VobizXMLElement,
|
|
3
|
+
map_type,
|
|
4
|
+
SpeakElement,
|
|
5
|
+
PlayElement,
|
|
6
|
+
WaitElement
|
|
7
|
+
)
|
|
8
|
+
from vobiz.utils.validators import *
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class GetDigitsElement(VobizXMLElement):
|
|
12
|
+
_name = 'GetDigits'
|
|
13
|
+
_nestable = [
|
|
14
|
+
'Speak',
|
|
15
|
+
'Play',
|
|
16
|
+
'Wait'
|
|
17
|
+
]
|
|
18
|
+
|
|
19
|
+
@property
|
|
20
|
+
def action(self):
|
|
21
|
+
return self.__action
|
|
22
|
+
|
|
23
|
+
@action.setter
|
|
24
|
+
def action(self, value):
|
|
25
|
+
self.__action = str(value) if value is not None else None
|
|
26
|
+
|
|
27
|
+
@validate_args(
|
|
28
|
+
value=[of_type(str)],
|
|
29
|
+
)
|
|
30
|
+
def set_action(self, value):
|
|
31
|
+
self.action = value
|
|
32
|
+
return self
|
|
33
|
+
|
|
34
|
+
@property
|
|
35
|
+
def method(self):
|
|
36
|
+
return self.__method
|
|
37
|
+
|
|
38
|
+
@method.setter
|
|
39
|
+
def method(self, value):
|
|
40
|
+
self.__method = str(value) if value is not None else None
|
|
41
|
+
|
|
42
|
+
@validate_args(
|
|
43
|
+
value=[of_type(str)],
|
|
44
|
+
)
|
|
45
|
+
def set_method(self, value):
|
|
46
|
+
self.method = value
|
|
47
|
+
return self
|
|
48
|
+
|
|
49
|
+
@property
|
|
50
|
+
def timeout(self):
|
|
51
|
+
return self.__timeout
|
|
52
|
+
|
|
53
|
+
@timeout.setter
|
|
54
|
+
def timeout(self, value):
|
|
55
|
+
self.__timeout = int(value) if value is not None else None
|
|
56
|
+
|
|
57
|
+
@validate_args(
|
|
58
|
+
value=[of_type(int)],
|
|
59
|
+
)
|
|
60
|
+
def set_timeout(self, value):
|
|
61
|
+
self.timeout = value
|
|
62
|
+
return self
|
|
63
|
+
|
|
64
|
+
@property
|
|
65
|
+
def digit_timeout(self):
|
|
66
|
+
return self.__digit_timeout
|
|
67
|
+
|
|
68
|
+
@digit_timeout.setter
|
|
69
|
+
def digit_timeout(self, value):
|
|
70
|
+
self.__digit_timeout = int(value) if value is not None else None
|
|
71
|
+
|
|
72
|
+
@validate_args(
|
|
73
|
+
value=[of_type(int)],
|
|
74
|
+
)
|
|
75
|
+
def set_digit_timeout(self, value):
|
|
76
|
+
self.digit_timeout = value
|
|
77
|
+
return self
|
|
78
|
+
|
|
79
|
+
@property
|
|
80
|
+
def finish_on_key(self):
|
|
81
|
+
return self.__finish_on_key
|
|
82
|
+
|
|
83
|
+
@finish_on_key.setter
|
|
84
|
+
def finish_on_key(self, value):
|
|
85
|
+
self.__finish_on_key = str(
|
|
86
|
+
value) if value is not None else None
|
|
87
|
+
|
|
88
|
+
@validate_args(
|
|
89
|
+
value=[of_type(str)],
|
|
90
|
+
)
|
|
91
|
+
def set_finish_on_key(self, value):
|
|
92
|
+
self.finish_on_key = value
|
|
93
|
+
return self
|
|
94
|
+
|
|
95
|
+
@property
|
|
96
|
+
def num_digits(self):
|
|
97
|
+
return self.__num_digits
|
|
98
|
+
|
|
99
|
+
@num_digits.setter
|
|
100
|
+
def num_digits(self, value):
|
|
101
|
+
self.__num_digits = int(value) if value is not None else None
|
|
102
|
+
|
|
103
|
+
@validate_args(
|
|
104
|
+
value=[of_type(int)],
|
|
105
|
+
)
|
|
106
|
+
def set_num_digits(self, value):
|
|
107
|
+
self.num_digits = value
|
|
108
|
+
return self
|
|
109
|
+
|
|
110
|
+
@property
|
|
111
|
+
def retries(self):
|
|
112
|
+
return self.__retries
|
|
113
|
+
|
|
114
|
+
@retries.setter
|
|
115
|
+
def retries(self, value):
|
|
116
|
+
self.__retries = int(value) if value is not None else None
|
|
117
|
+
|
|
118
|
+
@validate_args(
|
|
119
|
+
value=[of_type(int)],
|
|
120
|
+
)
|
|
121
|
+
def set_retries(self, value):
|
|
122
|
+
self.retries = value
|
|
123
|
+
return self
|
|
124
|
+
|
|
125
|
+
@property
|
|
126
|
+
def redirect(self):
|
|
127
|
+
return self.__redirect
|
|
128
|
+
|
|
129
|
+
@redirect.setter
|
|
130
|
+
def redirect(self, value):
|
|
131
|
+
self.__redirect = bool(value) if value is not None else None
|
|
132
|
+
|
|
133
|
+
@validate_args(
|
|
134
|
+
value=[of_type_exact(bool)],
|
|
135
|
+
)
|
|
136
|
+
def set_redirect(self, value):
|
|
137
|
+
self.redirect = value
|
|
138
|
+
return self
|
|
139
|
+
|
|
140
|
+
@property
|
|
141
|
+
def play_beep(self):
|
|
142
|
+
return self.__play_beep
|
|
143
|
+
|
|
144
|
+
@play_beep.setter
|
|
145
|
+
def play_beep(self, value):
|
|
146
|
+
self.__play_beep = bool(value) if value is not None else None
|
|
147
|
+
|
|
148
|
+
@validate_args(
|
|
149
|
+
value=[of_type_exact(bool)],
|
|
150
|
+
)
|
|
151
|
+
def set_play_beep(self, value):
|
|
152
|
+
self.play_beep = value
|
|
153
|
+
return self
|
|
154
|
+
|
|
155
|
+
@property
|
|
156
|
+
def valid_digits(self):
|
|
157
|
+
return self.__valid_digits
|
|
158
|
+
|
|
159
|
+
@valid_digits.setter
|
|
160
|
+
def valid_digits(self, value):
|
|
161
|
+
self.__valid_digits = str(
|
|
162
|
+
value) if value is not None else None
|
|
163
|
+
|
|
164
|
+
@validate_args(
|
|
165
|
+
value=[of_type(str)],
|
|
166
|
+
)
|
|
167
|
+
def set_valid_digits(self, value):
|
|
168
|
+
self.valid_digits = value
|
|
169
|
+
return self
|
|
170
|
+
|
|
171
|
+
@property
|
|
172
|
+
def invalid_digits_sound(self):
|
|
173
|
+
return self.__invalid_digits_sound
|
|
174
|
+
|
|
175
|
+
@invalid_digits_sound.setter
|
|
176
|
+
def invalid_digits_sound(self, value):
|
|
177
|
+
self.__invalid_digits_sound = str(
|
|
178
|
+
value) if value is not None else None
|
|
179
|
+
|
|
180
|
+
@validate_args(
|
|
181
|
+
value=[of_type(str)],
|
|
182
|
+
)
|
|
183
|
+
def set_invalid_digits_sound(self, value):
|
|
184
|
+
self.invalid_digits_sound = value
|
|
185
|
+
return self
|
|
186
|
+
|
|
187
|
+
@property
|
|
188
|
+
def log(self):
|
|
189
|
+
return self.__log
|
|
190
|
+
|
|
191
|
+
@log.setter
|
|
192
|
+
def log(self, value):
|
|
193
|
+
self.__log = bool(value) if value is not None else None
|
|
194
|
+
|
|
195
|
+
@validate_args(
|
|
196
|
+
value=[of_type_exact(bool)],
|
|
197
|
+
)
|
|
198
|
+
def set_log(self, value):
|
|
199
|
+
self.log = value
|
|
200
|
+
return self
|
|
201
|
+
|
|
202
|
+
def __init__(
|
|
203
|
+
self,
|
|
204
|
+
action=None,
|
|
205
|
+
method=None,
|
|
206
|
+
timeout=None,
|
|
207
|
+
digit_timeout=None,
|
|
208
|
+
finish_on_key=None,
|
|
209
|
+
num_digits=None,
|
|
210
|
+
retries=None,
|
|
211
|
+
redirect=None,
|
|
212
|
+
play_beep=None,
|
|
213
|
+
valid_digits=None,
|
|
214
|
+
invalid_digits_sound=None,
|
|
215
|
+
log=None,
|
|
216
|
+
):
|
|
217
|
+
super(GetDigitsElement, self).__init__()
|
|
218
|
+
|
|
219
|
+
self.action = action
|
|
220
|
+
self.method = method
|
|
221
|
+
self.timeout = timeout
|
|
222
|
+
self.digit_timeout = digit_timeout
|
|
223
|
+
self.finish_on_key = finish_on_key
|
|
224
|
+
self.num_digits = num_digits
|
|
225
|
+
self.retries = retries
|
|
226
|
+
self.redirect = redirect
|
|
227
|
+
self.play_beep = play_beep
|
|
228
|
+
self.valid_digits = valid_digits
|
|
229
|
+
self.invalid_digits_sound = invalid_digits_sound
|
|
230
|
+
self.log = log
|
|
231
|
+
|
|
232
|
+
def to_dict(self):
|
|
233
|
+
d = {
|
|
234
|
+
'action': self.action,
|
|
235
|
+
'method': self.method,
|
|
236
|
+
'timeout': self.timeout,
|
|
237
|
+
'digitTimeout': self.digit_timeout,
|
|
238
|
+
'finishOnKey': self.finish_on_key,
|
|
239
|
+
'numDigits': self.num_digits,
|
|
240
|
+
'retries': self.retries,
|
|
241
|
+
'redirect': self.redirect,
|
|
242
|
+
'playBeep': self.play_beep,
|
|
243
|
+
'validDigits': self.valid_digits,
|
|
244
|
+
'invalidDigitsSound': self.invalid_digits_sound,
|
|
245
|
+
'log': self.log,
|
|
246
|
+
}
|
|
247
|
+
return {
|
|
248
|
+
k: str(map_type(v))
|
|
249
|
+
for k, v in d.items() if v is not None
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
def add_speak(
|
|
253
|
+
self,
|
|
254
|
+
content,
|
|
255
|
+
voice=None,
|
|
256
|
+
language=None,
|
|
257
|
+
loop=None,
|
|
258
|
+
):
|
|
259
|
+
self.add(
|
|
260
|
+
SpeakElement(
|
|
261
|
+
content=content,
|
|
262
|
+
voice=voice,
|
|
263
|
+
language=language,
|
|
264
|
+
loop=loop,
|
|
265
|
+
))
|
|
266
|
+
return self
|
|
267
|
+
|
|
268
|
+
def add_play(
|
|
269
|
+
self,
|
|
270
|
+
content,
|
|
271
|
+
loop=None,
|
|
272
|
+
):
|
|
273
|
+
self.add(PlayElement(
|
|
274
|
+
content=content,
|
|
275
|
+
loop=loop,
|
|
276
|
+
))
|
|
277
|
+
return self
|
|
278
|
+
|
|
279
|
+
def add_wait(
|
|
280
|
+
self,
|
|
281
|
+
length=None,
|
|
282
|
+
silence=None,
|
|
283
|
+
min_silence=None,
|
|
284
|
+
beep=None,
|
|
285
|
+
):
|
|
286
|
+
|
|
287
|
+
self.add(
|
|
288
|
+
WaitElement(
|
|
289
|
+
length=length,
|
|
290
|
+
silence=silence,
|
|
291
|
+
min_silence=min_silence,
|
|
292
|
+
beep=beep,
|
|
293
|
+
))
|
|
294
|
+
return self
|