On Sep 27, 2009, at 22:39 , Patrick Ohly wrote:
Another question: how do I set the device ID of the server?
<fakedeviceid> is a client-only tag, isn't it?
The device ID of the server is typically the sync URL (which can be
guessed, as described in another mail) [...]
Which ID are we talking about?
- the devID string in the devInf? This is currenty hardwired to
"SySync Server" (as it usually is for other servers I've seen,
including Funambol, Oracle, ZYB etc.)
- the string shown in the reponse SyncHdr's Source LocURI? This should
be a exact echo of what the client sent in the request SyncHdr's
Target LocURI. In many cases a server cannot really know it's own
address as seen from the outside (imagine load balancers, proxies and
similar smart equipment in between). For special cases where this does
not apply, there is <externalurl> in <server>. When this is set, the
server will use that string to create a RespURI instead of the request
SyncHdr's Target LocURI.
[...] but in some cases (OBEX) also some other kind of string which
cannot be guessed.
What kind of string would it be for OBEX? And does it have any
significance then? I mean, in HTTP it is an address for the client to
reach the server, but in OBEX the (SyncML)server creates the
connection to the client using discovery/addressing procedures outside
SyncML - once SyncML sync begins, there is a channel already
established to exchange data without any "addressing" needed. So IMHO
the server's LocURI is pretty irrelevant in OBEX sync (as the client's
LocURI is irrelevant in HTTP sync).
Lukas Zeller (luz(a)synthesis.ch)
Synthesis AG, SyncML Solutions & Sustainable Software Concepts