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
>