SyncML Server Setup tutorial
SyncML Server Setting up SyncML server

## Preliminaries

SyncML is a protocol for syncronizing data between two devices called server and client. Usually as client we may consider PDA, mobile phone or a workstation that have the ability to syncoronize their contacts, calendar etc. databases using SyncML protocol. On the other hand the server have ability to recoginize such requests and to store the data into the repository. Basically this is a protocol for data replication, oriented to the portable devices.

The usual message flow is:

- Initial request from client
- Server response asking for credentials, if not supplied
- Client sends credentials included in the request
- Server accepts or rejects the sync request.
- When request for sync is accepted, then server checks what sync to perform: slow two-way (full data) or two-way sync.
- Client send the items that are changed or all items depending of sync type
- Server sends items that are changed or all items depending of sync type requested.

The Virtuoso WebDAV repository can be used to keep such data. The server will recognize SyncML request by MIME content type 'application/vnd.syncml+xml' or 'application/vnd.syncml+wbxml' upon POST request and will act then as SyncML server over HTTP.

Shortly: on server side are needed:

- 1.WebDAV collection with permisions for given accounts
- 2.Virtual directory assigned to it.

Optionally virtual host can be defined in order to work with clients that do not have the ability to specify URL, such clients can work only with virtual root collection. Note that WebDAV collection(s) creation is a vital step; apropriate rights MUST be set before using it with SyncML client; clients can only store items(resources), they can't make sub-folders.

## Instructions for setting SyncML server and client

1. Create a new folder named '/DAV/sync/' under WebDAV root. This can be done via Conductor UI going to the "Web Application Server" tab and then going to the "Content Management" tab.
2. Create subfolders calendar and contacts under /DAV/sync/
3. Create a new virtual host with virtual root assigned to /DAV/sync/ WebDAV collection. Please reffer to the documentation for more information.

Nokia 92x0 Communicator

1. In Extras menu open "Remote sync"
2. In "Profile settings" choose "New Profile"
3. Select apropriate internet access
4. Enter the Virtuso HTTP server address and port values as you created them earlier.
5. Enter username and password for account which have permissions to the '/DAV/sync/' and descendants.
6. Select tab "Data"
7. Choose Calendar and enter for "Remote calendar" './calendar/'.
8. Choose Contacts and enter for "Remote contacts" './contacts/'.
9. Close the Sync Profile menus, confirm saving
10. Select "Sync" option.
11. Verify that items are uploaded into WebDAV collections: /DAV/sync/calendar/ and /DAV/sync/contacts/. For this you can use Conductor's WebDAV content management UI
12. Edit some of Contacts/Events on device and perform Sync again. Check the repository as in previous step.
13. Note: Editing the items on the server needs knowlage of VCARD/VCALENDAR formats as they can be edited as text files.

Siemens SX1

1. Select "menu" button
2. Choose "Organizer"
3. Choose "Sync"
4. Select from menu "Options", "New sync profile"
5. Give a meaningful name for this profile in "Sync profile name"
6. Bearer type: Internet
7. Access point: choose some predefined
8. Host address: URL to the SyncML server without HTTP port number
9. Port: SyncML HTTP port number
10. User name: username for account which have permissions to the '/DAV/sync/' and descendants.
11. Password: password for the account
12. Calendar: Yes
13. Remote calendar: ./calendar
14. Contacts: Yes
15. Remote contacts: ./contacts
16. HTTP authentication: No
17. HTTP user name: blank
18. HTTP password: blank
19. Select "Back" from menu
20. New profile should exists. Click on it to perform syncronization.

Sony Ericsson P900

1. From main menu choose "Remote Sync"
2. Via menu "Edit" - "Preferences"
3. Server address: [type URL to the SyncML server]
4. User Name:
5. Password:
6. Press button "Done"
7. Click on "Contacts"
8. Enable task: on
9. Server database: ./contacts
10. Press button "Done"
11. To perform Sync on defined items, press button "Sync"

Important: Internet connection must be alredy defined and must work with device's browser.