Страницы

Показаны сообщения с ярлыком vcards. Показать все сообщения
Показаны сообщения с ярлыком vcards. Показать все сообщения

суббота, 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

SyncEvolution + file backend + Google contacts syncml

Пример настройки синхронизации контактов между папкой в файловой системе Ubuntu 11.10 и Google Contacts.

Перед любым использование сервиса Google Contacts убедиться, что сделана резервная копия контактов, потому что неправильная настройка сервиса syncml может привести к полной потере базы данных контактов, как в google contacts, так и в локальном устройстве.

Используется (SyncEvolution) из репозиториев Ubuntu. Установка проста:
$sudo apt-get install syncevolution sync-ui


Подготовка - создать папку /tmp/fb и поместить в нее несколько vcards (файлы визиток в формате vcf, желательно версии 2.1).
 Syncevolution содержит предварительно сконфигурированные настройки для нескольких сервисов хранения контактов в сети Интернет. Одним из них является Google Contacts. Сервис поддерживает протокол синхронизации syncml.

Просмотреть список конфигураций:
$ syncevolution --template ?


Просмотреть предварительную конфигурацию "Google_Contacts":
$ syncevolution --print-config "Google_Contacts" | more

Внести некоторые изменения...
Итак, конфигурация, которая у меня заработала:

$ syncevolution --configure \
username=myusername@gmail.com \
password=mypassword \
loglevel=3 \
sync=slow \
backend=file \
database=file:///tmp/fb \
databaseFormat=text/x-vcard \
syncFormat=text/x-vcard \
Google_Contacts


"Google_Contacts" - это название встроенной конфигурации.
Замените myusername@gmail.com и mypassword, на данные своей учетной записи в Google.
Для backend=file необходимы свойства database, databaseFormat, syncFormat
Опция sync=slow, синхронизация всех контактов, в обе стороны, каждый раз при синхронизации.
Опция sync=none, позволить отключить синхронизацию.

Запуск синхронизации:
$ syncevolution Google_Contacts

Существующие контакты из Google Contacts создаются в папке /tmp/fb виде файлов с номерами. Как это исправить, пока не знаю.
$ ls /tmp/fb 
1 2 3

Возможно настройка локального сервера syncml, вместо Google Contacts

P.S. Есть конфигурация для сервиса Nokia Ovi.