D.1 XML schema for transporting MCData identities and general services information
24.2823GPPMission Critical Data (MCData) signalling controlProtocol specificationRelease 18TS
D.1.1 General
This clause defines XML schema and MIME type for transporting MCData identities and general services information.
D.1.2 XML schema
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema
xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="urn:3gpp:ns:mcdataInfo:1.0"
xmlns:mcdatainfo="urn:3gpp:ns:mcdataInfo:1.0"
elementFormDefault="qualified"
attributeFormDefault="unqualified"
xmlns:xenc="http://www.w3.org/2001/04/xmlenc#">
<xs:import namespace="http://www.w3.org/2001/04/xmlenc#" schemaLocation="http://www.w3.org/TR/xmlenc-core/xenc-schema.xsd"/>
<!– root XML element –>
<xs:element name="mcdatainfo" type="mcdatainfo:mcdatainfo-Type" id="info"/>
<xs:complexType name="mcdatainfo-Type">
<xs:sequence>
<xs:element name="mcdata-Params" type="mcdatainfo:mcdata-ParamsType" minOccurs="0"/>
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="anyExt" type="mcdatainfo:anyExtType" minOccurs="0"/>
</xs:sequence>
<xs:anyAttribute namespace="##any" processContents="lax"/>
</xs:complexType>
<xs:complexType name="mcdata-ParamsType">
<xs:sequence>
<xs:element name="mcdata-access-token" type="mcdatainfo:contentType" minOccurs="0"/>
<xs:element name="request-type" type="xs:string" minOccurs="0"/>
<xs:element name="mcdata-request-uri" type="mcdatainfo:contentType" minOccurs="0"/>
<xs:element name="mcdata-calling-user-id" type="mcdatainfo:contentType" minOccurs="0"/>
<xs:element name="mcdata-called-party-id" type="mcdatainfo:contentType" minOccurs="0"/>
<xs:element name="mcdata-calling-group-id" type="mcdatainfo:contentType" minOccurs="0"/>
<xs:element name="alert-ind" type="mcdatainfo:contentType" minOccurs="0"/>
<xs:element name="originated-by" type="mcdatainfo:contentType" minOccurs="0"/>
<xs:element name="mcdata-client-id" type="mcdatainfo:contentType" minOccurs="0"/>
<xs:element name="mcdata-controller-psi" type="mcdatainfo:contentType" minOccurs="0"/>
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="anyExt" type="mcdatainfo:anyExtType" minOccurs="0"/>
</xs:sequence>
<xs:anyAttribute namespace="##any" processContents="lax"/>
</xs:complexType>
<!– anyExt elements for MCData-Params–>
<xs:element name="emergency-alert-area-ind" type="xs:boolean"/>
<xs:element name="group-geo-area-ind" type="xs:boolean"/>
<xs:element name="pre-established-session-ind" type="xs:boolean"/>
<xs:element name="call-to-functional-alias-ind" type="xs:boolean"/>
<xs:element name="mcdata-communication-state" type="mcdatainfo:mcdataCommunicationStateType"/>
<xs:simpleType name="mcdataCommunicationStateType">
<xs:restriction base="xs:string">
<xs:enumeration value="establish-request"/>
<xs:enumeration value="establish-success"/>
<xs:enumeration value="establish-fail"/>
<xs:enumeration value="terminate-request"/>
<xs:enumeration value="terminated"/>
</xs:restriction>
</xs:simpleType>
<xs:element name="emergency-ind" type="xs:boolean"/>
<xs:element name="alert-ind-rcvd" type="xs:boolean"/>
<xs:element name="mc-org" type="xs:string"/>
<xs:element name="functional-alias-URI" type="mcdatainfo:contentType"/>
<xs:element name="user-requested-priority" type="xs:nonNegativeInteger"/>
<xs:element name="multiple-devices-ind" type="mcdatainfo:contentType"/>
<xs:element name="imminentperil-ind" type="xs:boolean"/>
<xs:element name="emergency-ind-rcvd" type="xs:boolean"/>
<xs:element name="binding-ind" type="xs:boolean"/>
<xs:element name="binding-fa-uri" type="xs:anyURI"/>
<xs:element name="unbinding-fa-uri" type="xs:anyURI"/>
<xs:element name="called-functional-alias-URI" type="mcdatainfo:contentType"/>
<xs:element name="associated-group-id" type="xs:string"/>
<xs:element name="store-all-private-comms-in-msgstore" type="xs:boolean"/>
<xs:element name="store-all-group-comms-in-msgstore" type="xs:boolean"/>
<xs:element name="store-specific-private-comms-in-msgstore" type="mcdatainfo:storageCtrlType"/>
<xs:element name="store-specific-group-comms-in-msgstore" type="mcdatainfo:storageCtrlType"/>
<xs:simpleType name="storageCtrlType">
<xs:restriction base="xs:string">
<xs:enumeration value="enable"/>
<xs:enumeration value="disable"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="protectionType">
<xs:restriction base="xs:string">
<xs:enumeration value="Normal"/>
<xs:enumeration value="Encrypted"/>
</xs:restriction>
</xs:simpleType>
<xs:complexType name="contentType">
<xs:choice>
<xs:element name="mcdataURI" type="xs:anyURI"/>
<xs:element name="mcdataString" type="xs:string"/>
<xs:element name="mcdataBoolean" type="xs:boolean"/>
<xs:any namespace="##other" processContents="lax"/>
<xs:element name="anyExt" type="mcdatainfo:anyExtType" minOccurs="0"/>
</xs:choice>
<xs:attribute name="type" type="mcdatainfo:protectionType"/>
<xs:anyAttribute namespace="##any" processContents="lax"/>
</xs:complexType>
<xs:complexType name="anyExtType">
<xs:sequence>
<xs:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:schema>
D.1.3 Semantic
The <mcdatainfo> element is the root element of the XML document. The <mcdatainfo> element can contain subelements.
NOTE 1: The subelements of the <mcdata-info> are validated by the <xs:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> particle of the <mcdata-info> element
If the <mcdatainfo> contains the <mcdata-Params> element then:
1) the <mcdata-access-token>, <mcdata-request-uri>, <mcdata-controller-psi>, <mcdata-calling-user-id>, <mcdata-called-party-id>, <mcdata-calling-group-id>, <alert-ind>, <originated-by>, <mcdata-client-id>, <functional-alias-URI> and <called-functional-alias-URI> elements can be included with encrypted content;
2) for each element in 1) that is included with content that is not encrypted:
a) the element has the "type" attribute set to "Normal";
b) if the element is the <mcdata-request-uri>, <mcdata-calling-user-id>, <mcdata-called-party-id>, <mcdata-calling-group-id>, <originated-by> <functional-alias-URI> or <called-functional-alias-URI> element, then the <mcdataURI> element is included;
c) if the element is the <mcdata-access-token> or <mcdata-client-id>, then the <mcdataString> element is included; and
d) if the element is <alert-ind>, then the <mcdataBoolean> element is included; and
3) for each element in 1) that is included with content that is encrypted:
a) the element has the "type" attribute set to "Encrypted";
b) the <xenc:EncryptedData> element from the "http://www.w3.org/2001/04/xmlenc#" namespace is included and:
i) can have a "Type" attribute can be included with a value of "http://www.w3.org/2001/04/xmlenc#Content";
ii) can include an <EncryptionMethod> element with the "Algorithm" attribute set to value of "http://www.w3.org/2009/xmlenc11#aes128-gcm";
iii) can include a <KeyInfo> element with a <KeyName> element containing the base 64 encoded XPK-ID; and
iv) includes a <CipherData> element with a <CipherValue> element containing the encrypted data.
NOTE 2: When the optional attributes and elements are not included within the <xenc:EncryptedData> element, the information they contain is known to sender and the receiver by other means.
If the <mcdatainfo> contains the <mcdata-Params> element then:
1) the <mcdata-access-token> can be included with the access token received during authentication procedure as described in 3GPP TS 24.482 [24];
2) the <request-type> can be included with:
a) a value of "one-to-one-sds" to indicate that the MCData client wants to initiate a one-to-one SDS request;
b) a value of "group-sds" to indicate the MCData client wants to initiate a group SDS request;
c) a value of "one-to-one-fd" to indicate that the MCData client wants to initiate a one-to-one FD request;
d) a value of "group-fd" to indicate that the MCData client wants to initiate a group FD request;
e) a value of "msf-disc-req" to indicate that the MCData client wishes to discover the absoluteURI of the media storage function for HTTP requests;
f) a value of "msf-disc-res" when the participating MCData function sends the absolute URI to the MCData client;
g) a value of "notify" when the controlling MCData function needs to send a notification to the MCData client;
h) a value of "one-to-one-sds-session" to indicate that the MCData client wants to initiate a one-to-one SDS session;
i) a value of "group-sds-session" to indicate the MCData client wants to initiate a group SDS session;
j) a value of "functional-alias-status-determination" when a client initiates a subscription request to FA status;
k) "fa-group-binding-req" when a client initiates a request for binding of a functional alias with the MCData group(s) for the MCData user; or
l) a value of "store-comms-in-msgstore-ctrl-req" when an MCData client initiates a request to control the storage of MCData communications (private and group) into MCData message store;
3) the <mcdata-request-uri> can be included with an MCData group ID or an MCData user ID;
4) the <mcdata-calling-user-id> can be included, set to MCData ID of the originating user;
5) the <mcdata-called-party-id> can be included, set to the MCData ID of the terminating user;
6) the <mcdata-calling-group-id> can be included to indicate the MCData group identity to the terminating user;
7) the <alert-ind> can be:
a) set to "true" to indicate that an alert is to be sent; or
b) set to "false" to indicate that an alert is to be cancelled;
8) the <originated-by> can be included, set to the MCData ID of the originating user of an MCData emergency alert when being cancelled by another authorised MCData user;
9) the <mcdata-client-id> can be included, set to the MCData client ID of the MCData client that originated a SIP INVITE request, SIP REFER request, SIP REGISTER request, SIP PUBLISH request or SIP MESSAGE request;
10) the <mcdata-controller-psi> can be included, set to the PSI of the controlling MCData function that handled the one-to-one or group MCData data request; and
11) the <anyExt> can be included with the following elements:
a) a <pre-established-session-ind> element :
i) set to the value "true" by the MCData client in a pre-established session setup request to indicate to the MCData participating function about initiation of a pre-established session;
b) an <mcdata-communication-state> element can be included to indicate the state of MCData communication within a pre-established session. The <mcdata-communication-state> can be set to:
i) the value "establish-request" by the MCData participating function to indicate to the MCData client about an MCData communication establishment request within a pre-established session;
ii) the value "establish-success" by the MCData participating function or the MCData client to indicate that the MCData communication is established successfully;
iii) the value "establish-fail" by the MCData participating function or the MCData client to indicate that the MCData communication establishment is failed or rejected;
iv) the value "terminate-request" by the MCData participating function to indicate to the MCData client about an MCData communication termination request within a pre-established session; or
v) the value "terminated" by the MCData participating function or the MCData client to indicate that the MCData communication is terminated;
c) an <emergency-ind> element can be included and set to:
i) "true" to indicate that the communication that the MCData client is initiating is an emergency MCData communication; or
ii) "false" to indicate that the MCData client is cancelling an emergency MCData communication (i.e. converting it back to a non-emergency communication);
d) an <alert-ind-rcvd> element:
i) may be set to "true" and included in a SIP MESSAGE to indicate that the emergency alert or cancellation was received successfully;
e) an <mc-org> element may be:
i) set to the MCData user’s Mission Critical Organization and included in an emergency alert sent by the MCData server to terminating MCData clients;
f) a <functional-alias-URI> element set to the value of the functional alias that is used together with the "mcdata-calling-user-id";
g) an <emergency-alert-area-ind> element:
i) set to the value "true" when the MCData client has entered an emergency alert area; or
ii) set to the value "false" when the MCData client has exited an emergency alert area;
h) a <group-geo-area-ind> element:
i) set to the value "true" when the MCData client has entered a group geographic area; or
ii) set to the value "false" when the MCData client has exited a group geographic area;
i) an <imminentperil-ind> element can be included if the <mcdata-request-uri> is also included and set to an MCData group ID, in which case the <imminentperil-ind> element is to be set to:
i) "true" to indicate that the communication that the MCData client is initiating is an imminent peril MCData communication; or
ii) "false" to indicate that the MCData client requests that the communication should no longer be considered an imminent peril MCData communication;
j) an <emergency-ind-rcvd> element:
i) can be set to "true" and included in a SIP MESSAGE to indicate that the in-progress emergency cancellation request was received successfully;
k) a <multiple-devices-ind> element can be included and set to:
i) "true" to indicate to the client that multiple clients are registered for the MCData user; or
ii) "false" to indicate to the client that no other clients are registered for the MCData user;
l) a <binding-ind> element set to:
i) "true" when the user wants to create a binding of a particular functional alias with the specified list of MCData groups for the MCData client; or
ii) "false" when the user wants to remove a binding of a particular functional alias from the specified list of MCData groups for the MCData client;
m) a <binding-fa-uri> element set to:
i) a URI of a functional alias that shall be bound with the specified list of MCData groups for the MCData client;
n) a <unbinding-fa-uri> element set to:
i) a URI of a functional alias that shall be unbound from the specified list of MCData groups for the MCData client;
o) a <store-all-private-comms-in-msgstore> element can be included and set to:
i) "true" when the user wants to store his/her MCData private communications into his/her MCData message store account; or
ii) "false" when the user do not store his/her MCData private communications into his/her MCData message store account;
p) a <store-all-group-comms-in-msgstore> element can be included and set to:
i) "true" when the user wants to store his/her MCData group communications into his/her MCData message store account; or
ii) "false" when the user do not store his/her MCData group communications into his/her MCData message store account;
q) a <store-specific-private-comms-in-msgstore> element can be included and set to:
i) set to a value of "enable" when the user wants to store the specified MCData private communications for which user is authorized to store the communication into the MCData message store; or
ii) set to a value of "disable" when the user do not wants to store the specified MCData private communications for which user is authorized to store the communication into the MCData message store;
r) a <store-specific-group-comms-in-msgstore> element can be included and set to:
i) "enable" when the user wants to store the specified MCData group communications for which user is authorized to store the communication into the MCData message store; or
ii) "disable" when the user do not wants to store the specified MCData group communications for which user is authorized to store the communication into the MCData message store;
s) an <call-to-functional-alias-ind> element can be included and set to:
i) "true" when the MCData client is using a functional alias to identify the MCData IDs of the potential target MCData users; or
ii) "false" when the MCData client is using MCData IDs to identify the potential target MCData users;
t) a <called-functional-alias-URI> element set to the value of the functional alias to be called; and
u) a <user-requested-priority> element set to the non-negative integer value requested by the user as priority; and
v) an <associated-group-id> element set to the identity of a constituent MCData group whenthe MCData communication targets a temporary group or a group regroup based on a preconfigured group.
Absence of the <emergency-ind>, <alert-ind> and <imminentperil-ind> in a SIP INVITE request indicates that the MCData client is initiating a non-emergency communication.
Absence of the <call-to-functional-alias-ind> in a SIP INVITE or a SIP REFER request indicates the use of the MCData IDs of the potential target MCData users.
The recipient of the XML ignores any unknown element and any unknown attribute.
D.1.4 IANA registration template
Your Name:
<MCC name>
Your Email Address:
<MCC email address>
Media Type Name:
Application
Subtype name:
vnd.3gpp.mcdata-info+xml
Required parameters:
None
Optional parameters:
"charset" the parameter has identical semantics to the charset parameter of the "application/xml" media type as specified in section 9.1 of IETF RFC 7303.
Encoding considerations:
binary.
Security considerations:
Same as general security considerations for application/xml media type as specified in section 9.1 of IETF RFC 7303. In addition, this media type provides a format for exchanging information in SIP, so the security considerations from IETF RFC 3261 apply.
The information transported in this media type does not include active or executable content.
Mechanisms for privacy and integrity protection of protocol parameters exist. Those mechanisms as well as authentication and further security mechanisms are described in 3GPP TS 24.229.
This media type does not include provisions for directives that institute actions on a recipient’s files or other resources.
This media type does not include provisions for directives that institute actions that, while not directly harmful to the recipient, may result in disclosure of information that either facilitates a subsequent attack or else violates a recipient’s privacy in any way.
This media type does not employ compression.
Interoperability considerations:
Same as general interoperability considerations for application/xml media type as specified in section 9.1 of IETF RFC 7303. Any unknown XML elements and any unknown XML attributes are to be ignored by recipient of the MIME body.
Published specification:
3GPP TS 24.282 "Mission Critical Data (MCData) signalling control;Protocol specification", available via http://www.3gpp.org/specs/numbering.htm.
Applications Usage:
Applications supporting the mission critical data communications procedures as described in the published specification.
Fragment identifier considerations:
The handling in section 5 of IETF RFC 7303 applies.
Restrictions on usage:
None
Provisional registration? (standards tree only):
N/A
Additional information:
1. Deprecated alias names for this type: none
2. Magic number(s): none
3. File extension(s): none
4. Macintosh File Type Code(s): none
5. Object Identifier(s) or OID(s): none
Intended usage:
Common
Person to contact for further information:
– Name: <MCC name>
– Email: <MCC email address>
– Author/Change controller:
i) Author: 3GPP CT1 Working Group/3GPP_TSG_CT_WG1@LIST.ETSI.ORG
ii) Change controller: <MCC name>/<MCC email address>