blob: 97d7ee38f236c6a1d193ae7f52bb92183f29123d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
|
<? wireshark:protocol
proto_name="mscml"
media="application/mediaservercontrol+xml"
description="Media Server Control Markup Language - draft 07"
hierarchy="yes" ?>
<!--
DTD for MSCML - draft 07
https://tools.ietf.org/html/draft-vandyke-mscml-07
See this for current limitations:
https://wireshark.org/lists/ethereal-dev/200605/msg02351.html
(c)Copyright 2006 Hewlett-Packard Development Company, LP.
Contact: olivier.jacques@hp.com
-->
<!ELEMENT MediaServerControl (request | response | notification) >
<!-- <!ATTLIST MediaServerControl version <!ATTLIST > #REQUIRED > -->
<!ATTLIST MediaServerControl version CDATA #REQUIRED >
<!ELEMENT request (configure_conference | configure_leg | play | playcollect | playrecord | managecontent | faxplay | faxrecord | stop)>
<!ELEMENT configure_conference (subscribe?)>
<!ATTLIST configure_conference
id CDATA #IMPLIED
reservedtalkers NMTOKEN #IMPLIED
<!-- there should be | 1 | 0 in addition but Wireshark doesn't like it -->
reserveconfmedia (yes | no | true | false) "yes"
>
<!ELEMENT configure_leg (inputgain?, outputgain?, configure_team?, subscribe?)>
<!ATTLIST configure_leg
id CDATA #IMPLIED
type (talker | listener) #IMPLIED
mixmode (full | mute | preferred | parked | private) #IMPLIED
dtmfclamp (yes | no | true | false) #IMPLIED
toneclamp (yes | no | true | false) #IMPLIED
>
<!ELEMENT play (prompt?)>
<!ATTLIST play
id CDATA #IMPLIED
prompturl CDATA #IMPLIED
offset CDATA #IMPLIED
promptencoding CDATA #IMPLIED
>
<!ELEMENT playcollect (prompt?, pattern?)>
<!ATTLIST playcollect
id CDATA #IMPLIED
prompturl CDATA #IMPLIED
offset CDATA #IMPLIED
barge (yes | no | true | false) "yes"
promptencoding CDATA #IMPLIED
cleardigits (yes | no | true | false) "no"
maxdigits CDATA #IMPLIED
firstdigittimer CDATA "5000ms"
interdigittimer CDATA "2000ms"
extradigittimer CDATA "1000ms"
interdigitcriticaltimer CDATA #IMPLIED
skipinterval CDATA "6s"
ffkey CDATA #IMPLIED
rwkey CDATA #IMPLIED
returnkey CDATA "#"
escapekey CDATA "*"
maskdigits (yes | no | true | false) "no"
>
<!ELEMENT playrecord (prompt?)>
<!ATTLIST playrecord
id CDATA #IMPLIED
prompturl CDATA #IMPLIED
promptencoding CDATA #IMPLIED
offset CDATA "0"
barge (yes | no | true | false) "yes"
cleardigits (yes | no | true | false) "no"
escapekey CDATA "*"
recurl CDATA #REQUIRED
mode (append | overwrite) "overwrite"
recencoding CDATA #IMPLIED
initsilence CDATA #IMPLIED
endsilence CDATA #IMPLIED
duration CDATA #IMPLIED
beep (yes | no | true | false) "yes"
recstopmask CDATA "01234567890*#"
>
<!ELEMENT managecontent EMPTY>
<!ATTLIST managecontent
id CDATA #IMPLIED
fetchtimeout CDATA "10000"
mimetype CDATA #IMPLIED
name CDATA #IMPLIED
httpmethod (put | post) #IMPLIED
action (move | delete) #IMPLIED
dest CDATA #IMPLIED
src CDATA #REQUIRED
>
<!ELEMENT faxplay (prompt?)>
<!ATTLIST faxplay
id CDATA #IMPLIED
lclid CDATA #IMPLIED
prompturl CDATA #IMPLIED
recurl CDATA #IMPLIED
rmtid CDATA #IMPLIED
>
<!ELEMENT faxrecord (prompt?)>
<!ATTLIST faxrecord
id CDATA #IMPLIED
lclid CDATA #IMPLIED
prompturl CDATA #IMPLIED
recurl CDATA #IMPLIED
rmtid CDATA #IMPLIED
>
<!ELEMENT stop EMPTY>
<!ATTLIST stop
id CDATA #IMPLIED
>
<!ELEMENT response (error_info?, team?)>
<!ATTLIST response
request (configure_conference | configure_leg | play | playcollect | playrecord | managecontent | faxplay | faxrecord | stop) #REQUIRED
id CDATA #IMPLIED
code CDATA #REQUIRED
text CDATA #REQUIRED
reason CDATA #IMPLIED
reclength CDATA #IMPLIED
recduration CDATA #IMPLIED
digits CDATA #IMPLIED
name CDATA #IMPLIED
playduration CDATA #IMPLIED
playoffset CDATA #IMPLIED
faxcode CDATA #IMPLIED
pages_sent CDATA #IMPLIED
pages_recv CDATA #IMPLIED
>
<!ELEMENT notification (conference | keypress | signal)>
<!ELEMENT conference (activetalkers?)>
<!ATTLIST conference
uniqueid CDATA #REQUIRED
numtalkers CDATA #REQUIRED
>
<!ELEMENT keypress (status)>
<!ATTLIST keypress
digit CDATA #REQUIRED
length (standard | long) #REQUIRED
method (standard | long | double) #REQUIRED
interdigittime CDATA #REQUIRED
<!-- FIXME: Added for events in leg_eventsubscriptionType -->
report (standard | long | both | none) #REQUIRED
maskdigits (yes | no | true | false) "no"
<!-- /FIXME -->
>
<!ELEMENT signal EMPTY>
<!-- FIXME: added because signal can be of type CDATA and nmtoken -->
<!ATTLIST signal
type CDATA #FIXED "busy"
report (yes | no | true | false) #REQUIRED
>
<!ELEMENT prompt (audio | variable)+>
<!ATTLIST prompt
locale CDATA #IMPLIED
baseurl CDATA #IMPLIED
stoponerror (yes | no | true | false) "no"
gain CDATA "0"
gaindelta CDATA "0"
rate CDATA "0"
ratedelta CDATA "0"
repeat CDATA "1"
duration CDATA "infinite"
offset CDATA "0"
delay CDATA "0"
>
<!ELEMENT subscribe (events)>
<!ELEMENT inputgain (auto | fixed)>
<!ELEMENT outputgain (auto | fixed)>
<!ELEMENT configure_team (teammate*)>
<!ATTLIST configure_team
id CDATA #IMPLIED
action (add | delete | query | set) #REQUIRED
>
<!ELEMENT teammate EMPTY>
<!ATTLIST teammate
id CDATA #REQUIRED
>
<!ELEMENT pattern (regex+ | mgcpdigitmap | megacodigitmap)>
<!ELEMENT regex EMPTY>
<!ATTLIST regex
value CDATA #REQUIRED
name CDATA #IMPLIED
>
<!ELEMENT mgcpdigitmap EMPTY>
<!ATTLIST mgcpdigitmap
value CDATA #REQUIRED
name CDATA #IMPLIED
>
<!ELEMENT megacodigitmap EMPTY>
<!ATTLIST megacodigitmap
value CDATA #REQUIRED
name CDATA #IMPLIED
>
<!ELEMENT error_info EMPTY>
<!ATTLIST error_info
code CDATA #REQUIRED
text CDATA #REQUIRED
context CDATA #REQUIRED
>
<!ELEMENT team (teammate*)>
<!ATTLIST team
id CDATA #REQUIRED
numteam NMTOKEN #REQUIRED
>
<!-- two events elements are possible (conference_eventsubscriptionType, leg_eventsubscriptionType)
Let's take the union
It should be:
<!ELEMENT events (activetalkers)>
<!ELEMENT activetalkers EMPTY>
<!ATTLIST activetalkers
interval CDATA "60s"
>
<!ELEMENT events (keypress?, signal*)>
<!ELEMENT keypress EMPTY>
<!ATTLIST keypress
report (standard | long | both | none) #REQUIRED
maskdigits (yes | no | true | false) "no"
>
-->
<!ELEMENT events (activetalkers*, keypress*, signal*)>
<!-- FIXME: two different activetalkers defined
<!ELEMENT activetalkers EMPTY>
<!ATTLIST activetalkers
report (yes | no | true | false) #REQUIRED
interval CDATA "60s"
>
-->
<!--
<!ELEMENT signal EMPTY>
<!ATTLIST signal
type NMTOKEN #REQUIRED
report (yes | no | true | false) #REQUIRED
>
-->
<!ELEMENT activetalkers (talker*)?>
<!ATTLIST activetalkers
report (yes | no | true | false) #IMPLIED
interval CDATA "60s"
>
<!ELEMENT talker EMPTY>
<!ATTLIST talker
callid CDATA #REQUIRED
>
<!ELEMENT status EMPTY>
<!ATTLIST status
command (idle | play | collect | record) #REQUIRED
duration CDATA #REQUIRED
>
<!ELEMENT audio EMPTY>
<!ATTLIST audio
url CDATA #REQUIRED
encoding CDATA #IMPLIED
gain CDATA "0"
gaindelta CDATA "0"
rate CDATA "0"
ratedelta CDATA "0"
>
<!ELEMENT variable EMPTY>
<!ATTLIST variable
type (dat | dig | dur | mth | mny | num | sil | str | tme | wkd) #REQUIRED
<!-- FIXME: USD creates an error -> is it because of all capital? -->
<!-- subtype (mdy | dmy | ymd | ndn | t12 | t24 | USD | gen | ndn | crd | ord) #IMPLIED -->
subtype (mdy | dmy | ymd | ndn | usd | t12 | t24 | gen | ndn | crd | ord) #IMPLIED
value CDATA #REQUIRED
>
<!ELEMENT auto EMPTY>
<!ATTLIST auto
startlevel CDATA #IMPLIED
targetlevel CDATA #IMPLIED
silencethreshold CDATA #IMPLIED
>
<!ELEMENT fixed EMPTY>
<!ATTLIST fixed
level CDATA #IMPLIED
>
|