User agent profiles

from Wikipedia, the free encyclopedia

User Agent Profile (UAprof) is a description of the device capabilities, especially for mobile phones, defined by the WAP Forum as part of the WAP 2.0 specification (and further developed by the Open Mobile Alliance (OMA)) .

Emergence

The trigger was the increasing number of supported formats and services of the mobile devices, with which the "Accept" field in the HTTP header got bigger and bigger. Thanks to UAprof, a mobile phone only needs to send a URL in the HTTP header , and an interested server can request an XML file there, in which all capabilities of the device or individual clients (enablers) are described. The accept field can thus be reduced to a minimum.

construction

A detailed description can be found in Appendix A of the specification starting on page 53. This is just a rough description to get a rough overview.

A UAProf file is an XML file that is structured according to the CC / PP scheme (a vocabulary extension of the RDF for describing the skills of a user agent). As usual with XML, a UAProf file also begins with the link to the schema that is used:

<?xml version="1.0"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:prf="http://www.openmobilealliance.org/tech/profiles/UAPROF/ccppschema-20021212#"
xmlns:mms="http://www.openmobilealliance.org/tech/profiles/MMS/ccppschema-20050301-MMS1.2#"
xmlns:pss6="http://www.3gpp.org/profiles/PSS/ccppschema-PSS6#">

Schemes created later, such as MMS and PSS6, are attached.

Then the individual components follow: HardwarePlatform, SoftwarePlatform, NetworkCharacteristics, BrowserUA, WapCharacteristics, PushCharacteristics, MmsCharacteristics, PssCommon, Streaming, ThreeGPFileFormat, PssMile etc. The structure is always the same:

<?xml version="1.0"?>
<prf:component>
  <rdf:Description rdf:ID="NameDerKomponente">
    <rdf:type rdf:resource="http://www.standardisierungsgremium.org/link/auf/das/ccppschema-20001112#NameDerKomponente" />
    <prf:UnterstützteOptionen>
      <rdf:Bag>
        <rdf:li>Option1</rdf:li>
        <rdf:li>Option2</rdf:li>
      </rdf:Bag>
    </prf:UnterstützteOptionen>
    <prf:IrgendeinWert>a</prf:IrgendeinWert>
    <prf:Version>2.0</prf:Version>
    <prf:NochEinWert>65536</prf:NochEinWert>
    <prf:NochEineListe>
      <rdf:Bag>
        <rdf:li>Wert1</rdf:li>
        <rdf:li>Wert2</rdf:li>
        <rdf:li>Wert3</rdf:li>
      </rdf:Bag>
    </prf:NochEineListe>
  </rdf:Description>
</prf:component>

example

(Nokia N73)

The HTTP header (excerpt):

Accept: text/javascript, text/ecmascript, application/x-javascript, text/html, application/vnd.wap.xhtml+xml, application/xhtml+xml, text/css, multipart/mixed, text/vnd.wap.wml,
application/vnd.wap.wmlc, application/vnd.wap.wmlscriptc, application/java-archive, application/java, application/x-java-archive, text/vnd.sun.j2me.app-descriptor,
application/vnd.oma.drm.message, application/vnd.oma.drm.content, application/vnd.wap.mms-message, application/vnd.wap.sic, text/x-co-desc, application/vnd.oma.dd+xml,
* /*,text/x-hdml,image/mng,image/x-mng,video/mng,video/x-mng,image/bmp,text/html,text/vnd.wap.wmlscript,text/vnd.wap.wml
Accept-Charset: iso-8859-1, utf-8, iso-10646-ucs-2; q=0.6,*
Accept-Encoding: deflate, gzip
Accept-Language: de;q=1.0, en;q=0.5, fr;q=0.5, tr;q=0.5, it;q=0.5, nl;q=0.5
Host: de.wikipedia.org/wiki/UAprof
User-Agent: NokiaN73-1/2.0626.0.0.2 S60/3.0 Profile/MIDP-2.0 Configuration/CLDC-1.1 UP.Link/6.3.0.0.0
X-Wap-Profile: "http://nds.nokia.com/uaprof/NN73-1r100.xml"

By the way: UAProf must not be confused with the user agent (penultimate line) (which many do). User agent only says which device it is, not what it can do.

<?xml version="1.0"?>
<!--                                                       -->
<!--    Dies ist eine Beispieldatei für die Wikipedia      -->
<!--       Ein Gerät dieser Art existiert nicht.           -->
<!--                                                       -->
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:prf="http://www.openmobilealliance.org/tech/profiles/UAPROF/ccppschema-20021212#"
xmlns:mms="http://www.openmobilealliance.org/tech/profiles/MMS/ccppschema-20050301-MMS1.2#">
   <rdf:Description rdf:ID="Profile">
      <prf:component>
         <rdf:Description rdf:ID="HardwarePlatform">
            <rdf:type rdf:resource="http://www.openmobilealliance.org/tech/profiles/UAPROF/ccppschema-20021212#HardwarePlatform"/>
            <prf:BluetoothProfile>
               <rdf:Bag>
                  <rdf:li>Headset Profile</rdf:li>
                  <rdf:li>Handsfree Profile</rdf:li>
                  <rdf:li>Object Push Profile</rdf:li>
               </rdf:Bag>
            </prf:BluetoothProfile>
            <prf:BitsPerPixel>16</prf:BitsPerPixel>
            <prf:ColorCapable>Yes</prf:ColorCapable>
            <prf:CPU>Wacek</prf:CPU>
            <prf:ImageCapable>Yes</prf:ImageCapable>
            <prf:InputCharSet>
               <rdf:Bag>
                  <rdf:li>ISO-8859-1</rdf:li>
                  <rdf:li>UTF-8</rdf:li>
               </rdf:Bag>
            </prf:InputCharSet>
            <prf:Keyboard>PhoneKeyPad</prf:Keyboard>
            <prf:Model>WikiPhone-1</prf:Model>
            <prf:NumberOfSoftKeys>2</prf:NumberOfSoftKeys>
            <prf:OutputCharSet>
               <rdf:Bag>
                  <rdf:li>ISO-8859-1</rdf:li>
                  <rdf:li>UTF-8</rdf:li>
               </rdf:Bag>
            </prf:OutputCharSet>
            <prf:PixelAspectRatio>1x1</prf:PixelAspectRatio>
            <prf:PointingResolution>Pixel</prf:PointingResolution>
            <prf:ScreenSize>640x480</prf:ScreenSize>
            <prf:ScreenSizeChar>80x24</prf:ScreenSizeChar>
            <prf:StandardFontProportional>Yes</prf:StandardFontProportional>
            <prf:SoundOutputCapable>Yes</prf:SoundOutputCapable>
            <prf:TextInputCapable>Yes</prf:TextInputCapable>
            <prf:Vendor>Fantasy</prf:Vendor>
            <prf:VoiceInputCapable>Yes</prf:VoiceInputCapable>
         </rdf:Description>
      </prf:component>
      <prf:component>
         <rdf:Description rdf:ID="SoftwarePlatform">
            <rdf:type rdf:resource="http://www.openmobilealliance.org/tech/profiles/UAPROF/ccppschema-20021212#SoftwarePlatform"/>
            <prf:AcceptDownloadableSoftware>Yes</prf:AcceptDownloadableSoftware>
            <prf:CcppAccept>
               <rdf:Bag>
                  <rdf:li>application/java</rdf:li>
                  <rdf:li>application/vnd.wap.mms-message</rdf:li>
                  <rdf:li>application/vnd.wap.wbxml</rdf:li>
                  <rdf:li>application/vnd.wap.wmlc</rdf:li>
                  <rdf:li>application/vnd.wap.wmlscriptc</rdf:li>
                  <rdf:li>application/vnd.wap.xhtml+xml</rdf:li>
                  <rdf:li>application/xhtml+xml</rdf:li>
                  <rdf:li>audio/midi</rdf:li>
                  <rdf:li>image/gif</rdf:li>
                  <rdf:li>image/jpeg</rdf:li>
                  <rdf:li>image/jpg</rdf:li>
                  <rdf:li>image/vnd.wap.wbmp</rdf:li>
                  <rdf:li>multipart/mixed</rdf:li>
               </rdf:Bag>
            </prf:CcppAccept>
            <prf:CcppAccept-Charset>
               <rdf:Bag>
                  <rdf:li>ISO-8859-1</rdf:li>
                  <rdf:li>UTF-8</rdf:li>
               </rdf:Bag>
            </prf:CcppAccept-Charset>
            <prf:CcppAccept-Encoding>
               <rdf:Bag>
                  <rdf:li>base64</rdf:li>
                  <rdf:li>quoted-printable</rdf:li>
               </rdf:Bag>
            </prf:CcppAccept-Encoding>
         </rdf:Description>
      </prf:component>
      <prf:component>
         <rdf:Description rdf:ID="NetworkCharacteristics">
            <rdf:type rdf:resource="http://www.openmobilealliance.org/tech/profiles/UAPROF/ccppschema-20021212#NetworkCharacteristics"/>
            <prf:SupportedBluetoothVersion>1.2</prf:SupportedBluetoothVersion>
            <prf:CurrentBearerService>TwoWayPacket</prf:CurrentBearerService>
            <prf:SecuritySupport>
               <rdf:Bag>
                  <rdf:li>SSL</rdf:li>
                  <rdf:li>TLS</rdf:li>
               </rdf:Bag>
            </prf:SecuritySupport>
            <prf:SupportedBearers>
               <rdf:Bag>
                  <rdf:li>GPRS</rdf:li>
               </rdf:Bag>
            </prf:SupportedBearers>
         </rdf:Description>
      </prf:component>
      <prf:component>
         <rdf:Description rdf:ID="BrowserUA">
            <rdf:type rdf:resource="http://www.openmobilealliance.org/tech/profiles/UAPROF/ccppschema-20021212#BrowserUA"/>
            <prf:BrowserName>WikiBrowser</prf:BrowserName>
            <prf:BrowserVersion>1.0</prf:BrowserVersion>
            <prf:FramesCapable>Yes</prf:FramesCapable>
            <prf:HtmlVersion>4.1</prf:HtmlVersion>
            <prf:TablesCapable>Yes</prf:TablesCapable>
            <prf:XhtmlVersion>2.0</prf:XhtmlVersion>
            <prf:XhtmlModules>
               <rdf:Bag>
                  <rdf:li>XHTML1-struct</rdf:li>
                  <rdf:li>xhtml-basic10</rdf:li>
               </rdf:Bag>
            </prf:XhtmlModules>
         </rdf:Description>
      </prf:component>
      <prf:component>
         <rdf:Description rdf:ID="WapCharacteristics">
            <rdf:type rdf:resource="http://www.openmobilealliance.org/tech/profiles/UAPROF/ccppschema-20021212#WapCharacteristics"/>
            <prf:WapDeviceClass>C</prf:WapDeviceClass>
            <prf:WapVersion>2.0</prf:WapVersion>
            <prf:WmlDeckSize>65535</prf:WmlDeckSize>
            <prf:WmlScriptLibraries>
               <rdf:Bag>
                  <rdf:li>Lang</rdf:li>
                  <rdf:li>Float</rdf:li>
                  <rdf:li>String</rdf:li>
                  <rdf:li>URL</rdf:li>
                  <rdf:li>WMLBrowser</rdf:li>
                  <rdf:li>Dialogs</rdf:li>
               </rdf:Bag>
            </prf:WmlScriptLibraries>
            <prf:WmlScriptVersion>
               <rdf:Bag>
                  <rdf:li>1.2</rdf:li>
               </rdf:Bag>
            </prf:WmlScriptVersion>
            <prf:WmlVersion>
               <rdf:Bag>
                  <rdf:li>1.3</rdf:li>
               </rdf:Bag>
            </prf:WmlVersion>
            <prf:WtaiLibraries>
               <rdf:Bag>
                  <rdf:li>WTA.Public.makeCall</rdf:li>
                  <rdf:li>WTA.Public.sendDTMF</rdf:li>
                  <rdf:li>WTA.Public.addPBEntry</rdf:li>
               </rdf:Bag>
            </prf:WtaiLibraries>
            <prf:WtaVersion>1.1</prf:WtaVersion>
            <prf:DrmClass>
               <rdf:Bag>
                  <rdf:li>ForwardLock</rdf:li>
               </rdf:Bag>
            </prf:DrmClass>
            <prf:OmaDownload>Yes</prf:OmaDownload>
         </rdf:Description>
      </prf:component>
      <prf:component>
         <rdf:Description rdf:ID="PushCharacteristics">
            <rdf:type rdf:resource="http://www.openmobilealliance.org/tech/profiles/UAPROF/ccppschema-20021212#PushCharacteristics"/>
            <prf:Push-Accept>
               <rdf:Bag>
                  <rdf:li>application/vnd.wap.wmlc</rdf:li>
                  <rdf:li>application/vnd.wap.xhtml+xml</rdf:li>
                  <rdf:li>multipart/mixed</rdf:li>
                  <rdf:li>text/html</rdf:li>
                  <rdf:li>text/plain</rdf:li>
                  <rdf:li>text/vnd.wap.si</rdf:li>
                  <rdf:li>text/vnd.wap.sl</rdf:li>
                  <rdf:li>text/vnd.wap.wml</rdf:li>
               </rdf:Bag>
            </prf:Push-Accept>
            <prf:Push-Accept-Charset>
               <rdf:Bag>
                  <rdf:li>ISO-8859-1</rdf:li>
                  <rdf:li>UTF-8</rdf:li>
               </rdf:Bag>
            </prf:Push-Accept-Charset>
            <prf:Push-Accept-Encoding>
               <rdf:Bag>
                  <rdf:li>base64</rdf:li>
                  <rdf:li>quoted-printable</rdf:li>
               </rdf:Bag>
            </prf:Push-Accept-Encoding>
            <prf:Push-Accept-Language>
               <rdf:Seq>
                  <rdf:li>de-DE</rdf:li>
               </rdf:Seq>
            </prf:Push-Accept-Language>
            <prf:Push-Accept-AppID>
               <rdf:Bag>
                  <rdf:li>x-wap-application:wml.ua</rdf:li>
                  <rdf:li>*</rdf:li>
               </rdf:Bag>
            </prf:Push-Accept-AppID>
            <prf:Push-MsgSize>30000</prf:Push-MsgSize>
            <prf:Push-MaxPushReq>5</prf:Push-MaxPushReq>
         </rdf:Description>
      </prf:component>
      <prf:component>
         <rdf:Description rdf:ID="MmsCharacteristics">
            <rdf:type rdf:resource="http://www.openmobilealliance.org/tech/profiles/MMS/ccppschema-20050301-MMS1.2#MmsCharacteristics"/>
            <mms:MmsMaxMessageSize>102400</mms:MmsMaxMessageSize>
            <mms:MmsMaxImageResolution>640x480</mms:MmsMaxImageResolution>
            <mms:MmsCcppAccept>
               <rdf:Bag>
                  <rdf:li>application/java-archive</rdf:li>
                  <rdf:li>application/sdp</rdf:li>
                  <rdf:li>application/smil</rdf:li>
                  <rdf:li>audio/mid</rdf:li>
                  <rdf:li>audio/midi</rdf:li>
                  <rdf:li>image/gif</rdf:li>
                  <rdf:li>image/jpeg</rdf:li>
                  <rdf:li>image/jpg</rdf:li>
                  <rdf:li>image/vnd.wap.wbmp</rdf:li>
                  <rdf:li>text/plain</rdf:li>
                  <rdf:li>text/vnd.sun.j2me.app-descriptor</rdf:li>
                  <rdf:li>text/vnd.wap.wml</rdf:li>
               </rdf:Bag>
            </mms:MmsCcppAccept>
            <mms:MmsCcppAcceptCharSet>
               <rdf:Bag>
                  <rdf:li>ISO-8859-1</rdf:li>
                  <rdf:li>UTF-8</rdf:li>
               </rdf:Bag>
            </mms:MmsCcppAcceptCharSet>
            <mms:MmsCcppAcceptLanguage>
               <rdf:Bag>
                  <rdf:li>de-DE</rdf:li>
               </rdf:Bag>
            </mms:MmsCcppAcceptLanguage>
            <mms:MmsCcppAcceptEncoding>
               <rdf:Bag>
                  <rdf:li>base64</rdf:li>
                  <rdf:li>quoted-printable</rdf:li>
               </rdf:Bag>
            </mms:MmsCcppAcceptEncoding>
            <mms:MmsVersion>
               <rdf:Bag>
                  <rdf:li>1.0</rdf:li>
               </rdf:Bag>
            </mms:MmsVersion>
         </rdf:Description>
      </prf:component>
   </rdf:Description>
</rdf:RDF>

The section "HardwarePlatform" describes u. a. the display resolution, supported Bluetooth profiles, supported character encodings and much more. In the "SoftwarePlatform" area, a. all MIME types supported by the device are listed. There is a separate section for the individual clients such as browser, MMS client, streaming client or services such as WAP push or DRM.

Web links