[sync] [Fwd: Re: SonyEricsson K750i

Karsten Fourmont fourmont at gmx.de
Sun Jul 2 03:45:21 PDT 2006


[Note: If you have SE Kxxx or Wxxx phone but are not interested in the 
development internals: just read the last paragraph ;-) ]

Hi,

as some of you may know, the newer (non P800/900) SonyEricsson phones
currently do not work with Horde SyncML. ("Invalid Response" after
second message from server.)

Andy managed to install the nexthaus.com DeskNow server and provide logs
of a working SyncML session with a K750i. (see forwarded msg.) Thanks, 
Andy. So I hope we can get this working at last.

After checking the logs provided by Andy here are the first results of
my analysis:

Differences from Horde(H) to Desknow(D) format

Differences in server replay to message 0 (first message):

1) D contains empty LocName tag in Sync Header
2) D contains RespURI in header
3) D has order <Chal>Meta>..  <Type><Format> while Horde has
<Chal>Meta>..  <Format><Type> Horde's way is referenced in the DTD comments
4) D sends a 407 as alert response status while H sends a 401. We've
tried that before, doesn't seem to make a difference
5) D doesn't issue a "GET" to retrieve DevInf information. H does

All in all: this seems to be fine. The phone actually does accept the
GET request issued by Horde and sends perfectly fine DevInf data in its
second message. So we at least do know that the phone "understands" the
data sent by horde.

Differences in server replay to message 1 (second message). Here's where 
the problem occurs: the phone does respond to Horde's data with a 
"Invalid Response":

1) H contains a LocName in header, D not.
2) D contains RespURI in header, H not.
3) H: <Alert><Item><Meta> misses MaxObjSize
4) The CmdID numbers are different, because Horde as two additional 
CmdIDs  for the GET request. Also the Status in D is "200" for 
TwoWaySync while  "201" for SlowSync in H.
5) There's an additional Status in H in response to the DevInf data sent 
from the phone.

1)-3) shouldn't be a problem: LocName, RespURI amd MaxObjSize are all 
optional.
4) is OK due to GET request done by Horde.

So this leaves us to 5). Doesn't seem like much but actually I did find 
out something: DevInf data can be sent in two ways

a) the phone can send it "without request" on its own using "PUT"
b) the phone can send it in response to a "GET" from the server. This is 
in a "RESULTS" element.

Internally we use the put.php to parse DevInf. A "RESULTS" element is 
redirected to put.php. Consequently the produced status looks like this:

<Status><CmdID>2</CmdID><MsgRef>2</MsgRef><CmdRef>5</CmdRef> 
<Cmd>Put</Cmd><SourceRef>./devinf11</SourceRef><Data>200</Data></Status>

Notice something? It says <Cmd>Put</Cmd> where it should say "Results". 
Tiny but maybe that's the cause.

Anyhow: I fixed this in Results.php.

If you have a SonyEricsson phone Wxxx or Kxxx (everything non Pxxx): do 
a cvs update (or at least install the current Results.php). Then give it 
a try. I'm dying to know if this has been the cause of the month long SE 
protocol struggle....

Cheers,
  Karsten


-------- Original Message --------
Subject: Re: [sync] SonyEricsson K750i & typo in SyncML/Device.php ?
Date: Tue, 27 Jun 2006 17:11:07 +0100
From: Andy Wright <horde at eltofts.homelinux.com>
To: Karsten Fourmont <fourmont at gmx.de>
References: <4460DD60.3040601 at eltofts.homelinux.com>
<44617821.9090108 at gmx.de> <4461AC45.7080709 at eltofts.homelinux.com>
<4461AE25.2020106 at gmx.de>

Karsten Fourmont wrote:
>
> Andy Wright wrote:
>> Yes, still getting the "Invalid Response" every time. I did at one 
>> point see the test note from the phone appear in the log.txt file in 
>> tmp/sync but that was just a one-off and I haven't been able to get 
>> it that far again.
>>
>> Is there anything I can do to help (eg log files etc) with the K750i 
>> or is it just so different to the other phones as to be a lost cause?
>
> No, it's not a lost cause. When I look at the exchanged messages 
> everything looks just fine. But the phone doesn't like it. Must be 
> some tiny detail I'm missing.
>
> So what I basically need is a transcript of a _working_ SyncML session 
> with your phone and some other SyncML server. So I can see the 
> difference between a "makes phone happy" and "makes phone unhappy" 
> response.
>
> A way to get this is to try one of the other available SyncML Servers: 
> have a look at synthesis.ch, sync4j.org, maybe nexthaus.com and 
> download a demo version of their _server_. Then get it running with a 
> K750i and mail me a transcript of a sync session.
>
> That would help very much.
>
> Good Luck!
>
>  Karsten
>
>
>
>
Hi Karsten,

I finally got round to testing my K750i with another server - I
installed "Desknow" from nexthaus.com

This syncs fine with the phone, but unfortunately the log files it
produces don't look too helpful. I did a packet trace on the server and
have included this. It is attached as a raw capture file from Ethereal,
and also exported as text files. I've also attached the Desknow logs.
All these files are in Desknow.zip

The sync logs from Horde are also attached, as horde.zip - these give an
Invalid Server response from the phone.

Regards,
Andy.




More information about the sync mailing list