aboutsummaryrefslogtreecommitdiffstats
path: root/dtds/mscml.dtd
blob: 0a532d57282c93ed68f1e81a1be321e8f7cb2f75 (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
		http://ietfreport.isoc.org/all-ids/draft-vandyke-mscml-07.txt
		See this for current limitations: 
		http://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
>