×

Discussion Board

Page 3 of 13 FirstFirst 123456789101112 ... LastLast
Results 31 to 45 of 186
  1. #31
    Registered User
    Join Date
    Sep 2003
    Posts
    10
    In the server package #0 (server alert) I send no anchors within the <Alert>. This is the way PC sync programs that come with the phone do.

    Phone client responds with package #1 with an <Alert> with the clients anchors.

    Server sends package #2 with another <Alert> with the servers anchors.

    Since the server has stored a copy of the clients last anchor, it can between package #1 and #2 compare and see if the server does not match with the client. When it does not match, it is in my case because my server has been reset, the storage has been cleaned including storage of the clients last anchor. Or the server just wants a refresh of the clients storage.

    I think I have to settle with just changing my <Source> within <SyncHdr> for now. It does the job (but not nice looking :-) )
    I will of course let you all know if I manage with my refresh with Nokia phones. SonyEricsson works fine, they only crashed when I by mistake sent some packet sized 20k or something filled with random data...

    Another question to everybody, can pictures that are attached with vCards in a phone be retreieved by using SyncML?
    Last edited by telecaulf; 2005-02-24 at 15:50.

  2. #32
    Nokia Developer Champion
    Join Date
    Mar 2003
    Posts
    4,104
    You should send anchos in your alert.
    Damn forget what the Windows Nokia PC Suite does - that is garbage. Only look at that if you really, really stuck. The software does it really, really terrible. The Sony Ericsson Windows software is even worse. Sometimes it is real fun to see how often they love to reimplement things. Well they seem to have too many programmers who need dummy work instead of using them for testing.

    Perhaps this no achor in your alert is the reason for all problems. This could avoid using a status of 508! Have you tested that? This was way #1 I described at the beginning.

    Not sure about the pictures. If you do not get one, try to PUT your DevInf of your server with vCard image capabilities. Perhaps this does the trick. Normally these should come automatically.

  3. #33
    Registered User
    Join Date
    Apr 2005
    Posts
    11

    Local server initiated synchronization

    Hi everyone,

    Following this discussion, I got the Local Server Alerted Sync over Bluetooth/OBEX to work with a Nokia 6230 and a Nokia 6630 phone.
    But now I'm not quite sure if the package #0 I'm sending is really standard conform.
    My package #0 looks like traud described it should look like:

    ..Then you have to make an OBEX Connect as described within the OBEX binding. Now you have to talk WBXML and send a Server Alerted Sync like this:

    Code:
    <?xml version='1.0' encoding='UTF-8' standalone='yes'?>
    <!DOCTYPE SyncML PUBLIC
    			'-//OMA//DTD SYNCML 1.1//EN'
    			'http://www.openmobilealliance.org/DTD/OMA-SyncML-RepPro-DTD-V1_1_2-20030505-D.dtd'
    >
    <!--
    	see SyncML Sync Protocol, version 1.1.2; chapter 13.1 Sync Alert
    -->
    <SyncML xmlns='SYNCML:SYNCML1.1'>
    	<SyncHdr>
    		<VerDTD>1.1</VerDTD>
    		<VerProto>SyncML/1.1</VerProto>
    		<SessionID>1</SessionID>
    		<MsgID>1</MsgID>
    		<Target>
    			<LocURI>/</LocURI>
    		</Target>
    		<Source>
    			<LocURI>GSM Remote ML</LocURI>
    		</Source>
    	</SyncHdr>
    	<SyncBody>
    		<Alert>
    			<CmdID>1</CmdID>
    			<Data>206</Data>
    			<Item>
    				<Source>
    					<LocURI>Contacts</LocURI>
    				</Source>
    				<Meta>
    					<Type xmlns='syncml:metinf'>text/x-vcard</Type>
    				</Meta>
    			</Item>
    		</Alert>
    		<Alert>
    			<CmdID>2</CmdID>
    			<Data>206</Data>
    			<Item>
    				<Source>
    					<LocURI>Events</LocURI>
    				</Source>
    				<Meta>
    					<Type xmlns='syncml:metinf'>text/x-vcalendar</Type>
    				</Meta>
    			</Item>
    		</Alert>
    		<Alert>
    			<CmdID>3</CmdID>
    			<Data>206</Data>
    			<Item>
    				<Source>
    					<LocURI>Notes</LocURI>
    				</Source>
    				<Meta>
    					<Type xmlns='syncml:metinf'>text/plain</Type>
    				</Meta>
    			</Item>
    		</Alert>
    		<Final/>
    	</SyncBody>
    </SyncML>
    But the "SyncML Data Sync Protocol" says in section 12. that "Sever Alerted Sync" is done by sending a "Server Alerted Notification" package (Package #0) to the client.

    In the "SyncML OBEX Binding" I found that:
    In the case of Server Alerted Notification, the Type header of the OBEX packet transferring the notification package MUST include the MIME media type, "application/vnd.syncml.notification" for Device Management usage for the Server Alerted Notification package as defined in [SAN] and "application/vnd.syncml.ds.notification" for Data Synchronization usage.
    Since a Sony Ericsson K700i didn't accept the package #0 that worked with the Nokia 6230 and 6630 as discribed above, I'm wondering now, if it might be more standard conform to send a "Server Alerted Notification" in package #0 instead.

    Has anyone got this working in package #0?
    Do Nokia SyncML phones (6230 / 6630 ) understand "Server Alerted Notifications"?
    Has anyone got a SyncML response from a SE K700i?

    Regards,
    Marco

  4. #34
    Nokia Developer Champion
    Join Date
    Mar 2003
    Posts
    4,104
    Please read a clarification about SAN. Then many things should be clear.

    My XML and WBXML works with the K700 – tested myself! Make sure to use a WBXML 1.2 and not 1.3 header as said earlier.

  5. #35
    Registered User
    Join Date
    Apr 2005
    Posts
    11
    Thanks for your clarification on SAN traud, your help is appreciated very much!

    The synchronisation with the SE K700i is working now, too.
    I must have missed that Sony Ericsson wbxml 1.3 problem.

    Now, since I would like to test some more different devices,
    I've got some more questions for everyone who is working on this topic:
    • Which devices have you been able to successfully sync via Bluetooth/OBEX so far?
    • Which other devices are said to have a SyncML client that might support Bluetooth/OBEX?
    • What compatibility issues or bugs in the SyncML support have you noticed so far?

    Regards,
    Marco

  6. #36
    Nokia Developer Champion
    Join Date
    Mar 2003
    Posts
    4,104
    You could do IrDA IrMC (Level 2, 3 or 4) or 3GPP/ETSI TS 27.007 for syncing, too. OMA members should be able to get a full list of (approved) SyncML DS over OBEX devices. And yes there are zillions of bugs.

  7. #37
    Registered User
    Join Date
    Apr 2005
    Posts
    11
    Oh, at the moment I'm only interested in SyncML using Bluetooth/OBEX.

    I'm not an OMA member and I think many other developers here aren't as well.
    So maybe we developers here can contribute to a list of devices that work this way.

    I had success with the following devices:

    Nokia 6230
    Nokia 6630
    SonyEricsson K700i

  8. #38
    Nokia Developer Champion
    Join Date
    Mar 2003
    Posts
    4,104

  9. #39
    Registered User
    Join Date
    Apr 2005
    Posts
    11
    Thank you very much traud, that was the kind of list that I was looking for. I should have known your webpage earlier.

    Now I've got another problem:

    I'm trying to add a new contact to the phonebook of a Nokia 6630. While syncing the phone correctly shows the number of received contacts (1). But I get Add-Status 500 in pkg #5 and the contact is not added to the phonebook. The same server engine works perfectly with the 6230 and the K700i, so I think the 6630 might be stricter.

    Here is the full sync-log starting with pkg #0.
    (Client responses are not formated, so you have to save the log as XML-File and open with XML-Browser to see it properly)
    Maybe someone knows what is wrong with my packages.
    Code:
    <SyncMLServerLogfile>
    
    <SyncML>
    <SyncHdr>
    <VerDTD>1.1</VerDTD>
    <VerProto>SyncML/1.1</VerProto>
    <SessionID>1</SessionID>
    <MsgID>1</MsgID>
    <Target><LocURI>/</LocURI></Target>
    
    <Source><LocURI>SyncML Server</LocURI></Source>
    </SyncHdr>
    <SyncBody>
    <Alert>
    <CmdID>1</CmdID>
    <Data>206</Data>
    <Item><Source><LocURI>./Contacts</LocURI></Source>
    <Meta><Type>text/x-vcard</Type></Meta></Item>
    </Alert>
    <Final/>
    </SyncBody>
    </SyncML>
    
    <!-- ====================================================== -->
    
    <SyncML><SyncHdr><VerDTD>1.1</VerDTD><VerProto>SyncML/1.1</VerProto><SessionID>106</SessionID><MsgID>1</MsgID><Target><LocURI>SyncML 
    
    Server</LocURI></Target><Source><LocURI>IMEI:xxxxxxxxxxxxxxxxxx</LocURI></Source><Meta><MaxMsgSize>10000</MaxMsgSize></Meta></SyncHdr><SyncBody><Status><CmdI
    
    D>1</CmdID><MsgRef>1</MsgRef><CmdRef>0</CmdRef><Cmd>SyncHdr</Cmd><TargetRef>/</TargetRef><SourceRef>SyncML 
    
    Server</SourceRef><Data>200</Data></Status><Status><CmdID>2</CmdID><MsgRef>1</MsgRef><CmdRef>1</CmdRef><Cmd>Alert</Cmd><SourceRef>./Contacts</SourceRef><Data
    
    >200</Data></Status><Alert><CmdID>3</CmdID><Data>200</Data><Item><Target><LocURI>./Contacts</LocURI></Target><Source><LocURI>./C\System\Data\Contacts.cdb</Lo
    
    cURI></Source><Meta><Anchor><Last>20050610T130547Z</Last><Next>20050610T131051Z</Next></Anchor></Meta></Item></Alert><Final></Final></SyncBody></SyncML>
    
    <!-- ====================================================== -->
    
    <SyncML>
    <SyncHdr>
    <VerDTD>1.1</VerDTD>
    <VerProto>SyncML/1.1</VerProto>
    <SessionID>106</SessionID>
    <MsgID>2</MsgID>
    <Target><LocURI>IMEI:xxxxxxxxxxxxxxxxxx</LocURI></Target>
    <Source><LocURI>SyncML Server</LocURI></Source>
    
    </SyncHdr>
    <SyncBody>
    <Status>
    <CmdID>1</CmdID>
    <MsgRef>1</MsgRef>
    <CmdRef>0</CmdRef>
    <Cmd>SyncHdr</Cmd>
    <Data>200</Data>
    </Status>
    <Status>
    <CmdID>2</CmdID>
    
    <MsgRef>1</MsgRef>
    <CmdRef>3</CmdRef>
    <Cmd>Alert</Cmd>
    <SourceRef></SourceRef>
    <Data>200</Data>
    <Item><Data><Anchor xmlns='syncml:metinf'><Next>20050610T131051Z</Next></Anchor></Data></Item>
    </Status>
    <Alert>
    <CmdID>3</CmdID>
    <Data>206</Data>
    
    <Item><Target><LocURI>./C\System\Data\Contacts.cdb</LocURI></Target>
    <Source><LocURI>./Contacts</LocURI></Source>
    <Meta><Anchor><Last>20050610T130547Z</Last><Next>20050610T132020Z</Next></Anchor></Meta></Item>
    </Alert>
    <Final/>
    </SyncBody>
    </SyncML>
    
    <!-- ====================================================== -->
    
    <SyncML><SyncHdr><VerDTD>1.1</VerDTD><VerProto>SyncML/1.1</VerProto><SessionID>106</SessionID><MsgID>2</MsgID><Target><LocURI>SyncML 
    
    Server</LocURI></Target><Source><LocURI>IMEI:xxxxxxxxxxxxxxxxxx</LocURI></Source><Meta><MaxMsgSize>10000</MaxMsgSize></Meta></SyncHdr><SyncBody><Status><CmdI
    
    D>1</CmdID><MsgRef>2</MsgRef><CmdRef>0</CmdRef><Cmd>SyncHdr</Cmd><TargetRef>IMEI:xxxxxxxxxxxxxxxxxx</TargetRef><SourceRef>SyncML 
    
    Server</SourceRef><Data>200</Data></Status><Status><CmdID>2</CmdID><MsgRef>2</MsgRef><CmdRef>3</CmdRef><Cmd>Alert</Cmd><TargetRef>./C\System\Data\Contacts.cd
    
    b</TargetRef><SourceRef>./Contacts</SourceRef><Data>200</Data><Item><Data><Anchor><Next>20050610T132020Z</Next></Anchor></Data></Item></Status><Sync><CmdID>3
    
    </CmdID><Target><LocURI>./Contacts</LocURI></Target><Source><LocURI>./C\System\Data\Contacts.cdb</LocURI></Source><Meta><MaxObjSize>786432</MaxObjSize></Meta
    
    ><NumberOfChanges>0</NumberOfChanges></Sync><Final></Final></SyncBody></SyncML>
    
    <!-- ====================================================== -->
    
    <SyncML>
    <SyncHdr>
    <VerDTD>1.1</VerDTD>
    <VerProto>SyncML/1.1</VerProto>
    <SessionID>106</SessionID>
    <MsgID>3</MsgID>
    <Target><LocURI>IMEI:xxxxxxxxxxxxxxxxxx</LocURI></Target>
    <Source><LocURI>SyncML Server</LocURI></Source>
    
    </SyncHdr>
    <SyncBody>
    <Status>
    <CmdID>1</CmdID>
    <MsgRef>2</MsgRef>
    <CmdRef>0</CmdRef>
    <Cmd>SyncHdr</Cmd>
    <Data>200</Data>
    </Status>
    <Status>
    <CmdID>2</CmdID>
    
    <MsgRef>2</MsgRef>
    <CmdRef>3</CmdRef>
    <Cmd>Sync</Cmd>
    <SourceRef>./C\System\Data\Contacts.cdb</SourceRef>
    <TargetRef>./Contacts</TargetRef>
    <Data>200</Data>
    </Status>
    <Sync>
    <CmdID>3</CmdID>
    <Source><LocURI>./Contacts</LocURI></Source>
    
    <Target><LocURI>./C\System\Data\Contacts.cdb</LocURI></Target>
    <Add><CmdID>4</CmdID><Meta><Type>text/x-vcard</Type></Meta><Item><Source><LocURI>./1000</LocURI></Source><Data>BEGIN:VCARD
    VERSION:2.1
    REV:20050607T064406Z
    N:Kirk;James T.;;;
    ORG:Starfleet;
    TITLE:Captain
    TEL;VOICE:555 1701 65
    TEL;CELL:555 1701 66
    END:VCARD</Data></Item></Add></Sync>
    <Final/>
    </SyncBody>
    </SyncML>
    
    <!-- ====================================================== -->
    
    <SyncML><SyncHdr><VerDTD>1.1</VerDTD><VerProto>SyncML/1.1</VerProto><SessionID>106</SessionID><MsgID>3</MsgID><Target><LocURI>SyncML 
    
    Server</LocURI></Target><Source><LocURI>IMEI:xxxxxxxxxxxxxxxxxx</LocURI></Source><Meta><MaxMsgSize>10000</MaxMsgSize></Meta></SyncHdr><SyncBody><Status><CmdI
    
    D>1</CmdID><MsgRef>3</MsgRef><CmdRef>0</CmdRef><Cmd>SyncHdr</Cmd><TargetRef>IMEI:xxxxxxxxxxxxxxxxxx</TargetRef><SourceRef>SyncML 
    
    Server</SourceRef><Data>200</Data></Status><Status><CmdID>2</CmdID><MsgRef>3</MsgRef><CmdRef>3</CmdRef><Cmd>Sync</Cmd><TargetRef>./C\System\Data\Contacts.cdb
    
    </TargetRef><SourceRef>./Contacts</SourceRef><Data>200</Data></Status><Status><CmdID>3</CmdID><MsgRef>3</MsgRef><CmdRef>4</CmdRef><Cmd>Add</Cmd><SourceRef>./
    
    1000</SourceRef><Data>500</Data></Status><Final></Final></SyncBody></SyncML>
    
    <!-- ====================================================== -->
    
    <SyncML>
    <SyncHdr>
    <VerDTD>1.1</VerDTD>
    <VerProto>SyncML/1.1</VerProto>
    <SessionID>106</SessionID>
    <MsgID>4</MsgID>
    <Target><LocURI>IMEI:xxxxxxxxxxxxxxxxxx</LocURI></Target>
    <Source><LocURI>SyncML Server</LocURI></Source>
    
    </SyncHdr>
    <SyncBody>
    <Status>
    <CmdID>1</CmdID>
    <MsgRef>3</MsgRef>
    <CmdRef>0</CmdRef>
    <Cmd>SyncHdr</Cmd>
    <Data>200</Data>
    </Status>
    <Final/>
    </SyncBody>
    </SyncML>
    
    <!-- ====================================================== -->
    
    </SyncMLServerLogfile>
    Regards,
    Marco

  10. #40
    Nokia Developer Champion
    Join Date
    Mar 2003
    Posts
    4,104
    Have you tried a Replace instead of Add? Add is a quite irrelevant SyncML command and I would not use it at all.

  11. #41
    Registered User
    Join Date
    Apr 2005
    Posts
    11
    I tried adding the new contact using a Replace command, although I do think that Add is NOT an irrelevant SyncML command. Nevertheless I had no success as well. Using a Replace command, the phone doesn't even display that it has received a new contact while syncing.
    BTW: Delete command works on a known LUID.

    As I understand it, the server has to send his GUID as item source first. Then the client saves the new contact in his phonebook with a self generated LUID.
    After that the client sends his new LUID and the GUID back to the server using a Map command.

    Could anyone please post a working sync-log of a normal TWO-WAY-SYNC BY SERVER in which the server adds a new contact to the phone and the phone answers with a Map command?
    The one I posted before did work with a Series 40 (6230) phone, so I'm primarily interested in Series 60 (6630).

    Regards,
    Marco

  12. #42
    Nokia Developer Champion
    Join Date
    Mar 2003
    Posts
    4,104
    Every Add can be replaced with a Replace command – although Add is mandatory in OMA SyncML DS, I would avoid it. Please tell me why it is not irrelevant.

    For your problem, please use a Java Series 60 Emulator for Windows. These include a SyncML client and give detail logs. Simply watch a session with a SyncML webserver or log the Nokia PC Suite if you need OBEX.

    I am really unsure. A WBXML problem? I have no real Series 60 here to play.

  13. #43
    Registered User
    Join Date
    Apr 2005
    Posts
    11
    Can you recommend a software to log the Nokia PC Suite?
    I'm using a standard bluetooth usb dongle. I was able to log the whole usb traffic with the help of SnoopyPro. I found the OBEX in it, but I had no success in extracting and decoding the wbxml data.

  14. #44
    Nokia Developer Champion
    Join Date
    Mar 2003
    Posts
    4,104
    If you have the OBEX data, you have the WBXML, don't you? Just make your own little WBXML debugger. I have my own and nothing of the self.

    You have a WBXML de/encoder – why not using that?

  15. #45
    Registered User
    Join Date
    Apr 2005
    Posts
    11
    Maybe I did not express my self clearly enough.
    I did not say that I have the pure OBEX data - I only found it in the USB traffic by searching for the opcodes and target-header. As I said I had some troubles in extracting the wbxml data from the OBEX data - the size headers did not really match with the data that I could find. I think this might be caused by FBUS or USB header/footer data since all the OBEX data in my logfile is broken up in parts which makes the analyzing too time consuming. I used the sync4j and the libwbxml decoder, but both did not like what I extracted so far. Maybe I will try that again later.
    I'm going to try the latest firmware first, hoping that my SyncML is correct and it is Nokia's bug ;-)

    BTW: Maybe you are right and we don't need the Add command. But I think Add should be the correct way to do. My 6630 supports the Add command, it works perfectly with text/plain Notes.

Page 3 of 13 FirstFirst 123456789101112 ... LastLast

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •