[Home]
[Up]





Media Object Server (MOS) 
Protocol

 Working Draft for MOS Protocol version 2.5
Document Revision 2.5.  Revision Date
October 31, 2000

Abstract

   MOS is an evolving protocol for communications between Newsroom Computer Systems (NCS) and Media Object Servers (MOS) such as Video Servers, Audio Servers, Still Stores, and Character Generators. This protocol is supported and developed through cooperative collaboration among equipment vendors, software vendors and end users.

Status of this document

   This draft document reflects changes to the MOS protocol made during the MOS meeting at NAB 2000. Logic and message content of MOS version 1.x have undergone minor changes based on agreements reached in that meeting.
    Five additional messages have been added to this revision of the documentation since the MOS 2.0 specification, and are included in this document. 
     

Media Object Server Protocol 2.5

Table of Contents  (NOTE:  Additions/Changes to TOC since 2.04 are in BOLD)
1. Introduction
    1.1 Message Exchange
    1.2 Identification
    1.3 Encoding
2. MOS Message Format
    2.1 Extensible Markup Language (XML)
    2.2 Message Acknowledgement
    2.3 Message Transport
    2.4 Unknown Tags
    2.5 Object Description Format
    2.6 Languages
    2.7 Numbers
    2.8 Running Orders
    2.9 Samples
3. MOS Messages
    3.1 mosAck - Acknowledge MOS Object Description
    3.2 mosObj - MOS Object Description
    3.3 mosReqObj - Request Object Description
    3.4 mosReqAll - Request All Object Data from MOS
    3.5 mosListAll - Listing of All Object Data from MOS
    3.6 mosObjCreate – Mos Object Create
    3.7 roCreate – Create Running Order
    3.8 roAck - Acknowledge Running Order

    3.9 roReplace - Replace Running Order
    3.10 roDelete - Delete Running Order
    3.11 roReq - Request Running Order
    3.12 roList - List Running Order
    3.13 roStoryAppend - Append Stories to Running Order
    3.14 roStoryInsert - Insert Stories in Running Order
    3.15 roStorySwap - Swap Positions of Stories in Running Order
    3.16 roStoryReplace - Replace Story with Another in a Running Order
    3.17 roStoryDelete - Delete Stories from Running Order
    3.18 roStorySend – Sends Story Information including body from
running Order
    3.19 roItemStat - Status of a Single Item in a MOS Running Order
    3.20 roStat - Status of a MOS Running Order
    3.21 roReadyToAir - Identify a Running Order as Ready to Air
    3.22 roReqAll - Request All Running Order Descriptions
    3.23 roListAll - List All Running Order Descriptions
    3.24 roItemCue – Notification of an Item Event
    3.25 roCtrl – Running Order Control
    3.26 heartbeat - Connection Confidence Indicator

    3.27 reqMachInfo - Request Machine Information
    3.28 listMachInfo - Machine Description List
4. Field Descriptions

5. Recent Changes
    5.1 Changes from MOS version 2.0 to 2.5 WD-2000-08-01
    5.2 Changes for MOS 2.0 WD-1999-05-12
    5.3 Changes from MOS version 1.52 to 2.0 WD-1999-03-17

6. MOS 2.5 DTD
7. References and Resources
    7.1 MOS Protocol Web Page
    7.2 XML FAQ
    7.3 Recommended Reading
    7.4 XML Web Sites

1. Introduction

This document reflects changes to the MOS protocol made during the MOS meeting at NAB 2000.

Five additional messages have been added.

In addition, an optional tag which explicitly defines the origin of an object has been added to the Item structure.  This addition is reflected in all RO Construction messages (3.7,  3.9, 3.12-3.15)  This additional information is related to the roStorySend and roItemCue messages new to this version.

A reminder:  MOS equipment should ignore, without error, any unknown tags in a message, so long as the message or structure contains properly formatted XML content and the minimum subset of required MOS tags for that message or structure.

 

1.1 Message Exchange

   Both the NCS and MOS can originate messages.  Transmitted messages require a response from the receiver before the transmitter will attempt to send the next message in the queue belonging to that specific port (either upper or lower).  Upper and lower port messages are not related so that while a machine is waiting for a response on the lower port it may continue to have a dialog on the upper port.

    Note:  "Two Ports - Four Sockets"  Each pair of communicating machines uses two ports.  Each machine must be able to accept and handle messages on a minimum of two sockets per port.  Once established, socket connections do not need to be dropped and then re-established between messages.  Generally, the acknowledgment of a message should be sent down the same socket on which the original message was received.  However, machines should be able to handle situations in which each message arrives in a separate, discrete socket session (though this is not very efficient).

                                                            /----Socket1
                    Lower Port (10540)----<
                                                            \----Socket2
 
                                                           /----Socket1
                    Upper Port (10541)----<
                                                           \----Socket2
    Note:  "Multiple MOS Connections" Each machine (NCS and MOS) should be capable of establishing and maintaining connections to multiple systems of the opposite type.  e.g. An NCS should be capable of connecting to multiple Media Object Servers.  Media Object Servers should also be capable of connecting to multiple NCSs.

1.2 Identification

   In practice the MOS and NCS character names are predefined in each system and IP addresses associated with each name.

1.3 Encoding

The supported character encoding is ISO 10646 (Unicode) in UCS-2, as defined in The Unicode Standard, version 2.0. All MOS message contents are transmitted in Unicode, high-order byte first.

2. MOS Message Format

   The MOS Protocol is fundamentally a tagged text data stream. In the version 2.x, data fields are character delimited using Extensible Markup Language (XML™) tags defined in the MOS Data Type Definition (DTD). In MOS v1.x data fields were delimited using a proprietary format.
 

2.1 Extensible Markup Language (XML)

   The syntax of MOS v2.5 is an application of XML, an international standard for describing document content structure. XML is a simple, flexible text format based on SGML (ISO 8879). XML is an abbreviated version of SGML, to make it easier for you to define your own document types, and to make it easier for programmers to write programs to handle them. It omits the more complex and less-used parts of SGML in return for the benefits of being easier to write applications, easier to understand, and more suited to delivery and interoperability over the Web.

   All tags are case sensitive. All MOS messages must be well formed XML, but are not required to be valid.

   Each MOS message begins with the root tag (“mos”), followed by the MOS and NCS ID (“mosID” and “ncsID”), and followed by the message type. Data follows in tagged form.

   Vendors are encouraged to add CR/LF and Tabs within a message to improve readability for debugging purposes.

2.2 Message Acknowledgement

   When a message is sent by one device, it will not send another message until it receives an acknowledgement (“ACK”) or error (“NACK”) from the other device. Vendors should reset and/or retry when a timeout occurs.

2.3 Message Transport

   MOS Lower Port (10540) is defined as the default TCP/IP port on which the NCS will accept connections from MOS devices. Multiple simultaneous connections are supported. This socket is referred to as “Media Object Metadata” port in the Message Types section.

   MOS Upper Port (10541) is defined as the default TCP/IP port on which the MOS will accept connections from the NCS.  Multiple simultaneous connections are supported.  This socket is referred to as “Running Order” port in the Message Types section.  

    Ports 10520 and 10521 were specified as Lower and Upper Ports in previous versions of the MOS Protocol.  Beginning in version 2.5  these ports are vendor selectable but site specific.   All MOS enabled machines within a site or enterprise should communicate using the same ports.  Because some vendors reported problems using port 10521 with Microsoft Windows NT the new port numbers used as examples are now 10540 and 10541.

   For example, an NCS initiated create running order command and the MOS' associated ACK would take place on MOS Upper Port (10541). Object updates sent from the MOS and the associated NCS ACK would take place on MOS Lower Port (10540).

2.4 Unknown Tags

   Should a MOS or NCS encounter an unknown message or data tag the device should ignore the tag and the data and continue to process the message. Unknown data tags should not generate an application error. The application has the option of indicating a warning.

2.5 Object Description Format

   Object description is restricted to plain Unicode UCS-2 text that includes Tab, CR, LF and the optional markup for paragraphs, tabs and emphasis. Formatted text such as HTML, RTF, etc. will not be allowed in the unstructured description area.

2.6 Languages

   Data tags and constants are formatted as English.
   The only Data Fields that can contain other languages are:
      createdBy
      modifiedBy
      roSlug
      storySlug
      itemSlug
      description

2.7 Numbers

   Numbers are formatted as their text equivalent, e.g.:
      The decimal number 100 is represented as text “100”.
      Hex FF55 is represented as text “0xFF55” or “xFF55”.

2.8 Running Orders

      1) Running Order (Unique ID - may appear only once in the NCS)
         2) Story (Unique ID - may appear only once in the RO)
            3) Item (Unique ID - may appear only once in a story)
               4) Object (Unique ID - may appear only once in an item)

   It is assumed that all Unique ID’s (UID’s) created by one machine are respected by others.
   Order of data fields within an item is significant.
   Items are sent in the order they should be played.
   Order of items is significant.
   Multiple Running Orders may contain the same Story.
   Running Orders may contain zero or more Stories.
   Multiple stories can contain the same Object referenced by different Items.
   Stories can contain multiple Items.
   Item IDs may appear only once in a Story, but can appear in other Stories.
   Objects can appear multiple times in a Story, but only one object may appear in an Item.
   A Running Order Item is defined by the combination Running Order.Story.Item and contains the UID’s of the Running Order, Story 
   and Item which together can identify a unique Item within a Running Order. Additions, deletions, and moves within the running 
   order are referenced in this way to the Item.

2.9 Samples

   Still Store and Character Generator media objects are defined as having 1 sample per second. They are special cases that require the NCS and MOS applications to understand they do not change every second.

3. MOS Messages

   In the Structural Outline sections below use of “?” specifies optional element, “+” specifies one or more of the element, and “*”    
   specifies zero or more of the element. Elements without any of these three special characters are required.

   Tags enclosed in parenthesis and separated by "|" represent a selection.
   The Syntax section shows the definition of non-terminals for this message from the DTD.
   Examples shown are representative of syntax only and do not represent samples from any system.

3.1 mosAck - Acknowledge MOS Object Description

Purpose The MOS Acknowledgement for the MOS OBJ message.

Response

N/A

Port

MOS Lower Port (10540) - Media Object Metadata

Structural Outline

mos
    mosID
    ncsID
    mosAck
       objID
       objRev
       status
       statusDescription

Syntax

<!ELEMENT mosAck (objID, objRev, status, statusDescription)>

Example

<mos>
  <mosID>aircache.newscenter.com</mosID>
  <ncsID>ncs.newscenter.com</ncsID>
  <mosAck>
    <objID>M000123</objID>
    <objRev>1</objRev>
    <status>ACK</status>
    <statusDescription></statusDescription>
  </mosAck>
</mos>

3.2 mosObj - MOS Object Description

Purpose             Contains information that describes a unique MOS Object to the NCS. The NCS uses this information to search for and         
            reference the MOS Object.

Response

            mosAck

Port

            MOS Lower Port (10540) - Media Object Metadata

Structural Outline

            mos
                mosID
                ncsID
                mosObj
                   objID
                   objSlug
                   objType
                   objTB
                   objRev
                   objDur
                   status
                   objAir
                   createdBy
                   created
                   changedBy
                   changed
                   description
                        (p | em | tab)*

Syntax

<!ELEMENT mosObj (objID, slug, objType, objTB, objRev, objDur, status, objAir, createdBy, created, changedBy, changed, description)> 
<!ELEMENT description (#PCDATA | p | em | tab)*>
<!ELEMENT p (#PCDATA | em | tab)*>

Example

<mos>
  <mosID>aircache.newscenter.com</mosID>
  <ncsID>ncs.newscenter.com</ncsID>
  <mosObj>
    <objID>M000123</objID>
    <objSlug>Hotel Fire</ObjSlug>
    <objType>VIDEO</objType>
    <objTB>60</objTB>
    <objRev>1</objRev>
    <objDur>1800</objDur>
    <status>NEW</status>
    <objAir>READY</objAir>
    <createdBy>Chris</createdBy>
    <created>1998-10-31T23:39:12</created>
    <changedBy>Chris</changedBy>
    <changed>1998-10-31T23:39:12</changed>
    <description>
<p>Exterior footage of <em>Baley Park Hotel</em> on fire with natural sound. Trucks are visible for the first portion of the clip. <em>CG locator at 0:04 and duration 0:05, Baley Park Hotel.</em></p>
<p><tab/>Cuts to view of fire personnel exiting hotel lobby and cleaning up after the fire is out.</p>
<p><em>Clip has been doubled for pad on voice over.</em></p>
    </description>
  </mosObj>
</mos>

3.3 mosReqObj - Request Object Description

Purpose Message used by NCS to request object description.

Response

mosObj - if objID is found
mosAck - otherwise

Port

MOS Lower Port (10540) - Media Object Metadata

Structural Outline

mos
    mosID
    ncsID
    mosReqObj
       objID

Syntax

<!ELEMENT mosReqObj (objID)>

Example

<mos>
  <mosID>aircache.newscenter.com</mosID>
  <ncsID>ncs.newscenter.com</ncsID>
  <mosReqObj>
    <objID>M000123</objID>
  </mosReqObj>
</mos>

3.4 mosReqAll - Request All Object Data from MOS

Purpose Method for the NCS to request the MOS send it mosObj messages for every Object in the MOS. Pause, when greater than zero, indicates the number of seconds to pause between MOS objects in the mosListAll message. Pause of zero indicates that all objects should be sent using mosObj messages.

Response

mosListAll - if pause > 0
mosObj - otherwise

Port

MOS Lower Port (10540) - Media Object Metadata

Structural Outline

mos
    mosID
    ncsID
    mosReqAll
       pause

Syntax

<!ELEMENT mosReqAll (pause)>

Example

<mos>
  <mosID>aircache.newscenter.com</mosID>
  <ncsID>ncs.newscenter.com</ncsID>
  <mosReqAll>
    <pause>0</pause>
  </mosReqAll>
</mos>

3.5 mosListAll - Listing of All Object Data from MOS

Purpose Send MOS object descriptions in a format similar to mosObj sequentially from the MOS to the NCS in response to the mosReqAll message. There is a pause between each object as defined in the mosReqAll message.

Response

None

Port

MOS Lower Port (10540) - Media Object Metadata

Structural Outline

mos
    mosID
    ncsID
    mosListAll
        (objID, objSlug, objType, objTB, objRev, objDur, status, objAir,
         createdBy, created, changedBy, changed, description)*

Syntax

<!ELEMENT mosListAll ((objID, objSlug, objType, objTB, objRev, objDur, status, objAir, createdBy, created, changedBy, changed, description)*)>
<!ELEMENT description (#PCDATA | p | em | tab)*>
<!ELEMENT p (#PCDATA | em | tab)*>

Example

<mos>
  <mosID>aircache.newscenter.com</mosID>
  <ncsID>ncs.newscenter.com</ncsID>
  <mosListAll>
    <objID>M000123</objID>
    <objSlug>HOTEL FIRE</objSlug>
    <objType>VIDEO</objType>
    <objTB>60</objTB>
    <objRev>3</objRev>
    <objDur>1530</objDur>
    <status>UPDATED</status>
    <objAir>READY</objAir>
    <createdBy>Chris</createdBy>
    <created>1998-10-31T23:39:12</created>
    <changedBy>Chris</changedBy>
    <changed>1998-11-01T14:35:55</changed>
    <description>
<p>Exterior footage of <em>Baley Park Hotel</em> on fire with natural sound. Trucks are visible for the first portion of the clip. <em>CG locator at 0:04 and duration 0:05, Baley Park Hotel.</em></p>
<p><tab/>Cuts to view of fire personnel exiting hotel lobby and cleaning up after the fire is out.</p>
<p><em>Clip has been doubled for pad on voice over.</em></p>
</description>
    <objID>M000224</objID>
    <objSlug>COLSTAT MURDER:VO</objSlug>
    <objType>VIDEO</objType>
    <objTB>60</objTB>
    <objRev>4</objRev>
    <objDur>800</objDur>
    <status>UPDATED</status>
    <objAir>READY</objAir>
    <createdBy>Phil</createdBy>
    <created>1998-11-01T15:19:01</created>
    <changedBy>Chris</changedBy>
    <changed>1998-11-01T15:21:15</changed>
    <description>
VOICE OVER MATERIAL OF COLSTAT MURDER SITES SHOT ON 1-NOV.
</description>
  </mosListAll>
</mos>

3.6 mosObjCreate – MOS Object Create

Purpose

Allows an NCS to request the Media Object Server to create a Media Object with specific metadata associated with it.

Response

mosAck          (if object can be created then status description = objID)
            NACK             (if object CANNOT be created.  status description = reason for error)
            mosObj

Port

MOS Lower Port (10540) – MOS Object

Structural Outline

mos
             
mosID
                ncsID
                mosObjCreate
                   objSlug
                   objType
                   objTB
                   objDur?
                   time?
                   createdBy?
                   description?

Syntax

<!ELEMENT mosObjCreate (objSlug, objType, objTB, objDur?, time?, createdBy? Description?)>
<!ELEMENT description (#PCDATA | p | em | tab)*>
<!ELEMENT p (#PCDATA | em | tab)*>

 

 

Example 

<mos>  
  <mosID>videoserver.station.com</mosID>
  <ncsID>ncs.station.com</ncsID>  
  <mosObjCreate>  
     <objSlug>Hotel Fire</ObjSlug>
     <objType>VIDEO</objType>  
     <objTB>60</objTB>  
     <objDur>1800</objDur>  
     <createdBy>Chris</createdBy>  
     <description>  
        <p>Exterior footage of <em>Baley Park Hotel</em> on fire with natural sound. Trucks are 
        visible for the first portion of the clip. <em>CG locator at 0:04 and duration 0:05, Baley Park 
        Hotel.</em></p>    
        <p><tab/>Cuts to view of fire personnel exiting hotel lobby and cleaning up after the fire is out.</p>  
        <p><em>Clip has been doubled for pad on voice over.</em></p>  
     </description>  
   </mosObjCreate>
</mos>

3.7 roCreate - Create Running Order

Purpose Message from the NCS to the MOS that defines a new Running Order.

Response

roAck

Port

MOS Upper Port (10541) - Running Order

Structural Outline

mos
    mosID
    ncsID
    roCreate
       roID
       roSlug
       roChannel?
       roEdStart?
       roEdDur?
       roTrigger?
       story*
         storyID
         storySlug?
         item*
             itemID
             itemSlug?
             objID
             mosID*
             itemChannel?

             itemEdStart?
             itemEdDur?
             itemTrigger?
             macroIn?
             macroOut?

Syntax

<!ELEMENT roCreate (roID, roSlug, roChannel?, roEdStart?, roEdDur?, roTrigger?, story*)>
<!ELEMENT story (storySlug?, storyID, item*)>
<!ELEMENT item (itemID, itemSlug?, objID, mosID*, itemChannel?, itemEdStart?, itemEdDur?, itemTrigger?, macroIn?, macroOut?)>

Example

<mos>
  <mosID>aircache.newscenter.com</mosID>
  <ncsID>ncs.newscenter.com</ncsID>
  <roCreate>
    <roID>96857485</roID>
    <roSlug>5PM RUNDOWN</roSlug>
    <roEdStart>1999-04-17T17:02:00</roEdStart>
    <roEdDur>00:58:25</roEdDur>
    <story>
      <storyID>5983A501:0049B924:8390EF2B</storyID>
      <storySlug>COLSTAT MURDER</storySlug>
      <item>
        <itemID>0</itemID>
        <itemSlug>COLSTAT MURDER:VO</itemSlug>
        <objID>M000224</objID>
        <mosID>testmos.enps.com</mosID>

        <itemEdDur>645</itemEdDur>
        <itemTrigger>CHAINED</itemTrigger>
      </item>
    </story>
    <story>
      <storyID>3854737F:0003A34D:983A0B28</storyID>
      <storySlug>AIRLINE INSPECTIONS</storySlug>
      <item>
        <itemID>0</itemID>
        <objID>M000133</objID>
        <mosID>testmos.enps.com</mosID>

        <itemEdStart>55</itemEdStart>
        <itemEdDur>310</itemEdDur>
      </item>
    </story>
  </roCreate>
</mos>

3.8 roAck - Acknowledge Running Order

Purpose MOS response to receipt of any Running Order command.

Response

None

Port

MOS Upper Port (10541) - Running Order

Structural Outline

mos
    mosID
    ncsID
    roAck
       roID
       roStatus
        (storyID, itemID, objID, status)*

Syntax

<!ELEMENT roAck (roID, roStatus, (storyID, itemID, objID, status)*)>

Example

<mos>
  <mosID>aircache.newscenter.com</mosID>
  <ncsID>ncs.newscenter.com</ncsID>
  <roAck>
    <roID>96857485</roID>
    <roStatus>Unknown object M000133</roStatus>
    <storyID>5983A501:0049B924:8390EF2B</storyID>
    <itemID>0</itemID>
    <objID>M000224</objID>
    <status>LOADED</status>
    <storyID>3854737F:0003A34D:983A0B28</storyID>
    <itemID>0</itemID>
    <objID>M000133</objID>
    <status>UNKNOWN</status>
  </roAck>
</mos>

3.9 roReplace - Replace Running Order

Replaces an existing Running Order definition in the MOS with another one sent from the NCS.

Response

roAck

Port

MOS Upper Port (10541) - Running Order

Structural Outline

mos
    mosID
    ncsID
    roReplace
       roID
       roSlug
       roChannel?
       roEdStart?
       roEdDur?
       roTrigger?
       story*
         storyID
         storySlug?
         item*
             itemID
             itemSlug?
             objID
             mosID*

             itemChannel?
             itemEdStart?
             itemEdDur?
             itemTrigger?
             macroIn?
             macroOut?

Syntax

<!ELEMENT roReplace (roID, roSlug, roChannel?, roEdStart?, roEdDur?, roTrigger?, story*)>
<!ELEMENT story (storySlug?, storyID, item*)>
<!ELEMENT item (itemID, itemSlug?, objID, mosID* itemChannel?, itemEdStart?, itemEdDur?, itemTrigger?, macroIn?, macroOut?)>

Example

<mos>
  <mosID>aircache.newscenter.com</mosID>
  <ncsID>ncs.newscenter.com</ncsID>
  <roReplace>
    <roID>96857485</roID>
    <roSlug>5PM RUNDOWN</roSlug>
    <story>
      <storyID>5983A501:0049B924:8390EF2B</storyID>
      <storySlug>COLSTAT MURDER</storySlug>
      <item>
        <itemID>0</itemID>
        <itemSlug>COLSTAT MURDER:VO</itemSlug>
        <objID>M000224</objID>
        <mosID>testmos.enps.com</mosID>

        <itemEdDur>645</itemEdDur>
        <itemTrigger>CHAINED</itemTrigger>
      </item>
    </story>
    <story>
      <storyID>3852737F:0013A64D:923A0B28</storyID>
      <storySlug>AIRLINE SAFETY</storySlug>
      <item>
        <itemID>0</itemID>
        <objID>M000295</objID>
        <mosID>testmos.enps.com</mosID>

        <itemEdStart>500</itemEdStart>
        <itemEdDur>600</itemEdDur>
      </item>
    </story>
  </roReplace>
</mos>

3.10 roDelete - Delete Running Order

Purpose Deletes a Running order in the MOS.

Response

roAck

Port

MOS Upper Port (10541) - Running Order

Structural Outline

mos
    mosID
    ncsID
    roDelete
       roID

Syntax

<!ELEMENT roDelete (roID)>

Example

<mos>
  <mosID>aircache.newscenter.com</mosID>
  <ncsID>ncs.newscenter.com</ncsID>
  <roDelete>
    <roID>49478285</roID>
  </roDelete>
</mos>

3.11 roReq - Request Running Order

Purpose

Request for a complete Playlist description of Running.

NOTE:  This message can be used by either NCS or MOS

A MOS can use this to “resync” it’s Playlist with the NCS Running Order or to obtain a full description of the Playlist at any time.

An NCS can use this as a diagnostic tool to check the order of the Playlist constructed in the MOS versus the sequence of Items in the Running Order.

Response

roList or roAck (roAck with a NACK value is sent if the Running Order ID is not valid or roList cannot be returned for some reason)

Port

MOS Upper Port (10541) - Running Order

Structural Outline

mos
    mosID
    ncsID
    roReq
       roID

Syntax

<!ELEMENT roReq (roID)>

Example

<mos>
  <mosID>aircache.newscenter.com</mosID>
  <ncsID>ncs.newscenter.com</ncsID>
  <roReq>
    <roID>96857485</roID>
  </roReq>
</mos>

3.12 roList - List Running Order

Purpose

List of Running Order in response to roReq message.

NOTE:  This message can be used by either NCS or MOS

A MOS can use this to “resync” it’s Playlist with the NCS Running Order or to obtain a full description of the Playlist at any time.

An NCS can use this as a diagnostic tool to check the order of the Playlist constructed in the MOS versus the sequence of Items in the Running Order.

roList is functionally similar to roCreate.

Response

None

Port

MOS Upper Port (10541) - Running Order

Structural Outline

mos
    mosID
    ncsID
    roList