Страницы

суббота, 10 марта 2012 г.

SyncML сервер на домашнем компьютере, для Nokia 9300

Быстрая настройка syncml сервера производства SyncEvolution на домашнем компьютере.
Версия предварительная и не окончательная, скорее тестовая, чем рабочая.

Цель - копирование  контактов с телефона Nokia 9300.

Особенности: Телефон Nokia 9300 имеет встроенный клиент syncml протокола. У моего телефона нет местного подключения (irda,bluetooth,usb) к компьютеру. Синхронизация возможна, в моем случае, через сеть Интернет. Домашний компьютер имеет непосредственное подключение к сети Интернет и провайдер присваивает динамический белый IP-адрес.


1. Настройка телефона Nokia 9300 в меню "Сервис" - "Синхронизация"

Нажать кнопку "Меню" выбрать меню "Файл" - "Создать".
Задать имя режима, под которым конфигурация будет видна на телефоне в списке "Синхронизация".
Зададим "Имя режима" - "с домашним компьютером". Это будет читаться как "Синхронизация с домашним компьютером".
"Далее"
"Тип подключения" - "Интернет"
"Точка доступа" - выбрать вашу точку доступа к сети. Выдается сотовым провайдером. Желательно выбирать что-то подобное "GPRS-INTERNET", чтобы экономить средства.
"Далее"
Укажем "Адрес хоста" в виде: http://00.00.00.00/syncevolution, где 00.00.00.00 - ваш IP адрес компьютера, видимый через Интернет (белый IP-адрес). Этот адрес может менятся с каждым подключением к Интернет, соответственно его надо будет менять и в настройках телефона, каждый раз. Из-за неправильного IP-адреса, синхронизация заканчивается с ошибкой "Хост не найден".

"Порт" - 9000, это порт на котором будет отвечать наш локальный syncml сервер

"Имя пользователя", "Пароль", "Подтверждение пароля" можно пока не задавать в тестовых условиях.

"Далее"
Выбрать элементы содержимого для синхронизации
"Контакты" - "Да"

"Далее"
"Локальная база данных" - можно оставить без изменений (вида c:\system\data\contacts.cdb), либо указать другую базу данных, расположенную на телефоне, например на карте памяти. База данных в фирменном формате .cdb.
"Удаленная база данных" - ? "addressbook", я предполагаю, что это имя специфично для syncevolution и указывает на базу контактов на локальном компьютере. А вот способ хранения этой базы задается опцией backend сервера. В настройках сервера, я выбрал способ хранения в файловой системе. Эта настройка требует проверки смысла.

"Тип синхронизации" - "обычный", это двусторонняя синхронизация.

"Далее" "Готово". Профиль "с домашним компьютером" сохраниться в списке профилей приложения "Синхронизация".

Запуск синхронизации с телефона - выбрать профиль "с домашним компьютером" и нажать "Синхронизация". На предмет ошибок и результатов смотреть "Журнал".

II. Настройка локального сервера SyncML, производства SyncEvolution

Установка пакета с серверной частью SyncEvolution
$ sudo apt-get install syncevolution-http

Основная трудность в том, что серверу требуется предварительно знать о подключаемых клиентах(устройствах) и настроить для них конфигурации.

Для тестирования запуска сервера изготовим временный скрипт и назовем его syncserver.sh:

#! /bin/bash
# Choose a directory where SyncEvolution will
# store the PIM data, using its internal file backend.
# To store in some other backend, like Evolution,
# you'll have to use different "type" and "evolutionsource"
# values in the commands below.
deviceID=IMEI:354321000000000
peer=Nokia-9300
datapath=/tmp/fb2


# All sources are disabled by default.
# The URI is reset here because it can be used to rename the
# data source (not necessary when configuring the client, so
# that it uses the source names as URIs).
syncevolution --configure \
  --template default \
  --sync-property syncURL= \
  --sync-property peerIsClient=1 \
  --sync-property remoteDeviceId=${deviceID} \
  --sync-property username=${username} \
  --sync-property password=${password} \
  --source-property uri= \
  --source-property sync=slow \
backend=file \
database=file:///tmp/fb2 \
databaseFormat=text/x-vcard \
syncFormat=text/x-vcard \
  ${peer}


# Запуск сервера syncml, с режимом отладочных сообщений (опция -d)
syncevo-http-server -d http://localhost:9000/syncevolution


Задать права на исполнения скрипта.
$ chmod +x syncserver.sh

Запуск тестового сервера на переднем плане, в консоли:
$ ./syncserver.sh

В ответ сервер сообщит:
[DEBUG] twisted: twisted.web.server.Site starting on 9000
и еще много разного.
Теперь можно запускать синхронизацию на телефоне.

Если синхронизация

III. Дополнительно. Настройка телефона Nokia E7, N8. Пока не выполнена.

Настраивается  телефон Nokia E7 для синхронизации контактов с локальным сервером, доступным через Интернет, либо локальную сеть.

Надо найти в меню телефона настройки касающиеся "Синхронизации"

Выберите "Меню" - "Параметры" - "Связь" -

"Передача дан." - "Синхронизация" - "Новый профиль синхронизации"



IV. Дополнительно. Настройка другого телефона Nokia 5200 , платформа Nokia s40.
В описании указано, что телефон поддерживает SyncML.
"Меню" - "Настройки" - "Подключение устройств" - "Перенос данных" - "Синхр. (сервер)"
Настройки синхронизации у поставщика услуг. Это значит, надо принять сервисную смс, с настройками. Как это сделать - бог его знает. Таким образом, для владельца телефона удобно доступно лишь синхронизация по Bluetooth и irda. Это в другой заметке.

Дополнительно. Конфигурация сети с роутером
В случае наличия в конфигурации домашней сети роутера, раздающего сеть домашним компьютерам, к настройке добавляется "перенаправление портов"  на роутере. Надо открыть на роутере и перенаправить порт 9000 на IP-адрес домашнего компьютера, при этом IP-адрес домашнего компьютера выделен роутером из диапазона неподключенных адресов iPv4, т.н. "серый" IP-адрес, вида 192.168.1.xxx . Либо вывести домашний компьютер, выполняющий роль сервера в "демилитаризованную зону" DMZ. Google в помощь.



. Источники
1. http://syncevolution.org/wiki/http-server-howto

Комментариев нет: