mscml.dtd 7.6 KB

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