Table of contents
TOC
Collapse the table of content
Expand the table of content

User agent profile for MMS messages

Last Updated: 12/12/2016

Partners can specify a user agent profile to use on the device for MMS messages. The user agent profile XML file details a device’s hardware specifications and media capabilities so that an MMS application server (MMSC) can return supported optimized media content to the device. The user agent profile XML file is generally stored on the MMSC.

Constraints: None
This customization supports: per-SIM value

Instructions:
The MMS-specific components for Windows 10 Mobile are included in the following code sample.

<!-- **** Microsoft MMS Baseline Characteristics Description ****
   5/25/2012 --> 
<prf:component>
   <rdf:Description rdf:ID="MMSCharacteristics">
      <rdf:type rdf:resource=
         "http://www.wapforum.org/profiles/MMS/ccppschema-20010111#MmsCharacteristics" /> 
      <!-- Max size must mirror max size that the mobile operator 
         allows for sending. -->
      <mms:MmsMaxMessageSize>614400</mms:MmsMaxMessageSize> 
      <mms:MmsMaxImageResolution>1600x1600</mms:MmsMaxImageResolution> 
      <mms:MmsCcppAccept>
         <rdf:Bag>
            <!-- Image --> 
            <rdf:li>image/jpeg</rdf:li> 
            <rdf:li>image/gif</rdf:li> 
            <rdf:li>image/bmp</rdf:li> 
            <rdf:li>image/png</rdf:li> 
            <rdf:li>image/tiff</rdf:li> 
            <rdf:li>image/wdp</rdf:li> 
            <rdf:li>image/vnd.ms-photo</rdf:li> 
            <!-- Audio --> 
            <rdf:li>audio/mp3</rdf:li> 
            <rdf:li>audio/mpeg</rdf:li> 
            <rdf:li>audio/mpeg3</rdf:li> 
            <rdf:li>audio/mp4</rdf:li> 
            <rdf:li>audio/wav</rdf:li> 
            <rdf:li>audio/x-ms-wav</rdf:li> 
            <rdf:li>audio/vnd.wave</rdf:li> 
            <rdf:li>audio/3gpp</rdf:li> 
            <rdf:li>audio/3gpp2</rdf:li> 
            <rdf:li>audio/x-ms-wma</rdf:li> 
            <rdf:li>audio/aac</rdf:li>
            <rdf:li>audio/aacp</rdf:li>
            <rdf:li>audio/vnd.dlna.adts</rdf:li>
            <rdf:li>audio/x-aac</rdf:li>
            <rdf:li>audio/x-m4a</rdf:li>
            <rdf:li>audio/x-mp3</rdf:li>
            <rdf:li>audio/x-mpeg</rdf:li>
            <rdf:li>audio/x-wav</rdf:li>
            <rdf:li>audio/amr</rdf:li>
            <rdf:li>audio/x-m4r</rdf:li>
            <!-- Video --> 
            <rdf:li>video/3gpp</rdf:li> 
            <rdf:li>video/3gpp2</rdf:li> 
            <rdf:li>video/mp4</rdf:li> 
            <rdf:li>video/x-m4v</rdf:li> 
            <rdf:li>video/x-ms-wmv</rdf:li> 
            <rdf:li>video/quicktime</rdf:li> 
            <!-- Text --> 
            <rdf:li>text/plain</rdf:li> 
            <!-- VCards --> 
            <rdf:li>text/vcard</rdf:li> 
            <rdf:li> text/x-vcard</rdf:li>
            <!-- Other MIME type --> 
            <rdf:li>application/vnd.wap.multipart.mixed</rdf:li> 
            <rdf:li>application/vnd.wap.multipart.related</rdf:li> 
            <rdf:li>application/smil</rdf:li> 
            <rdf:li>application/vnd.wap.mms-message</rdf:li> 
            <rdf:li>application/vnd.oma.drm.message</rdf:li>
         </rdf:Bag>
      </mms:MmsCcppAccept>
      <mms:MmsCcppAcceptCharSet>
         <rdf:Bag>
            <rdf:li>UTF-8</rdf:li> 
            <rdf:li>UTF-16</rdf:li> 
            <rdf:li>ISO-8859-1</rdf:li> 
            <rdf:li>ISO-8859-2</rdf:li> 
            <rdf:li>ISO-8859-3</rdf:li> 
            <rdf:li>ISO-8859-4</rdf:li> 
            <rdf:li>ISO-8859-5</rdf:li> 
            <rdf:li>ISO-8859-6</rdf:li> 
            <rdf:li>ISO-8859-7</rdf:li> 
            <rdf:li>ISO-8859-8</rdf:li> 
            <rdf:li>ISO-8859-9</rdf:li> 
            <rdf:li>ISO-8859-10</rdf:li> 
            <rdf:li>US-ASCII</rdf:li> 
            <rdf:li>ISO-10646-UCS-2</rdf:li>
         </rdf:Bag>
      </mms:MmsCcppAcceptCharSet>
      <mms:MmsVersion>
         <rdf:Bag>
            <rdf:li>1.2</rdf:li> 
         </rdf:Bag>
      </mms:MmsVersion>
   </rdf:Description>
</prf:component>

There are two ways to correlate a user agent profile with a given device:

  • You can take the user agent string of the device that is sent with MMS requests and use it as a hash to map to the user agent profile on the MMSC. The user agent string cannot be modified.

  • Alternatively, you can directly set the URI of the user agent profile on the device.

The following steps describe how to specify a custom user agent profile XML file by using a registry setting.

  1. Create a customization answer file using the contents shown in the following code sample.

    <?xml version="1.0" encoding="utf-8" ?>  
    <ImageCustomizations xmlns="http://schemas.microsoft.com/embedded/2004/10/ImageUpdate"  
                         Name="MMSUAProfile"  
                         Description="Use to specify a user agent profile to use for MMS messages."  
                         Owner=""  
                         OwnerType="OEM"> 
    
      <!-- Define the Targets --> 
      <Targets>
         <Target Id="">
            <TargetState>
               <Condition Name="" Value="" />
               <Condition Name="" Value="" />
            </TargetState>
         </Target>
      </Targets>
    
      <Static>
        <Settings Path="Multivariant">
          <Setting Name="Enable" Value="1" />
        </Settings>
        <Settings Path="AutoDataConfig">
          <Setting Name="Enable" Value="0" />
        </Settings>
      </Static>
    
      <!-- Specify the Variant -->
      <Variant Name=""> 
        <TargetRefs>
          <TargetRef Id="" /> 
        </TargetRefs>
    
        <Settings Path="Messaging/PerSimSettings/$(__ICCID)">  
    
          <!-- Replace UAProf.xml with the full URI of your user agent profile file. -->
          <Setting Name="UAProf" Value="UAProf.xml" />     
    
          <!-- Use to specify the custom user agent property name. Set the value to either
               "x-wap-profile or "profile" -->
          <Setting Name="UAProfToken" Value="x-wap-profile" />     
    
        </Settings>  
    
      </Variant>
    
    </ImageCustomizations>
    
  2. Specify an Owner.

  3. Define Targets or conditions for when a variant can be applied, such as keying off a SIM's MCC, MNC, and SPN.

  4. Define settings for a Variant, which are applied if the associated target's conditions are met.

  5. In the UAProf``Value, replace UAProf.xml value with the full URI of your user agent profile.

    Optionally, you can also specify the custom user agent property name for MMS that is sent in the header by setting UAProfToken to either x-wap-profile or profile.

Testing steps:
Work with your mobile operator to test this customization on their network.

Send comments about this topic to Microsoft

© 2017 Microsoft