Media Server Control Markup Language (MSCML) and Protocol: MSCML DTD

Date: 2003-09-18


Media Server Control Markup Language (MSCML) and Protocol
MSCML DTD

From: http://www.ietf.org/internet-drafts/draft-vandyke-mscml-03.txt
See also: http://xml.coverpages.org/draft-vandyke-mscml-03.txt

See also: http://xml.coverpages.org/ni2003-09-19-a.html
          SnowShore Networks Develops Royalty-Free Media
          Server Control Markup Language (MSCML)

8.1 MSCML DTD
   <?xml version="1.0" encoding="UTF-8"?>
   <!-- =========================================================== -->
   <!-- MediaServerControl Document Type Description                -->
   <!-- Copyright (c) 2001-2003 SnowShore Networks, Inc.            -->
   <!-- All Rights Reserved.                                        -->
   <!-- =========================================================== -->
   <!ELEMENT MediaServerControl (request | response | notification)>
   <!ATTLIST MediaServerControl
	     version (1.0) #REQUIRED
   >
   <!ELEMENT request (configure_conference | configure_leg |
                      play | playcollect | playrecord | stop)>
   <!ELEMENT configure_conference (inputgain?, outputgain?, subscribe?)>
   <!ATTLIST configure_conference
	     id CDATA #IMPLIED
	     reservedtalkers CDATA #IMPLIED
	     reserveconfmedia (yes | no) #IMPLIED
   >
   <!-- Tags for gain control                                       -->
   <!ELEMENT outputgain (auto | fixed)>
   <!ELEMENT inputgain (auto | fixed)>
   <!ELEMENT auto EMPTY>
   <!ATTLIST auto
	     startlevel CDATA #IMPLIED
	     targetlevel CDATA #IMPLIED
	     silencethreshold CDATA #IMPLIED
   >
   <!ELEMENT fixed EMPTY>
   <!ATTLIST fixed
	     level CDATA #IMPLIED
   >
   <!ELEMENT subscribe (events)>
   <!ELEMENT events (activetalkers)>
   <!ELEMENT activetalkers (talker+)?>
   <!ATTLIST activetalkers
	     report (yes | no) "no"
	     interval CDATA #IMPLIED
   >
   <!-- Acceptable values for interval range from 1-60 seconds      -->
   <!ELEMENT talker EMPTY>
   <!ATTLIST talker
	     callid CDATA #REQUIRED
   >
   <!-- The list of current talkers is used only when sending       -->
   <!-- notifications to the calling application.  It should never  -->
   <!-- be set when subscribing.                                    -->
   <!ELEMENT configure_leg (inputgain?, outputgain?)>
   <!ATTLIST configure_leg
	     id CDATA #IMPLIED
	     type (talker | listener) #IMPLIED
	     mixmode (full | mute | preferred | parked) #IMPLIED
	     dtmfclamp (yes | no) #IMPLIED
   >
   <!-- Stops a play or record operation in progress                -->
   <!ELEMENT stop EMPTY>
   <!-- Plays an audio prompt, no barge-in or digit collection.     -->
   <!-- <play/> generates a <response/> message when the specified  -->
   <!-- prompt has finished playing or if an error occurs.          -->
   <!ELEMENT play (prompt)?>
   <!ATTLIST play
	     id CDATA #IMPLIED
	     prompturl CDATA #IMPLIED
	     promptencoding (ulaw | alaw) #IMPLIED
   >
   <!-- Plays an audio prompt, collects DTMF digits and returns the -->
   <!-- digits to the application.  May also be used simply to      -->
   <!-- collect digits if no sequence is specified.  <playcollect/> -->
   <!-- sends an asynchronous <response/> message which is normally -->
   <!-- generated when the desired digits have been collected or a  -->
   <!-- timeout has expired.                                        -->
   <!ELEMENT playcollect (prompt?, pattern?)>
   <!ATTLIST playcollect
	     id CDATA #IMPLIED
	     prompturl CDATA #IMPLIED
	     barge (yes | no) "yes"
	     promptencoding (ulaw | alaw) #IMPLIED
	     cleardigits CDATA "yes"
	     maxdigits CDATA #IMPLIED
	     firstdigittimer CDATA #IMPLIED
	     interdigittimer CDATA #IMPLIED
	     intdigcrittimer CDATA #IMPLIED
	     extradigittimer CDATA #IMPLIED
	     returnkey CDATA "#"
	     escapekey CDATA "*"
   >
   <!-- <playrecord/> takes the audio from the associated session   -->
   <!-- and records it to the location and format specified.  It    -->
   <!-- generates a <response/> message if the request is in error, -->
   <!-- when the recording session has been interrupted by DTMF,    -->
   <!-- the specified duration has been exceeded or a timeout has   -->
   <!-- expired.  The request has an optional prompt to be played   -->
   <!-- prior to the start of recording.                            -->
   <!ELEMENT playrecord (prompt)?>
   <!ATTLIST playrecord
	     id CDATA #IMPLIED
	     prompturl CDATA #IMPLIED
	     barge (yes | no) #IMPLIED
	     cleardigits (yes | no) #IMPLIED
	     escapekey CDATA "*"
	     recurl CDATA #REQUIRED
	     mode (append | overwrite) "overwrite"
	     recencoding (ulaw | alaw) #IMPLIED
	     initsilence CDATA #IMPLIED
	     endsilence CDATA #IMPLIED
	     duration CDATA #IMPLIED
	     beep (yes | no) "yes"
	     recstopmask CDATA "01234567890*#"
   >
   <!ELEMENT prompt (audio | variable)+>
   <!ATTLIST prompt
	     locale CDATA #IMPLIED
	     baseurl CDATA #IMPLIED
   >
   <!ELEMENT audio EMPTY>
   <!ATTLIST audio
	     url CDATA #REQUIRED
	     encoding (ulaw | alaw) #IMPLIED
   >
   <!-- The encoding attribute is required for files that are not in-->
   <!-- self-describing .au or .wav format and do not have a well   -->
   <!-- known extension (.ulaw).                                    -->
   <!ELEMENT pattern (regex | digitmap)+>
   <!ELEMENT regex EMPTY>
   <!ATTLIST regex
	     value CDATA #REQUIRED
	     name CDATA #IMPLIED
   >
   <!ELEMENT digitmap EMPTY>
   <!ATTLIST digitmap
	     value CDATA #REQUIRED
	     name CDATA #IMPLIED
   >
   <!ELEMENT variable EMPTY>
   <!ATTLIST variable
	     type (date | digit | duration | month | money |
	           number | silence | string | time | weekday) #REQUIRED
		   subtype (mdy | dmy | ymd | ndn | t12 | t24 | USD |
              gen | ndn | crd | ord) #IMPLIED
	      value CDATA #REQUIRED
   >
   <!-- Play fax file                                             -->
   <!ELEMENT faxplay EMPTY>
   <!ATTLIST faxplay
	     lclid CDATA ""
	     prompturl CDATA #IMPLIED
	     recurl CDATA #IMPLIED
	     rmtid CDATA #IMPLIED
   >
   <!-- Record fax file                                           -->
   <!ELEMENT faxrecord EMPTY>
   <!ATTLIST faxrecord
	     lclid CDATA ""
	     prompturl CDATA #IMPLIED
	     recurl CDATA #IMPLIED
	     rmtid CDATA #IMPLIED
   >
   <!ELEMENT response EMPTY>
   <!ATTLIST response
	     request (configure_conference | configure_leg |
	              play | playcollect | playrecord |
		               faxrecord | faxplay | stop) #REQUIRED
			       id CDATA #IMPLIED
			       code CDATA #REQUIRED
			       text CDATA #REQUIRED
			       reason CDATA #IMPLIED
			       reclength CDATA #IMPLIED
			       patternname CDATA #IMPLIED
			       digits CDATA #IMPLIED
			       faxcode CDATA #IMPLIED
			       pages_sent CDATA #IMPLIED
			       pages_recv CDATA #IMPLIED
   >
   <!ELEMENT notification (conference)>
   <!ELEMENT conference (activetalkers)>
   <!ATTLIST conference
	     uniqueid CDATA #REQUIRED
	     numtalkers CDATA #REQUIRED
   >