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