1

I'm getting 415 status from N95 client for sending server devinf. I tried many things but no success.

Here is server response (generated by me, I'm writing my own implementation of syncml server.):

<?xml version="1.0"?>
<!DOCTYPE SyncML PUBLIC "-//SYNCML//DTD SyncML 1.2//EN" "http://www.openmobilealliance.org/tech/DTD/OMA-TS-SyncML_RepPro_DTD-V1_2.dtd">
<SyncML>
  <SyncHdr>
    <VerDTD>1.2</VerDTD>
    <VerProto>SyncML/1.2</VerProto>
    <SessionID>14</SessionID>
    <MsgID>1</MsgID>
    <Target>
      <LocURI>IMEI:356406027185460</LocURI>
    </Target>
    <Source>
      <LocURI>http://localhost:8880</LocURI>
    </Source>
    <Meta>
      <MaxMsgSize xmlns="syncml:metinf">10000</MaxMsgSize>
    </Meta>
  </SyncHdr>
  <SyncBody>
    <Status>
      <MsgRef>1</MsgRef>
      <Data>200</Data>
      <Cmd>Alert</Cmd>
      <CmdRef>1</CmdRef>
      <CmdID>1</CmdID>
    </Status>
    <Status>
      <MsgRef>1</MsgRef>
      <Data>200</Data>
      <Cmd>Put</Cmd>
      <CmdRef>2</CmdRef>
      <CmdID>2</CmdID>
    </Status>
    <Status>
      <MsgRef>1</MsgRef>
      <Data>200</Data>
      <Cmd>Get</Cmd>
      <CmdRef>3</CmdRef>
      <CmdID>3</CmdID>
      <TargetRef>./devinf12</TargetRef>
    </Status>
    <Results>
      <MsgRef>1</MsgRef>
      <Item>
        <Meta>
          <Type xmlns="syncml:metinf">application/vnd.syncml-devinf+xml</Type>
        </Meta>
        <Source>
          <LocURI>./devinf12</LocURI>
        </Source>
        <Data>
          <DevInf xmlns="syncml:devinf">
            <VerDTD>1.2</VerDTD>
            <Man>my company ltd.</Man>
            <Mod>syncml mod</Mod>
            <SwV>0.01</SwV>
            <FwV>1.01</FwV>
            <HwV>0.1a</HwV>
            <DevID>syncmlserv</DevID>
            <DevTyp>server</DevTyp>
            <DataStore>
              <SourceRef>./contacts</SourceRef>
              <Rx-Pref>
                <CTType>text/vcard</CTType>
                <VerCT>3.0</VerCT>
              </Rx-Pref>
              <Rx>
                <CTType>text/vcard</CTType>
                <VerCT>2.1</VerCT>
              </Rx>
              <Tx-Pref>
                <CTType>text/vcard</CTType>
                <VerCT>3.0</VerCT>
              </Tx-Pref>
              <Tx>
                <CTType>text/vcard</CTType>
                <VerCT>2.1</VerCT>
              </Tx>
              <CTCap>
                <CTType>text/x-vcard</CTType>
                <PropName>BEGIN</PropName>
                <ValEnum>VCARD</ValEnum>
                <PropName>END</PropName>
                <ValEnum>VCARD</ValEnum>
                <PropName>VERSION</PropName>
                <ValEnum>2.1</ValEnum>
                <PropName>N</PropName>
                <PropName>TEL</PropName>
                <ParamName>VOICE</ParamName>
                <ParamName>FAX</ParamName>
                <ParamName>CELL</ParamName>
              </CTCap>
              <CTCap>
                <CTType>text/x-vcard</CTType>
                <PropName>BEGIN</PropName>
                <ValEnum>VCARD</ValEnum>
                <PropName>END</PropName>
                <ValEnum>VCARD</ValEnum>
                <PropName>VERSION</PropName>
                <ValEnum>3.0</ValEnum>
                <PropName>N</PropName>
                <PropName>TEL</PropName>
                <ParamName>VOICE</ParamName>
                <ParamName>FAX</ParamName>
                <ParamName>CELL</ParamName>
              </CTCap>
              <SyncCap>
                <SyncType>1</SyncType>
                <SyncType>2</SyncType>
                <SyncType>3</SyncType>
                <SyncType>4</SyncType>
                <SyncType>5</SyncType>
                <SyncType>6</SyncType>
              </SyncCap>
            </DataStore>
          </DevInf>
        </Data>
      </Item>
      <CmdRef>3</CmdRef>
      <CmdID>4</CmdID>
      <Meta>
        <Type xmlns="syncml:metinf">application/vnd.syncml-devinf+xml</Type>
      </Meta>
      <TargetRef>./devinf12</TargetRef>
    </Results>
  </SyncBody>
</SyncML>

And Here is what client sends:

<?xml version="1.0"?>
<!DOCTYPE SyncML PUBLIC "-//SYNCML//DTD SyncML 1.2//EN" "http://www.openmobilealliance.org/tech/DTD/OMA-TS-SyncML_RepPro_DTD-V1_2.dtd">
<SyncML xmlns="SYNCML:SYNCML1.2">
  <SyncHdr>
    <VerDTD>1.2</VerDTD>
    <VerProto>SyncML/1.2</VerProto>
    <SessionID>14</SessionID>
    <MsgID>2</MsgID>
    <Target>
      <LocURI>http://localhost:8880</LocURI>
    </Target>
    <Source>
      <LocURI>IMEI:356406027185460</LocURI>
    </Source>
    <Meta>
      <MaxMsgSize xmlns="syncml:metinf">10000</MaxMsgSize>
    </Meta>
  </SyncHdr>
  <SyncBody>
    <Status>
      <CmdID>1</CmdID>
      <MsgRef>1</MsgRef>
      <CmdRef>0</CmdRef>
      <Cmd>SyncHdr</Cmd>
      <TargetRef>IMEI:356406027185460</TargetRef>
      <SourceRef>http://localhost:8880</SourceRef>
      <Data>200</Data>
    </Status>
    <Status>
      <CmdID>2</CmdID>
      <MsgRef>1</MsgRef>
      <CmdRef>4</CmdRef>
      <Cmd>Results</Cmd>
      <Data>415</Data>
    </Status>
  </SyncBody>
</SyncML>

Just one note putting meta in/out of Item does not change a thing. I'm basically lost at that stage..

Engrost
  • 799
  • 6
  • 13

1 Answers1

1

the response code is a SyncML response.. probabaly you have a Unsupported media type or format. The unsupported content type or format SHOULD also be identified in the Item element type in the Status.

check on that...

brij
  • 11
  • 1
  • Thank you for that, but actually we went with synthesis syncml server and just wrote java plugin that communicates with our system on our terms. That worked much better than implementing protocol itself. – Engrost Jan 13 '12 at 12:01