16.3. MSML Dialog Packages
16.3.1. msml-dialog-core.xsd
<?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified"> <xs:include schemaLocation="msml-core.xsd"/> <xs:include schemaLocation="msml-dialog-core-datatypes.xsd"/> </xs:schema>16.3.2. msml-dialog-core-datatypes.xsd
<?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified"> <xs:include schemaLocation="msml-core-datatypes.xsd"/> <xs:group name="momlRequest"> <xs:choice> <xs:group ref="executeType"/>
<xs:group ref="sendType"/> </xs:choice> </xs:group> <xs:element name="dialogstart" substitutionGroup="msmlRequest"> <xs:complexType> <xs:complexContent> <xs:extension base="msmlRequestType"> <xs:choice> <xs:group ref="momlRequest" minOccurs="0"/> </xs:choice> <xs:attribute name="target" type="independentID.datatype" use="required"/> <xs:attribute name="type" type="dialogLanguage.datatype" use="required"/> <xs:attribute name="name" type="msmlInstanceID.datatype"/> <xs:attribute name="src" type="xs:anyURI" use="optional"/> </xs:extension> </xs:complexContent> </xs:complexType> </xs:element> <xs:element name="dialogend" substitutionGroup="msmlRequest"> <xs:complexType> <xs:complexContent> <xs:extension base="msmlRequestType"> <xs:attribute name="id" type="dialogID.datatype" use="required"/> </xs:extension> </xs:complexContent> </xs:complexType> </xs:element> <xs:element name="dialogid" type="msmlResultSimpleType" substitutionGroup="msmlResultSimple"/> <xs:group name="executeType"> <xs:choice> <xs:element ref="primitive" maxOccurs="unbounded"/> <xs:element ref="control" maxOccurs="unbounded"/> </xs:choice> </xs:group> <xs:element name="primitive" type="primitiveType" abstract="true"/> <xs:complexType name="primitiveType"> <xs:attribute name="id" type="momlID.datatype"/> </xs:complexType> <xs:element name="control" abstract="true"/> <xs:group name="sendType"> <xs:choice> <xs:choice> <xs:element name="exit" type="exitType"/> <xs:element name="disconnect" type="exitType"/> </xs:choice>
<xs:sequence> <xs:element ref="send" maxOccurs="unbounded"/> <xs:choice minOccurs="0"> <xs:element name="exit" type="exitType"/> <xs:element name="disconnect" type="exitType"/> </xs:choice> </xs:sequence> </xs:choice> </xs:group> <xs:element name="send"> <xs:complexType> <xs:attribute name="event" type="momlEvent.datatype" use="required"/> <xs:attribute name="target" type="momlTarget.datatype" use="required"/> <xs:attribute name="namelist" type="momlNamelist.datatype"/> </xs:complexType> </xs:element> <xs:complexType name="exitType"> <xs:attribute name="namelist" type="momlNamelist.datatype"/> </xs:complexType> <xs:simpleType name="momlID.datatype"> <xs:restriction base="xs:string"> <xs:pattern value="[a-zA-Z0-9][a-zA-Z0-9._\-]*"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="momlEvent.datatype"> <xs:restriction base="xs:string"> <xs:pattern value="[a-zA-Z0-9][a-zA-Z0-9._\-]*"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="momlNamelist.datatype"> <xs:restriction base="xs:string"/> </xs:simpleType> <xs:simpleType name="dtmfDigits.datatype"> <xs:restriction base="xs:string"> <xs:pattern value="[0-9#*]+"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="iterate.datatype"> <xs:union memberTypes="xs:positiveInteger"> <xs:simpleType> <xs:restriction base="xs:negativeInteger"> <xs:minInclusive value="-1"/> </xs:restriction> </xs:simpleType> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="forever"/>
</xs:restriction> </xs:simpleType> </xs:union> </xs:simpleType> <xs:simpleType name="momlTarget.datatype"> <xs:restriction base="xs:string"> <xs:pattern value="[a-zA-Z0-9][a-zA-Z0-9._\-]*"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="duration.datatype"> <xs:restriction base="xs:string"> <xs:pattern value="(\+|\-)?([0-9]*\.)?[0-9]+(ms|s)"/> </xs:restriction> </xs:simpleType> </xs:schema>16.3.3. msml-dialog-base.xsd
<?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="unqualified" attributeFormDefault="unqualified"> <xs:include schemaLocation="msml-core.xsd"/> <xs:include schemaLocation="msml-dialog-core-datatypes.xsd"/> <xs:include schemaLocation="msml-dialog-base-datatypes.xsd"/> </xs:schema>16.3.4. msml-dialog-base-datatypes.xsd
<?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="unqualified" attributeFormDefault="unqualified"> <xs:include schemaLocation="msml-dialog-core-datatypes.xsd"/> <xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="http://www.w3.org/2001/xml.xsd"/> <xs:element name="play" substitutionGroup="primitive"> <xs:complexType> <xs:complexContent> <xs:extension base="primitiveType"> <xs:sequence> <xs:choice maxOccurs="unbounded"> <xs:element name="audio" minOccurs="0" maxOccurs="unbounded"> <xs:complexType> <xs:attribute name="uri" type="xs:anyURI" use="required"/> <xs:attribute name="iterate" type="iterate.datatype" default="1"/> <xs:attribute name="format" type="xs:string" use="optional"/>
<xs:attribute name="audiosamplerate" type="xs:positiveInteger" use="optional"/> <xs:attribute name="audiosamplesize" type="xs:positiveInteger" use="optional"/> <xs:attribute ref="xml:lang"/> </xs:complexType> </xs:element> <xs:element name="video" minOccurs="0" maxOccurs="unbounded"> <xs:complexType> <xs:attribute name="uri" type="xs:anyURI" use="required"/> <xs:attribute name="iterate" type="iterate.datatype" use="optional" default="1"/> <xs:attribute name="format" type="xs:string" use="optional"/> <xs:attribute name="audiosamplerate" type="xs:positiveInteger" use="optional"/> <xs:attribute name="audiosamplesize" type="xs:positiveInteger" use="optional"/> <xs:attribute name="codecconfig" type="xs:string" use="optional"/> <xs:attribute name="profile" type="xs:string" use="optional"/> <xs:attribute name="level" type="xs:string" use="optional"/> <xs:attribute name="imagewidth" type="xs:positiveInteger" use="optional"/> <xs:attribute name="imageheight" type="xs:positiveInteger" use="optional"/> <xs:attribute name="maxbitrate" type="xs:positiveInteger" use="optional"/> <xs:attribute name="framerate" type="xs:positiveInteger" use="optional"/> </xs:complexType> </xs:element> <xs:element name="media" minOccurs="0" maxOccurs="unbounded"> <xs:complexType> <xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:element name="audio" minOccurs="0"> <xs:complexType> <xs:attribute name="uri" type="xs:anyURI" use="required"/> <xs:attribute name="iterate" type="iterate.datatype" default="1"/> <xs:attribute name="format" type="xs:string" use="optional"/> <xs:attribute name="audiosamplerate" type="xs:positiveInteger" use="optional"/> <xs:attribute name="audiosamplesize" type="xs:positiveInteger" use="optional"/> <xs:attribute ref="xml:lang"/> </xs:complexType> </xs:element>
<xs:element name="video" minOccurs="0"> <xs:complexType> <xs:attribute name="uri" type="xs:anyURI" use="required"/> <xs:attribute name="iterate" type="iterate.datatype" use="optional" default="1"/> <xs:attribute name="format" type="xs:string" use="optional"/> <xs:attribute name="audiosamplerate" type="xs:positiveInteger" use="optional"/> <xs:attribute name="audiosamplesize" type="xs:positiveInteger" use="optional"/> <xs:attribute name="codecconfig" type="xs:string" use="optional"/> <xs:attribute name="profile" type="xs:string" use="optional"/> <xs:attribute name="level" type="xs:string" use="optional"/> <xs:attribute name="imagewidth" type="xs:positiveInteger" use="optional"/> <xs:attribute name="imageheight" type="xs:positiveInteger" use="optional"/> <xs:attribute name="maxbitrate" type="xs:positiveInteger" use="optional"/> <xs:attribute name="framerate" type="xs:positiveInteger" use="optional"/> </xs:complexType> </xs:element> </xs:choice> </xs:complexType> </xs:element> <xs:element ref="smedia" minOccurs="0" maxOccurs="unbounded"/> </xs:choice> <xs:choice minOccurs="0"> <xs:element name="playexit"> <xs:complexType> <xs:group ref="sendType"/> </xs:complexType> </xs:element> </xs:choice> </xs:sequence> <xs:attribute name="interval" type="posDuration.datatype" use="optional"/> <xs:attribute name="iterate" type="iterate.datatype" use="optional" default="1"/> <xs:attribute name="offset" type="duration.datatype" use="optional"/> <xs:attribute name="initial" use="optional" default="generate"> <xs:simpleType> <xs:restriction base="xs:string">
<xs:enumeration value="generate"/> <xs:enumeration value="suspend"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="maxtime" type="posDuration.datatype" use="optional"/> <xs:attribute name="skip" type="duration.datatype" use="optional" default="3s"/> <xs:attribute name="barge" type="boolean.datatype" use="optional" default="false"/> <xs:attribute name="cleardb" type="boolean.datatype" use="optional" default="false"/> <xs:attribute ref="xml:lang"/> </xs:extension> </xs:complexContent> </xs:complexType> </xs:element> <xs:element name="record" substitutionGroup="primitive"> <xs:complexType> <xs:complexContent> <xs:extension base="primitiveType"> <xs:choice minOccurs="0"> <xs:element ref="play" minOccurs="0" maxOccurs="unbounded"/> <xs:element ref="tonegen" minOccurs="0" maxOccurs="unbounded"/> <xs:element name="recordexit"> <xs:complexType> <xs:group ref="sendType"/> </xs:complexType> </xs:element> </xs:choice> <xs:attribute name="append" type="boolean.datatype" use="optional" default="false"/> <xs:attribute name="dest" type="xs:anyURI" use="optional"/> <xs:attribute name="audiodest" type="xs:anyURI" use="optional"/> <xs:attribute name="videodest" type="xs:anyURI" use="optional"/> <xs:attribute name="format" use="required"> <xs:simpleType> <xs:restriction base="xs:string"/> </xs:simpleType> </xs:attribute> <xs:attribute name="codecconfig" use="optional"> <xs:simpleType> <xs:restriction base="xs:string"/> </xs:simpleType> </xs:attribute> <xs:attribute name="audiosamplerate" type="xs:positiveInteger" use="optional"/>
<xs:attribute name="audiosamplesize" type="xs:positiveInteger" use="optional"/> <xs:attribute name="profile" use="optional"> <xs:simpleType> <xs:restriction base="xs:string"/> </xs:simpleType> </xs:attribute> <xs:attribute name="level" use="optional"> <xs:simpleType> <xs:restriction base="xs:string"/> </xs:simpleType> </xs:attribute> <xs:attribute name="imagewidth" type="xs:positiveInteger" use="optional"/> <xs:attribute name="imageheight" type="xs:positiveInteger" use="optional"/> <xs:attribute name="maxbitrate" type="xs:positiveInteger" use="optional"/> <xs:attribute name="framerate" type="xs:positiveInteger" use="optional"/> <xs:attribute name="maxtime" type="posDuration.datatype" use="required"/> <xs:attribute name="initial" use="optional" default="create"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="create"/> <xs:enumeration value="suspend"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="prespeech" type="posDuration.datatype" use="optional" default="0s"/> <xs:attribute name="postspeech" type="posDuration.datatype" use="optional" default="0s"/> <xs:attribute name="termkey" use="optional"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:pattern value="[0-9#*ABCD]"/> </xs:restriction> </xs:simpleType> </xs:attribute> </xs:extension> </xs:complexContent> </xs:complexType> </xs:element> <xs:element name="dtmf" substitutionGroup="primitive"> <xs:complexType> <xs:complexContent>
<xs:extension base="primitiveType"> <xs:sequence> <xs:element name="pattern" maxOccurs="unbounded"> <xs:complexType> <xs:group ref="sendType"/> <xs:attribute name="digits" type="xs:string" use="required"/> <xs:attribute name="format"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="mgcp"/> <xs:enumeration value="megaco"/> <xs:enumeration value="moml+digits"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="iterate" type="iterate.datatype" default="1"/> </xs:complexType> </xs:element> <xs:element name="detect" minOccurs="0"> <xs:complexType> <xs:group ref="sendType"/> </xs:complexType> </xs:element> <xs:element name="noinput" type="iterateSendType" minOccurs="0"/> <xs:element name="nomatch" type="iterateSendType" minOccurs="0"/> <xs:element name="dtmfexit" minOccurs="0"> <xs:complexType> <xs:group ref="sendType"/> </xs:complexType> </xs:element> <xs:element ref="play" minOccurs="0"/> </xs:sequence> <xs:attribute name="cleardb" type="boolean.datatype" default="true"/> <xs:attribute name="fdt" type="posDuration.datatype" default="0s"/> <xs:attribute name="idt" type="posDuration.datatype" default="4s"/> <xs:attribute name="edt" type="posDuration.datatype" default="4s"/> <xs:attribute name="starttimer" type="boolean.datatype" default="false"/> <xs:attribute name="iterate" type="iterate.datatype" default="1"/> <xs:attribute name="ldd" type="posDuration.datatype" default="0s"/> </xs:extension> </xs:complexContent> </xs:complexType> </xs:element> <xs:element name="collect" substitutionGroup="primitive"> <xs:complexType>
<xs:complexContent> <xs:extension base="primitiveType"> <xs:sequence> <xs:element name="pattern" maxOccurs="unbounded"> <xs:complexType> <xs:group ref="sendType"/> <xs:attribute name="digits" type="xs:string" use="required"/> <xs:attribute name="format"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="mgcp"/> <xs:enumeration value="megaco"/> <xs:enumeration value="moml+digits"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="iterate" type="iterate.datatype" default="1"/> </xs:complexType> </xs:element> <xs:element name="detect" minOccurs="0"> <xs:complexType> <xs:group ref="sendType"/> </xs:complexType> </xs:element> <xs:element name="noinput" type="iterateSendType" minOccurs="0"/> <xs:element name="nomatch" type="iterateSendType" minOccurs="0"/> <xs:element name="dtmfexit" minOccurs="0"> <xs:complexType> <xs:group ref="sendType"/> </xs:complexType> </xs:element> <xs:element ref="play" minOccurs="0"/> </xs:sequence> <xs:attribute name="cleardb" type="boolean.datatype" default="true"/> <xs:attribute name="fdt" type="posDuration.datatype" default="0s"/> <xs:attribute name="idt" type="posDuration.datatype" default="4s"/> <xs:attribute name="edt" type="posDuration.datatype" default="4s"/> <xs:attribute name="starttimer" type="boolean.datatype" default="false"/> <xs:attribute name="iterate" type="iterate.datatype" default="1"/> <xs:attribute name="ldd" type="posDuration.datatype"/> </xs:extension> </xs:complexContent> </xs:complexType> </xs:element> <xs:element name="dtmfgen" substitutionGroup="primitive">
<xs:complexType> <xs:complexContent> <xs:extension base="primitiveType"> <xs:choice minOccurs="0"> <xs:element name="dtmfgenexit"> <xs:complexType> <xs:group ref="sendType"/> </xs:complexType> </xs:element> </xs:choice> <xs:attribute name="level" use="optional" default="-6"> <xs:simpleType> <xs:restriction base="xs:nonPositiveInteger"> <xs:maxInclusive value="0"/> <xs:minInclusive value="-96"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="digits" type="dtmfDigits.datatype" use="required"/> <xs:attribute name="dur" type="posDuration.datatype" use="optional" default="100ms"/> <xs:attribute name="interval" type="posDuration.datatype" use="optional" default="100ms"/> </xs:extension> </xs:complexContent> </xs:complexType> </xs:element> <xs:element name="tonegen" substitutionGroup="primitive"> <xs:complexType> <xs:complexContent> <xs:extension base="primitiveType"> <xs:choice minOccurs="0"> <xs:element name="tonegenexit" minOccurs="0"> <xs:complexType> <xs:group ref="sendType"/> </xs:complexType> </xs:element> <xs:element name="tone" maxOccurs="unbounded"> <xs:complexType> <xs:sequence> <xs:element name="tone1"> <xs:complexType> <xs:attribute name="freq" use="required"> <xs:simpleType> <xs:restriction base="xs:unsignedInt"> <xs:minInclusive value="0"/> <xs:maxInclusive value="3999"/>
</xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="atten" use="required"> <xs:simpleType> <xs:restriction base="xs:nonPositiveInteger"> <xs:minInclusive value="-96"/> <xs:maxInclusive value="0"/> </xs:restriction> </xs:simpleType> </xs:attribute> </xs:complexType> </xs:element> <xs:element name="tone2"> <xs:complexType> <xs:attribute name="freq" use="required"> <xs:simpleType> <xs:restriction base="xs:unsignedInt"> <xs:minInclusive value="0"/> <xs:maxInclusive value="3999"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="atten" use="required"> <xs:simpleType> <xs:restriction base="xs:nonPositiveInteger"> <xs:minInclusive value="-96"/> <xs:maxInclusive value="0"/> </xs:restriction> </xs:simpleType> </xs:attribute> </xs:complexType> </xs:element> <xs:element name="silence" minOccurs="0" maxOccurs="unbounded"> <xs:complexType> <xs:attribute name="duration" type="duration.datatype" use="required"/> </xs:complexType> </xs:element> </xs:sequence> <xs:attribute name="duration" use="required"> <xs:simpleType> <xs:restriction base="duration.datatype"/> </xs:simpleType> </xs:attribute> <xs:attribute name="iterate" type="iterate.datatype" use="optional" default="1"/> </xs:complexType>
</xs:element> <xs:element name="silence" minOccurs="0" maxOccurs="unbounded"> <xs:complexType> <xs:attribute name="duration" type="duration.datatype" use="required"/> </xs:complexType> </xs:element> </xs:choice> <xs:attribute name="iterate" type="iterate.datatype" use="optional" default="1"/> </xs:extension> </xs:complexContent> </xs:complexType> </xs:element> <xs:complexType name="iterateSendType"> <xs:group ref="sendType"/> <xs:attribute name="iterate" type="iterate.datatype" default="1"/> </xs:complexType> <xs:element name="smedia" type="smediaType" abstract="true"/> <xs:complexType name="smediaType"> <xs:attribute ref="xml:lang"/> <xs:attribute name="iterate" type="iterate.datatype"/> </xs:complexType> <xs:element name="var" substitutionGroup="smedia"> <xs:complexType> <xs:complexContent> <xs:extension base="smediaType"> <xs:attribute name="type" use="required"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="date"/> <xs:enumeration value="digits"/> <xs:enumeration value="duration"/> <xs:enumeration value="month"/> <xs:enumeration value="money"/> <xs:enumeration value="number"/> <xs:enumeration value="silence"/> <xs:enumeration value="time"/> <xs:enumeration value="weekday"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="subtype" type="xs:string" use="optional"/> <xs:attribute name="value" type="xs:string" use="required"/> </xs:extension> </xs:complexContent>
</xs:complexType> </xs:element> </xs:schema>16.3.5. msml-dialog-transform.xsd
<?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="unqualified" attributeFormDefault="unqualified"> <xs:include schemaLocation="msml-core.xsd"/> <xs:include schemaLocation="msml-dialog-core-datatypes.xsd"/> <xs:include schemaLocation="msml-dialog-transform-datatypes.xsd"/> </xs:schema>16.3.6. msml-dialog-transform-datatypes.xsd
<?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="unqualified" attributeFormDefault="unqualified"> <xs:include schemaLocation="msml-dialog-core-datatypes.xsd"/> <xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="http://www.w3.org/2001/xml.xsd"/> <xs:element name="vad" substitutionGroup="primitive"> <xs:complexType> <xs:complexContent> <xs:extension base="primitiveType"> <xs:all> <xs:element name="voice" type="vadPatternType" minOccurs="0"/> <xs:element name="silence" type="vadPatternType" minOccurs="0"/> <xs:element name="tvoice" type="vadPatternType" minOccurs="0"/> <xs:element name="tsilence" type="vadPatternType" minOccurs="0"/> </xs:all> <xs:attribute name="starttimer" type="boolean.datatype" default="false"/> </xs:extension> </xs:complexContent> </xs:complexType> </xs:element> <xs:element name="gain" substitutionGroup="primitive"> <xs:complexType> <xs:complexContent> <xs:extension base="primitiveType"> <xs:attribute name="incr" default="3"> <xs:simpleType> <xs:restriction base="xs:positiveInteger"> <xs:maxInclusive value="96"/>
</xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="amt" use="required"> <xs:simpleType> <xs:restriction base="xs:integer"> <xs:minInclusive value="-96"/> <xs:maxInclusive value="96"/> </xs:restriction> </xs:simpleType> </xs:attribute> </xs:extension> </xs:complexContent> </xs:complexType> </xs:element> <xs:element name="agc" substitutionGroup="primitive"> <xs:complexType> <xs:complexContent> <xs:extension base="primitiveType"> <xs:attribute name="tgtlvl" use="required"> <xs:simpleType> <xs:restriction base="xs:nonPositiveInteger"> <xs:minInclusive value="-40"/> <xs:maxInclusive value="0"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="maxgain" default="10"> <xs:simpleType> <xs:restriction base="xs:nonNegativeInteger"> <xs:minInclusive value="0"/> <xs:maxInclusive value="40"/> </xs:restriction> </xs:simpleType> </xs:attribute> </xs:extension> </xs:complexContent> </xs:complexType> </xs:element> <xs:element name="gate" substitutionGroup="primitive"> <xs:complexType> <xs:complexContent> <xs:extension base="primitiveType"> <xs:attribute name="initial" default="pass"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="pass"/> <xs:enumeration value="halt"/>
</xs:restriction> </xs:simpleType> </xs:attribute> </xs:extension> </xs:complexContent> </xs:complexType> </xs:element> <xs:element name="clamp" substitutionGroup="primitive"> <xs:complexType> <xs:complexContent> <xs:extension base="primitiveType"/> </xs:complexContent> </xs:complexType> </xs:element> <xs:element name="relay" substitutionGroup="primitive"> <xs:complexType> <xs:complexContent> <xs:extension base="primitiveType"/> </xs:complexContent> </xs:complexType> </xs:element> <xs:complexType name="vadPatternType"> <xs:group ref="sendType"/> <xs:attribute name="iterate" type="iterate.datatype" default="1"/> <xs:attribute name="len" type="posDuration.datatype" use="required"/> <xs:attribute name="sen" type="posDuration.datatype" use="optional"/> </xs:complexType> </xs:schema>16.3.7. msml-dialog-group.xsd
<?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="unqualified" attributeFormDefault="unqualified"> <xs:include schemaLocation="msml-core.xsd"/> <xs:include schemaLocation="msml-dialog-core-datatypes.xsd"/> <xs:include schemaLocation="msml-dialog-base-datatypes.xsd"/> <xs:include schemaLocation="msml-dialog-group-datatypes.xsd"/> </xs:schema>16.3.8. msml-dialog-group-datatypes.xsd
<?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="unqualified" attributeFormDefault="unqualified"> <xs:include schemaLocation="msml-core-datatypes.xsd"/>
<xs:include schemaLocation="msml-dialog-core-datatypes.xsd"/> <xs:include schemaLocation="msml-dialog-base-datatypes.xsd"/> <xs:include schemaLocation="msml-dialog-transform-datatypes.xsd"/> <xs:element name="group" substitutionGroup="control"> <xs:complexType> <xs:sequence> <xs:group ref="executeType"/> <xs:element name="groupexit" minOccurs="0"> <xs:complexType> <xs:group ref="sendType"/> </xs:complexType> </xs:element> </xs:sequence> <xs:attribute name="id" type="momlID.datatype"/> <xs:attribute name="topology" use="required"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="serial"/> <xs:enumeration value="parallel"/> <xs:enumeration value="fullduplex"/> </xs:restriction> </xs:simpleType> </xs:attribute> </xs:complexType> </xs:element> </xs:schema>16.3.9. msml-dialog-speech.xsd
<?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified"> <xs:include schemaLocation="msml-core.xsd"/> <xs:include schemaLocation="msml-dialog-core-datatypes.xsd"/> <xs:include schemaLocation="msml-dialog-base-datatypes.xsd"/> <xs:include schemaLocation="msml-dialog-speech-datatypes.xsd"/> </xs:schema>16.3.10. msml-dialog-speech-datatypes.xsd
<?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified"> <xs:include schemaLocation="msml-dialog-core-datatypes.xsd"/> <xs:include schemaLocation="msml-dialog-base-datatypes.xsd"/> <xs:include schemaLocation="http://www.w3.org/TR/2002/WD-speech-
synthesis-20020405/synthesis-core.xsd"/> <xs:include schemaLocation="http://www.w3.org/TR/speech- grammar/grammar-core.xsd"/> <xs:element name="speech" substitutionGroup="primitive"> <xs:complexType> <xs:complexContent> <xs:extension base="primitiveType"> <xs:sequence> <xs:element name="grammar" maxOccurs="unbounded"> <xs:complexType> <xs:complexContent> <xs:extension base="grammar"> <xs:choice> <xs:element name="match" type="iterateSendType" minOccurs="0"/> </xs:choice> <xs:attribute name="uri" type="xs:anyURI"/> <xs:attribute name="iterate" type="iterate.datatype" default="1"/> </xs:extension> </xs:complexContent> </xs:complexType> </xs:element> <xs:element name="noinput" type="iterateSendType" minOccurs="0"/> <xs:element name="nomatch" type="iterateSendType" minOccurs="0"/> <xs:element name="speechexit" minOccurs="0"> <xs:complexType> <xs:group ref="sendType"/> </xs:complexType> </xs:element> </xs:sequence> <xs:attribute name="noint" type="posDuration.datatype"/> <xs:attribute name="norect" type="posDuration.datatype"/> <xs:attribute name="spcmplt" type="posDuration.datatype"/> <xs:attribute name="confidence"> <xs:simpleType> <xs:restriction base="xs:positiveInteger"> <xs:maxInclusive value="100"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="sens" type="xs:positiveInteger"/> <xs:attribute name="starttimer" type="boolean.datatype" default="false"/> <xs:attribute name="iterate" type="iterate.datatype" default="1"/> </xs:extension> </xs:complexContent> </xs:complexType>
</xs:element> <xs:element name="tts" type="smediaType" substitutionGroup="smedia"/> </xs:schema>16.3.11. msml-dialog-fax-detect.xsd
<?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified"> <xs:include schemaLocation="msml-core.xsd"/> <xs:include schemaLocation="msml-dialog-core-datatypes.xsd"/> <xs:include schemaLocation="msml-dialog-fax-detect-datatypes.xsd"/> </xs:schema>16.3.12. msml-dialog-fax-detect-datatypes.xsd
<?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified"> <xs:include schemaLocation="msml-dialog-core-datatypes.xsd"/> <xs:element name="faxdetect" substitutionGroup="primitive"> <xs:complexType> <xs:complexContent> <xs:extension base="primitiveType"> <xs:choice minOccurs="0"> <xs:element name="faxdetectexit"> <xs:complexType> <xs:group ref="sendType"/> </xs:complexType> </xs:element> </xs:choice> </xs:extension> </xs:complexContent> </xs:complexType> </xs:element> </xs:schema>16.3.13. msml-dialog-fax-sendrecv.xsd
<?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified"> <xs:include schemaLocation="msml-core.xsd"/> <xs:include schemaLocation="msml-dialog-core-datatypes.xsd"/> <xs:include schemaLocation="msml-dialog-fax-sendrecv-datatypes.xsd"/>
</xs:schema>16.3.14. msml-dialog-fax-sendrecv-datatypes.xsd
<?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified"> <xs:include schemaLocation="msml-dialog-core-datatypes.xsd"/> <xs:element name="faxsend" substitutionGroup="primitive"> <xs:complexType> <xs:complexContent> <xs:extension base="primitiveType"> <xs:sequence> <xs:element name="sendobj" type="sendobjType" minOccurs="0" maxOccurs="unbounded"/> <xs:element name="hdrfooter" type="hdrfooterType" minOccurs="0"/> <xs:element name="rxpoll" minOccurs="0"> <xs:complexType> <xs:sequence> <xs:element name="rcvobj" type="rcvobjType" maxOccurs="unbounded"/> <xs:element name="hdrfooter" type="hdrfooterType" minOccurs="0"/> </xs:sequence> <xs:attribute name="rmtid" type="faxid.datatype" use="required"/> </xs:complexType> </xs:element> <xs:group ref="faxstatusrequest"/> </xs:sequence> <xs:attribute name="lclid" type="faxid.datatype" use="optional"/> <xs:attribute name="minspeed" type="faxspeed.datatype" use="optional"/> <xs:attribute name="maxspeed" type="faxspeed.datatype" use="optional"/> <xs:attribute name="ecm" type="boolean.datatype" use="optional"/> </xs:extension> </xs:complexContent> </xs:complexType> </xs:element> <xs:element name="faxrecv" substitutionGroup="primitive"> <xs:complexType> <xs:complexContent> <xs:extension base="primitiveType"> <xs:sequence> <xs:element name="rcvobj" type="rcvobjType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="hdrfooter" type="hdrfooterType" minOccurs="0"/> <xs:element name="txpoll" minOccurs="0"> <xs:complexType> <xs:sequence> <xs:element name="sendobj" type="sendobjType" maxOccurs="unbounded"/> <xs:element name="hdrfooter" type="hdrfooterType" minOccurs="0"/> </xs:sequence> <xs:attribute name="rmtid" type="faxid.datatype"/> </xs:complexType> </xs:element> <xs:group ref="faxstatusrequest"/> </xs:sequence> <xs:attribute name="lclid" type="faxid.datatype" use="optional"/> <xs:attribute name="ecm" type="boolean.datatype" default="true"/> </xs:extension> </xs:complexContent> </xs:complexType> </xs:element> <xs:group name="faxstatusrequest"> <xs:sequence> <xs:element name="faxstart" minOccurs="0"/> <xs:element name="faxnegotiate" minOccurs="0"/> <xs:element name="faxpagedone" minOccurs="0"/> <xs:element name="faxobjectdone" minOccurs="0"/> <xs:element name="faxopcomplete" minOccurs="0"/> <xs:element name="faxpollstart" minOccurs="0"/> </xs:sequence> </xs:group> <xs:complexType name="hdrfooterType"> <xs:choice> <xs:element name="format" type="xs:string" minOccurs="0" maxOccurs="unbounded"/> </xs:choice> <xs:attribute name="type" type="hdrfooter.datatype"/> <xs:attribute name="style" type="hdrfooterstyle.datatype"/> </xs:complexType> <xs:complexType name="formatType"> <xs:simpleContent> <xs:extension base="xs:string"> <xs:attribute name="style"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="append"/> <xs:enumeration value="overlay"/> <xs:enumeration value="replace"/> </xs:restriction>
</xs:simpleType> </xs:attribute> </xs:extension> </xs:simpleContent> </xs:complexType> <xs:complexType name="rcvobjType"> <xs:attribute name="objuri" type="xs:anyURI" use="required"/> <xs:attribute name="maxpages" type="xs:positiveInteger"/> </xs:complexType> <xs:complexType name="sendobjType"> <xs:attribute name="objuri" type="xs:anyURI" use="required"/> <xs:attribute name="startpage" type="xs:positiveInteger"/> <xs:attribute name="pagecount" type="xs:positiveInteger"/> </xs:complexType> <xs:simpleType name="faxid.datatype"> <xs:restriction base="xs:string"> <xs:pattern value="[0-9+*- ]{20}"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="faxspeed.datatype"> <xs:restriction base="xs:string"> <xs:enumeration value="2400"/> <xs:enumeration value="4800"/> <xs:enumeration value="7200"/> <xs:enumeration value="9600"/> <xs:enumeration value="12000"/> <xs:enumeration value="14400"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="hdrfooter.datatype"> <xs:restriction base="xs:string"> <xs:enumeration value="header"/> <xs:enumeration value="footer"/> <xs:enumeration value="autohdr"/> <xs:enumeration value="nohdr"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="hdrfooterstyle.datatype"> <xs:restriction base="xs:string"> <xs:enumeration value="append"/> <xs:enumeration value="overlay"/> <xs:enumeration value="replace"/> </xs:restriction> </xs:simpleType> </xs:schema>
16.4. MSML Audit Packages
16.4.1. msml-audit-core.xsd
<?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified"> <xs:include schemaLocation="msml-core.xsd"/> <xs:include schemaLocation="msml-core-datatypes.xsd"/> <xs:include schemaLocation="msml-audit-core-datatypes.xsd"/> </xs:schema>16.4.2. msml-audit-core-datatypes.xsd
<?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified"> <xs:include schemaLocation="msml-core-datatypes.xsd"/> <xs:element name="audit" substitutionGroup="msmlRequest"> <xs:complexType> <xs:complexContent> <xs:extension base="msmlRequestType"> <xs:attribute name="queryid" type="auditQueryId.datatype" use="required"/> <xs:attribute name="statelist" type="auditStateList.datatype" use="optional"/> </xs:extension> </xs:complexContent> </xs:complexType> </xs:element> <xs:element name="auditresult" substitutionGroup="msmlResultComplex"> <xs:complexType> <xs:complexContent> <xs:extension base="msmlResultComplexType"> <xs:choice maxOccurs="unbounded"> <xs:element ref="stateParameter"/> <xs:element ref="stateParameterSimple"/> </xs:choice> <xs:attribute name="targetid" type="independentID.datatype" use="required"/> </xs:extension> </xs:complexContent> </xs:complexType> </xs:element> <xs:element name="stateParameter" type="stateParameterType" abstract="true"/>
<xs:element name="stateParameterSimple" type="stateParameterSimpleType" abstract="true"/> <xs:complexType name="stateParameterType"/> <xs:simpleType name="stateParameterSimpleType"> <xs:restriction base="xs:string"/> </xs:simpleType> <xs:simpleType name="auditQueryId.datatype"> <xs:restriction base="xs:string"> <xs:pattern value="conf:[a-zA-Z0-9.:\-_]+"/> <xs:pattern value="conn:[a-zA-Z0-9.:\-_]+"/> <xs:pattern value="conf:\*"/> <xs:pattern value="conn:\*"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="auditStateList.datatype"> <xs:restriction base="xs:string"/> </xs:simpleType> </xs:schema>16.4.3. msml-audit-conf.xsd
<?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified"> <xs:include schemaLocation="msml-core.xsd"/> <xs:include schemaLocation="msml-core-datatypes.xsd"/> <xs:include schemaLocation="msml-audit-core-datatypes.xsd"/> <xs:include schemaLocation="msml-audit-dialog-datatypes.xsd"/> <xs:include schemaLocation="msml-audit-stream-datatypes.xsd"/> <xs:include schemaLocation="msml-audit-conf-datatypes.xsd"/> </xs:schema>16.4.4. msml-audit-conf-datatypes.xsd
<?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified"> <xs:include schemaLocation="msml-conf-core-datatypes.xsd"/> <xs:include schemaLocation="msml-audit-core-datatypes.xsd"/> <xs:element name="confconfig" substitutionGroup="stateParameter"> <xs:complexType> <xs:complexContent> <xs:extension base="stateParameterType"> <xs:sequence> <xs:element name="audiomix" type="audioMixType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="videolayout" type="videoLayoutType" minOccurs="0" maxOccurs="unbounded"/> <xs:element name="controller" type="connID.datatype" minOccurs="0"/> </xs:sequence> <xs:attribute name="deletewhen" use="optional" default="never"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="nomedia"/> <xs:enumeration value="nocontrol"/> <xs:enumeration value="never"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="term" type="boolean.datatype" use="optional" default="true"/> </xs:extension> </xs:complexContent> </xs:complexType> </xs:element> </xs:schema>16.4.5. msml-audit-conn.xsd
<?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified"> <xs:include schemaLocation="msml-core.xsd"/> <xs:include schemaLocation="msml-audit-core-datatypes.xsd"/> <xs:include schemaLocation="msml-audit-dialog-datatypes.xsd"/> <xs:include schemaLocation="msml-audit-stream-datatypes.xsd"/> <xs:include schemaLocation="msml-audit-conn-datatypes.xsd"/> </xs:schema>16.4.6. msml-audit-conn-datatypes.xsd
<?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified"> <xs:include schemaLocation="msml-audit-core-datatypes.xsd"/> <xs:element name="sipdialog" substitutionGroup="stateParameter"> <xs:complexType> <xs:complexContent> <xs:extension base="stateParameterType"> <xs:sequence> <xs:element name="localseq" type="xs:integer" minOccurs="0"/>
<xs:element name="remoteseq" type="xs:int" minOccurs="0"/> <xs:element name="localuri" type="xs:string" minOccurs="0"/> <xs:element name="remoteuri" type="xs:string" minOccurs="0"/> <xs:element name="remotetarget" type="xs:string" minOccurs="0"/> <xs:element name="routeset" type="xs:string" minOccurs="0"/> </xs:sequence> <xs:attribute name="callid" type="xs:string" use="required"/> <xs:attribute name="localtag" type="xs:string" use="required"/> <xs:attribute name="remotetag" type="xs:string" use="required"/> </xs:extension> </xs:complexContent> </xs:complexType> </xs:element> <xs:element name="localsdp" type="stateParameterSimpleType" substitutionGroup="stateParameterSimple"/> <xs:element name="remotesdp" type="stateParameterSimpleType" substitutionGroup="stateParameterSimple"/> </xs:schema>16.4.7. msml-audit-dialog-datatypes.xsd
Audit Dialog functionality requires use of either the Audit Conf Package or the Audit Conn Package. <?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified"> <xs:include schemaLocation="msml-audit-core-datatypes.xsd"/> <xs:element name="dialog" substitutionGroup="stateParameter"> <xs:complexType> <xs:complexContent> <xs:extension base="stateParameterType"> <xs:sequence> <xs:element name="duration" type="xs:positiveInteger" minOccurs="0"/> <xs:element name="primitive" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:pattern value="play"/> <xs:pattern value="dtmf"/> <xs:pattern value="collect"/> <xs:pattern value="dtmfgen"/> <xs:pattern value="tonegen"/> <xs:pattern value="record"/> <xs:pattern value="none"/> </xs:restriction> </xs:simpleType>
</xs:element> <xs:element name="controller" type="connID.datatype" minOccurs="0"/> </xs:sequence> <xs:attribute name="name" type="msmlInstanceID.datatype" use="required"/> <xs:attribute name="src" type="xs:anyURI" use="optional"/> <xs:attribute name="type" type="dialogLanguage.datatype" use="required"/> </xs:extension> </xs:complexContent> </xs:complexType> </xs:element> </xs:schema>16.4.8. msml-audit-stream-datatypes.xsd
Audit Stream functionality requires use of either the Audit Conf Package or the Audit Conn Package. <?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified"> <xs:include schemaLocation="msml-audit-core-datatypes.xsd"/> <xs:element name="stream" substitutionGroup="stateParameter"> <xs:complexType> <xs:complexContent> <xs:extension base="stateParameterType"> <xs:all> <xs:element name="clamp" minOccurs="0"> <xs:complexType> <xs:attribute name="dtmf" type="boolean.datatype"/> <xs:attribute name="tones" type="boolean.datatype"/> </xs:complexType> </xs:element> <xs:element name="gain" minOccurs="0"> <xs:complexType> <xs:attribute name="amt" use="optional"> <xs:simpleType> <xs:restriction base="xs:integer"> <xs:minInclusive value="-96"/> <xs:maxInclusive value="96"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="agc" type="boolean.datatype"/> <xs:attribute name="tgtlvl" use="optional">
<xs:simpleType> <xs:restriction base="xs:nonPositiveInteger"> <xs:minInclusive value="-40"/> <xs:maxInclusive value="0"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="maxgain" default="10"> <xs:simpleType> <xs:restriction base="xs:nonNegativeInteger"> <xs:minInclusive value="0"/> <xs:maxInclusive value="40"/> </xs:restriction> </xs:simpleType> </xs:attribute> </xs:complexType> </xs:element> <xs:element name="visual" minOccurs="0"/> </xs:all> <xs:attribute name="joinwith" type="independentID.datatype" use="required"/> <xs:attribute name="media" use="required"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:pattern value="audio"/> <xs:pattern value="video"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="dir" use="required"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:pattern value="from"/> <xs:pattern value="to"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="compressed" type="boolean.datatype"/> <xs:attribute name="preferred" type="boolean.datatype" default="false"/> <xs:attribute name="display" type="xs:string"/> <xs:attribute name="override" type="boolean.datatype" default="false"/> </xs:extension> </xs:complexContent> </xs:complexType> </xs:element> </xs:schema>
17. Security Considerations
MSML being an XML-based language, security considerations as defined by RFC 3023 [i2] are applicable. Media server interfaces driven using MSML are under the explicit control of a SIP application server. SIP call legs are used to deliver XML-based MSML transactions to the media server. The security and integrity of MSML transactions, whenever required, SHOULD use sips: and TLS for encryption and authentication of the SIP control channel used to carry MSML payloads. Further information related to security, privacy, and integrity of MSML media types is described in the IANA Considerations section. Media streams, such as audio/video, MAY optionally be protected, encrypted/decrypted, and authenticated, utilizing Secure Real Time Protocol (SRTP), wherever media stream security is required. Media negotiation establishes the required level of security and is initiated by the clients, which is outside the scope of the control interface specified by MSML.18. IANA Considerations
18.1. IANA Registrations for 'application' MIME Media Type
The following registrations have been made: Type Name: "application" Subtype names: 'application/vnd.radisys.msml+xml', 'application/vnd.radisys.moml+xml', 'application/vnd.radisys.msml-conf+xml', 'application/vnd.radisys.msml-dialog+xml', 'application/vnd.radisys.msml-dialog-base+xml', 'application/vnd.radisys.msml-dialog-group+xml', 'application/vnd.radisys.msml-dialog-speech+xml', 'application/vnd.radisys.msml-dialog-transform+xml', 'application/vnd.radisys.msml-dialog-fax-detect+xml',
'application/vnd.radisys.msml-dialog-fax-sendrecv+xml', 'application/vnd.radisys.msml-audit+xml', 'application/vnd.radisys.msml-audit-conf+xml', 'application/vnd.radisys.msml-audit-conn+xml', 'application/vnd.radisys.msml-audit-dialog+xml', 'application/vnd.radisys.msml-audit-stream+xml' Required parameters: none Optional parameters: charset charset semantics as specified in RFC 3023 [i2] for "application/xml" media type. Encoding considerations: As specified in RFC 3023 [i2]. Security Considerations: Media types included in this section are XML based, and therefore security considerations as defined by RFC 3023 [i10] are applicable. These media types do not contain active or executable content as the content itself merely provides control of the underlying media streams. Secure exchange of content associated with these media types for purposes of authentication and privacy, whenever applicable, shall require the establishment of a secure control channel using sips: and TLS. Privacy and integrity of media content associated with these media types shall be considered when applications using these media types are exchanging personal information such as personal identification codes or conference access codes. Whenever such content is deemed to require secure transport and authentication, a secure channel using sips: and TLS MUST be used, as these media types themselves provide no such inherent mechanisms for security.
Interoperability considerations: As specified in RFC 3023 [i2] and as specified within this document. Published specification: RFC 5707 Intended applications for these media types: Multimedia Conferencing, Interactive Voice Response systems Additional information: Magic number(s): None File extension(s): None Macintosh file type code(s): None Person & email address to contact for further information: Adnan Saleem <adnan.saleem@radisys.com> Intended usage: COMMON18.2. IANA Registrations for 'text' MIME Media Type
The following registrations are planned: 'text/vnd.radisys.msml-basic-layout' Required parameters: none Optional parameters: charset charset semantics as specified in RFC 3023 [i2] for "text/xml" media type. Encoding considerations: As specified in RFC 3023 [i2]. Security Considerations: Media types included in this section are XML based, and therefore security considerations as defined by RFC 3023 [i10] are applicable.
The media type defined in this section does not contain active or executable content. The media type defines only a visual layout scheme of a video conference. Establishment of active connections associated with the video conference are outside the scope of this media type. Since this media type only defines a visual layout scheme, with no reference or information about client connections or participants within the conference, privacy and integrity concerns are not applicable to this media type. Interoperability considerations: As specified in RFC 3023 [i2] and as specified within this document. Published specification: RFC 5707 Intended applications for these media types: Multimedia Conferencing, Interactive Voice Response systems Additional information: Magic number(s): None File extension(s): None Macintosh file type code(s): None Person & email address to contact for further information: Adnan Saleem <adnan.saleem@radisys.com> Intended usage: COMMON18.3. URN Sub-Namespace Registration
The namespace URI for elements defined within this specification is a URN [i8]. It uses the namespace identifier 'ietf' defined by [i9] and extended by RFC 3688 [i10]. The following registrations of URN Sub-Namespaces are planned: XML namespace: urn:ietf:params:xml:ns:msml
XML: BEGIN <?xml version="1.0"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.0//EN" "http://www.w3.org/TR/xhtml-basic/xhtml-basic10.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=iso-8859-1"/> <title>Media Server Markup Language Namespace</title> </head> <body> <h1>Namespace for Media Server Markup Language</h1> <h2>urn:ietf:params:xml:ns:msml</h2> <p>See MSML <a href="http://www.rfc-editor.org/rfc/rfc5707.txt">RFC 5707</a></p> </body> </html> END18.4. XML Schema Registration
This section registers an XML schema per the procedures in [i10]. URI: urn:ietf:params:xml:schema:msml Registrant Contact: Adnan Saleem (adnan.saleem@radisys.com) and authors listed within this document.
The XML for this schema can be found as the sole content of Section 16.19. References
19.1. Normative References
[n1] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, A., Peterson, J., Sparks, R., Handley, M., and E. Schooler, "SIP: Session Initiation Protocol", RFC 3261, June 2002. [n2] Bray, T., Paoli, J., Sperberg-McQueen, C., and E. Maler, "Extensible Markup Language (XML) 1.0 (Second Edition)," W3C First Edition REC-xml-20001006, October 2000. [n3] World Wide Web Consortium, "Speech Recognition Grammar Specification Version 1.0" (SRGS), W3C Candidate Recommendation, March 16, 2004 [n4] World Wide Web Consortium, "Natural Language Semantics Markup Language (NLSML) for the Speech Interface Framework", W3C Working Draft 20, November 2000. [n5] World Wide Web Consortium, "Voice Extensible Markup Language (VoiceXML) Version 2.0, W3C Candidate Recommendation, March 16, 2004. [n6] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform Resource Identifier (URI): Generic Syntax", STD 66, RFC 3986, January 2005. [n7] Burger, E., Ed., Van Dyke, J., and A. Spitzer, "Basic Network Media Services with SIP", RFC 4240, December 2005. [n8] Levinson, E., "Content-ID and Message-ID Uniform Resource Locators", RFC 2392, August 1998. [n9] Handley, M., Jacobson, V., and C. Perkins, "SDP: Session Description Protocol", RFC 4566, July 2006. [n10] Bos, B., Lie, H., Tantek, C., and Hickson, I., "Cascading Style Sheets, level 2 (CSS2) Specification," W3C REC CR-CSS21-, July 2007. [n11] Burnett, D., Walker, M., and Hunt, A., "Speech Synthesis Markup Language (SSML) Version 1.0", W3C Recommendation, 7 September 2004.
19.2. Informative References
[i1] Rosenberg, J., Schulzrinne, H., and P. Kyzivat, "Indicating User Agent Capabilities in the Session Initiation Protocol (SIP)", RFC 3840, August 2004. [i2] Murata, M., St. Laurent, S., and D. Kohn, "XML Media Types", RFC 3023, January 2001. [i3] Schulzrinne, H., Casner, S., Frederick, R., and V. Jacobson, "RTP: A Transport Protocol for Real-Time Applications", STD 64, RFC 3550, July 2003. [i4] Rosenberg, J., Peterson, J., Schulzrinne, H., and G. Camarillo, "Best Current Practices for Third Party Call Control (3pcc) in the Session Initiation Protocol (SIP)", BCP 85, RFC 3725, April 2004. [i5] Donovan, S., "The SIP INFO Method", RFC 2976, October 2000. [i6] Ossenbruggen, J., Rutledge, L., Saccocio, B., Schmitz, P., Kate, W., Ayars, J., Bulterman, D., Cohen, A., Day, K., Hodge, E., Hoschka, P., Hyche, E., Jourdan, M., Kubota, K., Lanphier, R., Laya'da, N., Michel, T., and D. Newman, "Synchronized Multimedia Integration Language (SMIL 2.0) Specification," W3C REC REC-smil2-20050107, January 2005. [i7] Freed, N. and N. Borenstein, "Multipurpose Internet Mail Extensions (MIME) Part Two: Media Types", RFC 2046, November 1996. [i8] Moats, R., "URN Syntax", RFC 2141, May 1997. [i9] Moats, R., "A URN Namespace for IETF Documents", RFC 2648, August 1999. [i10] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, January 2004. [i11] Boulton, C., Melanchuk, T., McGlashan, S., and A. Shiratzky, "A Control Framework for the Session Initiation Protocol (SIP)", Work in Progress, February 2007.
Acknowledgments
Sergiu Stambolian of RadiSys provided key insights, both theoretic and through development experience, on several versions of the document. Stephen Buko and George Raskulinec of Intel made numerous valuable contributions towards enhancements of multimedia playback and record operations. Gene Shtirmer of Intel provided review feedback on several revisions and feature enhancement suggestions. David Asher of NMS Communications provided valuable insights towards creation of standard profiles and a modularization scheme based on packages for better interoperability. Gilles Compienne of Ubiquity Software has provided feedback on several earlier versions of this document. Chris Boulton and Ben Smith, both of Ubiquity, and Michael Rice of VocalData helped clarify several issues, while Bruce Walsh and Kevin Fitzgerald, both of Spectel/Avaya, provided important feedback. Cliff Schornak of Commetrex significantly contributed to the facsimile work. Peter Danielsen of Lucent has contributed thoughtful and detailed reviews for several earlier versions of the document.
Authors' Addresses
Adnan Saleem RadiSys 4190 Still Creek Drive, Suite 300 Burnaby, BC, V5C 6C6 Canada Phone: +1 604 918 6376 EMail : adnan.saleem@radisys.com Yong Xin RadiSys 4190 Still Creek Drive, Suite 300 Burnaby, BC, V5C 6C6 Canada Phone: +1 604 918 6383 EMail: yong.xin@radiSys.com Garland Sharratt Consultant Vancouver, BC Canada EMail: garland.sharratt@gmail.com