MSML Moml Userguide v1b
MSML Moml Userguide v1b
Software
User’s Guide
June 2006
                         05-2513-001-02
INFORMATION IN THIS DOCUMENT IS PROVIDED IN CONNECTION WITH INTEL® PRODUCTS. NO LICENSE, EXPRESS OR IMPLIED, BY
ESTOPPEL OR OTHERWISE, TO ANY INTELLECTUAL PROPERTY RIGHTS IS GRANTED BY THIS DOCUMENT. EXCEPT AS PROVIDED IN
INTEL'S TERMS AND CONDITIONS OF SALE FOR SUCH PRODUCTS, INTEL ASSUMES NO LIABILITY WHATSOEVER, AND INTEL DISCLAIMS
ANY EXPRESS OR IMPLIED WARRANTY, RELATING TO SALE AND/OR USE OF INTEL PRODUCTS INCLUDING LIABILITY OR WARRANTIES
RELATING TO FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABILITY, OR INFRINGEMENT OF ANY PATENT, COPYRIGHT OR OTHER
INTELLECTUAL PROPERTY RIGHT. Intel products are not intended for use in medical, life saving, life sustaining, critical control or safety systems, or
nuclear facility applications.
Intel may make changes to specifications and product descriptions at any time, without notice.
This MSML/MOML Media Server Software User’s Guide as well as the software described in it is furnished under license and may only be used or
copied in accordance with the terms of the license. The information in this manual is furnished for informational use only, is subject to change without
notice, and should not be construed as a commitment by Intel Corporation. Intel Corporation assumes no responsibility or liability for any errors or
inaccuracies that may appear in this document or any software that may be provided in association with this document.
Except as permitted by such license, no part of this document may be reproduced, stored in a retrieval system, or transmitted in any form or by any
means without the express written consent of Intel Corporation.
Copyright © 2003, Intel Corporation
Celeron, Dialogic, Intel, Intel Centrino, Intel logo, Intel NetMerge, Intel NetStructure, Intel Xeon, Intel XScale, IPLink, and Pentium are trademarks or
registered trademarks of Intel Corporation or its subsidiaries in the United States and other countries.
* Other names and brands may be claimed as the property of others.
Publication Date: June 2006
Document Number: 05-2513-001-02
Intel Converged Communications, Inc.
1515 Route 10
Parsippany, NJ 07054
For Technical Support, visit the Intel Telecom Support Resources website at:
http://developer.intel.com/design/telecom/support
For Products and Services Information, visit the Intel Telecom and Compute Products website at:
http://www.intel.com/design/network/products/telecom
For Sales Offices and other contact information, visit the Buy Telecom Products page at:
http://www.intel.com/buy/networking/telecom.htm
6    Diagnostics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
     6.1       Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   41
     6.2       Logging Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .          41
               6.2.1 Configuration File Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                  41
               6.2.2 Logging Labels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .             42
               6.2.3 Client Categories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .              43
     6.3       Log File Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .      44
A    MSML Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
     A.1      Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .    47
     A.2      MSML Elements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .           47
              A.2.1 <msml> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .          47
              A.2.2 <send> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .          48
              A.2.3 <result> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .        48
              A.2.4 <event> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .         48
     A.3      Stream Manipulation Elements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                  48
              A.3.1 <join> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .        48
              A.3.2 <modifystream> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                48
              A.3.3 <unjoin> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .          48
     A.4      Conference Elements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .             48
     A.5      Dialog Elements. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .        48
Figures
Tables
This revision history summarizes the changes made in each published version of this document.
Purpose
             This publication documents the Media Sessions Markup Language/Media Objects Markup
             Language (MSML/MOML) Media Control Interface software that provides an interface between
             an Application Server (AS) and a Media Server (MS).
             This publication is for users of the MSML/MOML media server software who are writing
             applications that require remote control of MS resources.
Scope
             The MSML/MOML media server software functionality is being introduced in a phased approach.
             This manual documents the functionality provided by the current implementation phase, which
             includes support for:
               • MSML Core Module
               • MSML Stream Management Module (conferencing is not included)
               • MSML Dialog Module
               • MOML Core Module
               • MOML Group Module (parallel topology only)
               • MOML Basic Primitives Module
               • MOML Transform Primitives Module (gain only)
Future implementation phases are planned that will provide additional MSML/MOML support.
Intended Audience
This publication assumes that the reader is familiar with the Session Initiation Protocol (SIP).
Related Information
             Refer to the following documents and web sites for more information about developing
             applications that use the MSML/MOML media server software:
               • Media Sessions Markup Language (MSML), Internet Engineering Task Force (IETF),
                 draft-melanchuk-sipping-msml-06, October 21, 2005
               • Media Objects Markup Language (MOML), Internet Engineering Task Force (IETF),
                 draft-melanchuk-sipping-moml-06, October 21, 2005
               • http://developer.intel.com/design/telecom/support/ (for technical support)
               • http://www.intel.com/network/csp/ (for product information)
              This chapter provides an overview of the MSML/MOML media server software. Topics include:
                • Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
                • Media Server Operating Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.1           Introduction
              The MSML/MOML media server software has been designed and implemented as an integral part
              of the system software provided by Intel (for example, NetStructure® Host Media Processing
              Software or Titusville 2 system software).
              When the system software is installed on a Media Server (MS), the MSML/MOML media server
              software enables a remote client, also known as an.Application Server (AS), to control media
              resources.
              The MSML/MOML media server software is based on the evolving MSML and MOML languages,
              as defined in their respective IETF drafts. The current implementation is based on Media Sessions
              Markup Language (MSML) IETF Draft version -06 and Media Objects Markup Language
              (MOML) IETF Draft version -06.
      Note:   A new draft, called the Media Server Markup Language (draft-saleem-msml-00), which combines
              the separate MSML and MOML drafts, was submitted to IETF on February 26, 2006. According to
              the combined draft authors, little or no change was introduced in the latest draft when compared to
              the separate MSML and MOML version 6 drafts.
              The connection between the AS and MS is established using the SIP protocol, thereafter media
              control commands/responses (in the form of MSML/MOML control syntax) are exchanged in SIP
              messages, such as the INFO message or the 200 OK response.
                   IP
                Endpoint
                                                MSML/MOML
                                            Media Control Interface
             The following sequence describes the high-level activities from the SIP client and Media Server
             (MS) perspectives:
              1. The SIP client initiates a SIP dialog with the AS and a media session with the MS.
              2. The MS plays the Main Prompt with options for the playing of prerecorded clips of News,
                 Weather, Messages, Image of Your Daily Schedule, or the recording of a audio-visual
                 message. The MS then waits on DTMF detection. The MS waits forever and never
                 disconnects, unless a BYE is issued or unless AS timers set a limit on call length.
              3. The SIP client makes a selection using DTMF. The selection is to display the Video Portal
                 Prompt.
              4. The MS plays the Video Portal Prompt.
              5. The SIP client makes a selection using DTMF. The selection is to play a video.
              6. The MS plays the selected video clip to completion.
              7. The MS plays the Main Prompt.
              8. The SIP client makes a selection using DTMF. The selection is to record, then play back, a
                 video message.
              9. The MS records the video message.
             10. The SIP client stops the recording of the video message with any DTMF.
             11. The MS starts the playback of the recorded video message (executed in MxML syntax).
             12. The MS plays the recorded video message to completion.
             13. The MS plays the Main Prompt.
             14. The SIP client disconnects.
             15. The MS disconnects.
                                                    RTP Established
                                                                INFO (Main Prompt Dialog Start) 2a
                                                                                                            2. Play Main Prompt
                                                                           200 OK (Main Prompt) 2b
                                                    DTMF Selection
                                                                      INFO (DTMF Detect Event) 3a
                                                                    200 OK (DTMF Detect Event) 3b
                                                                 INFO (Main Prompt Dialog Exit) 3c
                                                               200 OK (Main Prompt Dialog Exit) 3d          3. Play Video Portal Prompt
                                                                 INFO (Video Portal Dialog Start) 3e
                                                                          200 OK (Portal Prompt) 3f
                                                    DTMF Selection
                                                                      INFO (DTMF Detect Event) 4a
                                                                    200 OK (DTMF Detect Event) 4b
                                                                  INFO (Video Portal Dialog Exit) 4c
                                                                200 OK (Video Portal Dialog Exit) 4d
                                                                          INFO (Video Clip Start) 4e
                                                                                                            4. Play Video Clip
                                                                        200 OK (Video Clip Start) 4f
                                                                     INFO (Video Clip Dialog Exit) 4g
                                                                  200 OK (Video Clip Dialog Exit) 4h
                                                                INFO (Main Prompt Dialog Start) 4i
                                                                           200 OK (Main Prompt) 4j
                                                    DTMF Selection
                                                                      INFO (DTMF Detect Event) 5a
                                                                    200 OK (DTMF Detect Event) 5b
                                                                 INFO (Main Prompt Dialog Exit) 5c
                                                               200 OK (Main Prompt Dialog Exit) 5d          5. Record Message
                                                                         INFO (Record Message) 5e
                                                                       200 OK (Record Message) 5f
                                                DTMF Record Termination
           Step 2b
               The MS sends a 200 OK response to indicate success. The 200 OK response includes the
               following MSML/MOML control syntax:
                  <msml version="1.0">
                     <result response="200"/>
                     <dialogid>conn:b19d82a0-0-13c4-13cbd2-58c3964e-13cbd2/dialog:10</dialogid>
                  </msml>
             Step 3b
                 The AS sends a 200 OK response to the MS to acknowledge successful receipt of the DTMF
                 Detect event. The 200 OK response does not includes any MSML/MOML control syntax.
             Step 3c
                 The MS sends the AS an INFO message with the following MSML/MOML control syntax to
                 indicate that the Main Prompt dialog is exiting.
                 <msml version="1.0">
                    <event name="msml.dialog.exit"
                       id="conn:b19d82a0-0-13c4-13cbd2-58c3964e-13cbd2/dialog:10"/>
                 </msml>
             Step 3d
                 The AS sends a 200 OK response to the MS to acknowledge Main Prompt dialog exit. The
                 200 OK response does not contain any MSML/MOML control syntax.
             Step 3e
                 The AS sends the MS an INFO message to start playing the Video Portal Prompt dialog. The
                 INFO message includes the following MSML/MOML control syntax:
                 <?xml version="1.0" encoding="UTF-8" ?>
                 <msml version="1.0">
                 <dialogstart target="conn:b19d82a0-0-13c4-13cbd2-58c3964e-13cbd2"
                       type="application/moml+xml">
                    <group topology="parallel" >
                       <play>
                          <media>
                             <video uri="file://./av/vportal_menu.vid" format="video/raw:codecs=h263" />
                             <audio uri="file://./av/vportal_menu.pcm" format="audio/pcm:codecs=mulaw"
                                   audiosamplesize="8" audiosamplerate="8"/>
                          </media>
                       </play>
                       <collect iterate="forever" cleardb="true">
                          <detect>
                             <send target="source" event="done" namelist="dtmf.digits dtmf.len dtmf.end
                                   dtmf.last" />
                             <send target="group" event="terminate"/>
                          </detect>
                       </collect>
                    </group>
                 </dialogstart>
                 </msml>
             Step 3f
                 The MS sends a 200 OK response to the AS to acknowledge the starting of the Video Portal
                 Prompt dialog. The 200 OK response includes the following MSML/MOML control syntax:
                 <msml version="1.0">
                    <result response="200"/>
                    <dialogid>conn:b19d82a0-0-13c4-13cbd2-58c3964e-13cbd2/dialog:13</dialogid>
                 </msml>
           Step 4b
               The AS sends a 200 OK response to the MS to acknowledge successful receipt of the DTMF
               Detect event. The 200 OK response does not includes any MSML/MOML control syntax.
           Step 4c
               The MS sends the AS an INFO message with the following MSML/MOML control syntax to
               indicate that the Video Portal Prompt dialog is exiting (a response to the DTMF Detect
               event).
                  <msml version="1.0">
                     <event name="msml.dialog.exit"
                        id="conn:b19d82a0-0-13c4-13cbd2-58c3964e-13cbd2/dialog:13"/>
                  </msml>
           Step 4d
               The AS sends a 200 OK response to the MS to acknowledge Video Portal Prompt dialog exit.
               The 200 OK response does not contain any MSML/MOML control syntax.
           Step 4e
               The AS sends the MS an INFO message that includes the following MSML/MOML control
               syntax to start the Video Clip (a response to the DTMF Detect event).
                  <?xml version="1.0" encoding="UTF-8" ?>
                  <msml version="1.0">
                  <dialogstart target="conn:b19d82a0-0-13c4-13cbd2-58c3964e-13cbd2"
                        type="application/moml+xml">
                     <play>
                        <media>
                            <video uri="file://./av/clip2.vid" format="video/raw:codecs=h263" />
                            <audio uri="file://./av/clip2.pcm" format="audio/pcm:codecs=mulaw"
                               audiosamplesize="8" audiosamplerate="8" />
                        </media>
                     </play>
                  </dialogstart>
                  </msml>
           Step 4f
               The MS sends a 200 OK response to the AS to acknowledge the starting of the Video Clip.
               The 200 OK response includes the following MSML/MOML control syntax:
                 <msml version="1.0">
                    <result response="200"/>
                    <dialogid>conn:b19d82a0-0-13c4-13cbd2-58c3964e-13cbd2/dialog:28</dialogid>
                 </msml>
             Step 4g
                 The MS sends the AS an INFO message with the following MSML/MOML control syntax to
                 indicate that the Video Clip dialog is exiting (a response to the DTMF Detect event).
                 <msml version="1.0">
                    <event name="msml.dialog.exit"
                       id="conn:b19d82a0-0-13c4-13cbd2-58c3964e-13cbd2/dialog:28"/>
                 </msml>
             Step 4h
                 The AS sends a 200 OK response to the MS to acknowledge Video Clip dialog exit. The 200
                 OK response does not contain any MSML/MOML control syntax.
             Step 4i
                 The AS sends the MS an INFO message to play the Main Prompt dialog. The INFO message
                 includes the following MSML/MOML control syntax:
                 <?xml version="1.0" encoding="UTF-8" ?><msml version="1.0"><dialogstart
                       target="conn:b19d82a0-0-13c4-13cbd2-58c3964e-13cbd2" type="application/moml+xml">
                    <group topology="parallel" >
                       <play>
                          <media>
                             <video uri="file://./av/main_menu.vid" format="video/raw:codecs=h263" />
                             <audio uri="file://./av/main_menu.pcm" format="audio/pcm:codecs=mulaw"
                                audiosamplesize="8" audiosamplerate="8"/>
                          </media>
                       </play>
                       <collect iterate="forever" cleardb="true">
                          <detect>
                             <send target="source" event="done" namelist="dtmf.digits" />
                             <send target="group" event="terminate"/>
                          </detect>
                       </collect>
                    </group>
                 </dialogstart>
                 </msml>
             Step 4j
                 The MS sends a 200 OK response to indicate success. The 200 OK response includes the
                 following MSML/MOML control syntax:
                 <msml version="1.0">
                    <result response="200"/>
                    <dialogid>conn:b19d82a0-0-13c4-13cbd2-58c3964e-13cbd2/dialog:8</dialogid>
                 </msml>
           Step 5b
               The AS sends a 200 OK response to the MS to acknowledge successful receipt of the DTMF
               Detect event. The 200 OK response does not includes any MSML/MOML control syntax.
           Step 5c
               The MS sends the AS an INFO message with the following MSML/MOML control syntax to
               indicate that the Main Prompt dialog is exiting (a response to the DTMF Detect event):
                  <msml version="1.0">
                     <event name="msml.dialog.exit"
                        id="conn:b19d82a0-0-13c4-13cbd2-58c3964e-13cbd2/dialog:8"/>
                  </msml>
           Step 5d
               The AS sends a 200 OK response to the MS to acknowledge Main Prompt dialog exit. The
               200 OK response does not contain any MSML/MOML control syntax.
           Step 5e
               The AS sends the MS an INFO message that includes the following MSML/MOML control
               syntax to start the Record Message dialog (a response to the DTMF Detect event).
                  <?xml version="1.0" encoding="UTF-8"?>
                  <msml version="1.0">
                     <dialogstart target="conn:b19d82a0-0-13c4-13cbd2-58c3964e-13cbd2"
                        type="application/moml+xml">
                        <group topology="parallel">
                           <record beep="true"    audiodest="file://./mytest.pcm"
                                 videodest="file://./mytest.vid"    format="video/raw;codecs=mulaw,h263"
                                 audiosamplerate="8" audiosamplesize="8">
                              <recordexit>
                                 <send target="play" event="resume"/>
                              </recordexit>
                           </record>
                           <play initial="suspend">
                              <media>
                                 <audio uri="file://./mytest.pcm" format="audio/pcm;codecs=mulaw"
                                       audiosamplerate="8" audiosamplesize="8" />
                                 <video uri="file://./mytest.vid" format="video/vid;codecs=h263"/>
                              </media>
                              <playexit>
                                 <send target="dtmf" event="terminate"/>
                                 <send target="record" event="terminate"/>
                              </playexit>
                           </play>
                           <dtmf iterate="forever">
                              <detect>
             Step 5f
                 The MS sends a 200 OK response to the AS to acknowledge the starting of the Record
                 Message dialog. The 200 OK response includes the following MSML/MOML control syntax:
                 <msml version="1.0">
                    <result response="200"/>
                    <dialogid>conn:b19d82a0-0-13c4-13cbd2-58c3964e-13cbd2/dialog:30</dialogid>
                 </msml>
             Step 6b
                 The AS sends a 200 OK response to the MS to acknowledge successful receipt of the event.
                 The 200 OK response does not includes any MSML/MOML control syntax.
             Step 6c
                 When the playback of the recorded message is complete, the AS sends the MS an INFO
                 message to play the Main Prompt dialog. The INFO message includes the following
                 MSML/MOML control syntax:
                 <?xml version="1.0" encoding="UTF-8" ?><msml version="1.0">
                 <dialogstart target="conn:b19d82a0-0-13c4-13cbd2-58c3964e-13cbd2"
                 type="application/moml+xml">
                    <group topology="parallel" >
                       <play>
                          <media>
                             <video uri="file://./av/main_menu.vid" format="video/raw:codecs=h263" />
                             <audio uri="file://./av/main_menu.pcm" format="audio/pcm:codecs=mulaw"
                                   audiosamplesize="8" audiosamplerate="8"/>
                          </media>
                       </play>
                       <collect iterate="forever" cleardb="true">
                          <detect>
                             <send target="source" event="done" namelist="dtmf.digits" />
                             <send target="group" event="terminate"/>
                          </detect>
                        </collect>
                     </group>
                  </dialogstart>
                  </msml>
           Step 6d
               The MS sends a 200 OK response to indicate success. The 200 OK response includes the
               following MSML/MOML control syntax:
                  <msml version="1.0">
                     <result response="200"/>
                     <dialogid>conn:b19d82a0-0-13c4-13cbd2-58c3964e-13cbd2/dialog:29</dialogid>
                  </msml>
event supported
                                            target                         supported
                                            valuelist                      supported
mark supported
<result> - supported
response supported
mark supported
<event> - supported
name supported
id supported
<join> - supported
id1 supported
id2 supported
mark supported
id1 supported
id2 supported
mark supported
<unjoin> - supported
                                    id1                     supported
                                    id2                     supported
mark supported
<stream> - supported
                                    dir                     supported
                                    compressed              not supported
<gain> - supported
amt supported
agc supported
id not supported
Id not supported
id not supported
n not supported
n not supported
id not supported
id not supported
id not supported
si not supported
n not supported
<dialogstart> - supported
                                 target                  supported
                                 src                     supported              Supports the “file://”
                                                                                schema only
                                 type                    supported
                                 name                    supported
mark supported
               <dialogend>       -                       supported
                                 id                      supported
mark supported
                     id                                                     supported
                                      terminate                             supported
<send> supported
event supported
target supported
namelist supported
<event> supported
name supported
id supported
 <group>                                                                    supported
                     topology                                               supported        Supports “parallel” topology
                                                                                             only
                     id                                                     supported
                                      terminate                             supported
<groupexit> supported
id supported
interval supported
iterate supported
initial supported
maxtime supported
resume supported
                                   terminate                         supported
                                                   play.amt          supported       No support for video
play.end supported
iterate supported
<video> supported
iterate supported
<media> supported
<playexit> supported
<dtmfgen> supported
                  id                                                 supported
                  digits                                             supported
level supported
dur supported
                  interval                                           supported
                                   terminate                         supported
dtmfgen.end supported
<dtmfgenexit> supported
id supported
format supported
initial supported
                 maxtime                                                      supported
                 prespeech                                                    not supported
resume supported
terminate supported
record.end supported
<recordexit> supported
fdt supported
idt supported
starttimer supported
iterate supported
                                   starttimer                        supported
                                   terminate                         supported
dtmf.digits supported
dtmf.len supported
                                                   dtmf.last         supported
                                                   dtmf.end          supported
<pattern> - supported
digits supported
iterate supported
<detect>                                                             supported
<noinput>                                                            supported
iterate supported
<nomatch>                                                            supported
                  iterate                                            supported
<dtmfexit> supported
incr supported
reset supported
louder supported
softer supported
amt supported
6.1          Overview
             The media server is integrated with the RTF logging services used by other host libraries. The RTF
             XML configuration file, located in the /cfg directory, is used to set the logging level that defines
             what content is written to the RTF log file. The media server logging capabilities are described in
             the subsections following.
                The logging labels that can be specified for the various media server client objects are as follows:
                ERROR - Default
                   Log unexpected conditions or events that cause a related action to fail. This is a global label
                   which is set in the beginning of the RTF XML file.
                WARN
                  Log unexpected conditions or events that should not cause a related action to fail.
                INFO
                   Log additional information such as state changes, events, and function parameters.
                FUNC
                   Logs function entry and exit.
        Note:   Logging labels are independent of each other. For example, enabling FUNC and disabling INFO
                logs function entry and exit, but not additional information.
06/19/2006 09:12:23.035    1300   740 media_svr   FUNC !               MSML !             MSML !     1 ! ====> CMSML::ValidateScript()
06/19/2006 09:12:23.035    1300   740 media_svr   INFO !               MSML !             MSML !     1 ! CMSML::ValidateScript - Dumping
script body
                                                           <?xml version="1.0" encoding="UTF-8" ?>
                                                           <msml version="1.0">
                                                           <join id1="conn:51f0188-0-13d8-64325-7d02fa29-64325" id2="conn:51f0698-0-13d8-
64334-29ea58e0-64334" />
                                                            </msml>
06/19/2006 09:12:23.035   1300   740 media_svr    FUNC !               MSML !             MSML !     1 ! <==== CMSML::ValidateScript()
returns 0
06/19/2006 09:12:23.035   1300   740 media_svr    INFO !               MSML !             MSML !     1 ! CMSML::EvProcessScript - Validation
successful. Processing initiated
06/19/2006 09:12:23.035   1300   740 media_svr    INFO !               MSML !             MSML !     1 ! CMSML::EvProcessScript - Mandatory
attribute version = 1.0
06/19/2006 09:12:23.035   1300   740 media_svr    FUNC !               MSML !             MSML !     1 ! ====> CMSML::ProcessElement()
06/19/2006 09:12:23.035   1300   740 media_svr    INFO !               MSML !             MSML !     1 ! CMSML::ProcessElement - Processing
new MSML element. Element = join
06/19/2006 09:12:23.035   1300   740 media_svr    FUNC !               MSML !             MSML !     1 ! ====> CMSML::ProcessEvent(), event =
1
06/19/2006 09:12:23.035   1300   740 media_svr    INFO !               MSML !             MSML !     1 ! CMSML::ProcessEvent - Processing
Event EV_Join in State MSML_Processing
06/19/2006 09:12:23.035   1300   740 media_svr    FUNC !               MSML !              MSML !     1 ! ====> CMSML::SetState()
06/19/2006 09:12:23.035   1300   740 media_svr    INFO !               MSML !             MSML !     1 ! CMSML::SetState - Transitioning from
MSML_Processing to MSML_Connecting
06/19/2006 09:12:23.035   1300   740 media_svr    FUNC !               MSML   !           MSML   !   1   !   <==== CMSML::SetState()
06/19/2006 09:12:23.035   1300   740 media_svr    FUNC !               MSML   !           MSML   !   1   !   ====> CMSML::EvJoin()
06/19/2006 09:12:23.035   1300   740 media_svr    FUNC !               MSML   !       MSMLJoin   !   1   !   ====> CMSMLJoin::Parse()
06/19/2006 09:12:23.035   1300   740 media_svr    FUNC !               MSML   !       MSMLJoin   !   1   !   ====> CMSMLJoin::Reset()
06/19/2006 09:12:23.035   1300   740 media_svr    FUNC !               MSML   !       MSMLJoin   !   1   !   <==== CMSMLJoin::Reset() returns 0
06/19/2006 09:12:23.035   1300   740 media_svr    INFO !               MSML   !       MSMLJoin   !   1   !   CMSMLJoin::Parse - Processing MSML
element <join>
06/19/2006 09:12:23.035   1300   740 media_svr    FUNC !               MSML !         MSMLJoin !     1 ! ====>
CMxMLElement::LoadMandatoryAttribute()
06/19/2006 09:12:23.035   1300   740 media_svr    INFO !               MSML !         MSMLJoin !     1 ! CMxMLElement::LoadMandatoryAttribute
- Mandatory attribute id1 = conn:51f0188-0-13d8-64325-7d02fa29-64325
06/19/2006 09:12:23.035   1300   740 media_svr    FUNC !               MSML !         MSMLJoin !     1 ! <====
CMxMLElement::LoadMandatoryAttribute()
06/19/2006 09:12:23.035   1300   740 media_svr    FUNC !               MSML !         MSMLJoin !     1 ! ====>
CMxMLElement::LoadMandatoryAttribute()
06/19/2006 09:12:23.035   1300   740 media_svr    INFO !               MSML !         MSMLJoin !     1 ! CMxMLElement::LoadMandatoryAttribute
- Mandatory attribute id2 = conn:51f0698-0-13d8-64334-29ea58e0-64334
06/19/2006 09:12:23.035   1300   740 media_svr    FUNC !               MSML !         MSMLJoin !     1 ! <====
CMxMLElement::LoadMandatoryAttribute()
06/19/2006 09:12:23.035   1300   740 media_svr    FUNC !               MSML !         MSMLJoin !     1 ! ====>
CMxMLElement::LoadOptionalAttribute()
06/19/2006 09:12:23.035   1300   740 media_svr    INFO !               MSML !         MSMLJoin !     1 ! CMxMLElement::LoadOptionalAttribute
- Optional attribute mark = null
06/19/2006 09:12:23.035   1300   740 media_svr    FUNC !               MSML !         MSMLJoin !     1 ! <====
CMxMLElement::LoadOptionalAttribute()
06/19/2006 09:12:23.035   1300   740 media_svr    FUNC !               MSML !         MSMLJoin !     1 ! <==== CMSMLJoin::Parse() returns 0
06/19/2006 09:12:23.035   1300   740 media_svr    FUNC !               MSML !         MSMLJoin !     1 ! ====> CMSMLJoin::Execute()
06/19/2006 09:12:23.035   1300   740 media_svr    FUNC !               MSML !         MSMLJoin !     1 ! ====> CMSMLJoin::CreateStreams()
A.1           Introduction
              The Media Sessions Markup Language (MSML) is used to control and invoke many different types
              of services on IP media servers. Clients can use MSML to define how multimedia sessions interact
              on a media server and to apply services to individual users or groups of users. MSML can be used
              to control media server conferencing features such as video layout and audio mixing, create sidebar
              conferences or personal mixes, and set the properties of media streams. In addition, clients can use
              MSML with other languages such as the Media Objects Markup Language (MOML) to interact
              with individual users or groups of conference participants.
      Note:   The current implementation of the MSML/MOML Media Control Interface software does not
              support all the capabilities of MSML.
A.2.1         <msml>
              The root XML element of MSML is <msml>. It defines the set of operations that form a single
              MSML transaction.
Results or events returned to the client are also enclosed in the <msml> element.
A.2.3         <result>
              The <result> element is used by the media server to report the results of an MSML transaction
              requested by a client.
A.2.4         <event>
              The <event> element is used by the media server to notify a client of an event.
A.3.1         <join>
              The <join> element is used to create one or more streams between two independent objects.
              Streams may be audio or video and may be unidirectional or bidirectional.
A.3.2         <modifystream>
              The <modifystream> element is used to change the properties of a stream. The <modifystream>
              element can have different properties such as the gain for an audio stream or a visual label for a
              video stream.
A.3.3         <unjoin>
              The <unjoin> element is used to remove one or more existing media streams between two objects.
A.7.2        Events
             The <event> element is used to notify the media server client of an event. Events are sent to clients
             via SIP INFO messages.
        Definition
        A Network Connection is an object or class defined in the MSML specification. Network
        Connection is an abstraction for the media processing resources involved in terminating the RTP
        session(s) of a call. For audio services, a connection instance presents a full-duplex audio stream
        interface within a media server. Multimedia connection objects have multiple media streams of
        different media types, each corresponding to an RTP session. MSML Network Connection
        instances are instantiated through SIP.
        Object Creation
        Unlike other MSML objects that are created using MSML commands/elements, Network
        Connection objects are not created using MSML commands/elements. Network Connections are
        created when media sessions get established through SIP call control. The connection identifier is
        not assigned by the Application Server (AS). It is assigned by the media server and is returned to
        the AS in the response to the initial INVITE received from the AS. Specifically, this is the “tag”
        value included in the “To” header in the response. The format of the connection identifier is
        “conn:<tag value>”.
        Figure 3 shows the interactions between the MS and the AS to create a Network Connection and
        establish an object identifier.
RTP
      Note:   In Figure 3, the identifier used by the MS and AS to reference the network connection is
              “conn:74jgd63956ts”.
              Definition
              Dialogs are a class of objects that represent automated participants. Dialogs are similar to network
              connections from a media flow perspective and may have one or more media streams as the
              abstraction for their interface within the MS. Unlike network connections, dialogs are created and
              destroyed through MSML. The MS implements the dialog participant.
        The function that a Dialog instance fulfills is defined by a client and the language utilized. In this
        case, it is MOML.
        Object Creation
        All MSML objects except the Network Connection objects are created using MSML
        commands/elements.
        Definition
        An Operator is an object or class used to filter or transform a media stream. Operators have a media
        type and may be unidirectional or bidirectional.
        Unidirectional operators reflect simple atomic functions, such as automatic gain control or filtering
        tones. Unidirectional operators have a single media input that is connected to the media stream
        from one object, and a single media output that is connected to the media stream of a different
        object.
        Bidirectional operators have two media inputs and two media outputs. One media input and output
        is associated with the stream to one object, and the other input and output is associated with a
        stream to a different object.
        The function that an Operator instance fulfills is defined by a client and the language utilized. In
        this case, it is MOML.
        MSML Operator instances are instantiated when streams are created using a <join> element or
        modified using a <modifystream> element.
        Object Creation
        All MSML objects except Network Connection objects are created using MSML
        commands/elements.
B.1          Introduction
             The Media Objects Markup Language (MOML) is a modular and extensible language to define
             media processing objects that execute on media servers. The base language defines a set of
             primitive media objects and provides tools to group primitives together and specify how they
             interact with each other. Clients use the base MOML, or extend MOML, to create precisely tailored
             media processing objects that may be used as parts of application interactions with users or
             conferences or to transform media flowing internal to a media server. Interactive Voice Response
             (IVR) is an example of an application interaction with a user.
B.2          Primitives
             MOML primitives perform a single function on a media stream such as audio generation, speech
             recognition, DTMF detection or gain adjustment.
B.2.1        Recognizers
             Recognizers have a media input, but no output. They allow different things within a media stream
             to be recognized or detected and enable events to be generated based upon received media.
B.2.2   Transformers
        Transformers have one media input and one media output and may send and receive events.
Application Server: An external server running applications that originate MSML requests to a Media
Server (MS).
Media Server: A general-purpose platform for executing real-time media processing tasks. It may be a single
physical device or a logical function within a physical device.