понедельник, 25 мая 2009 г.

Синхронизация Evolution и Nokia 6300

На последний день рождения я купил себе новый телефон (Nokia 6300). После моего старого samsung'а телефон смотрится (и пользуется) как новый ноутбук. Среди прочих функций были замечены богатые возможности планирования: календарь, заметки TODO, встречи. Телефон помнит о важных делах и даже напоминает о них. В отличие от компьютера, телефон всегда рядом и всё очень-очень было радостно за исключением одного НО: набивать текст задач и TODO на телефонной клавиатуре муторно. Одновременно с этим, на компьютере очень удобно отслеживать задачи, но он не всегда ссобой.

Задача

Синхронизировать календарные данные на телефоне и на компьютере с помощью bluetooth

Платформа

Компьютер: Ubuntu 9.04, Evolution 

Телефон: Nokia 6300

Реализация

Bluetooth устройства и стек на моём ноутбуке после установки 9.04 работали "из коробки", поэтому основная задача была именно синххронизация календарных данных.

После первого же гугления я нашёл два пути синхронизации под *nix:

1.msync

2.xgnokii

xgnokii позволяет синхронизировать с телефоном адресную книгу, SMS, календарь, но вносить правки можно только встроенными средствами xgnokii, поэтому для моей задачи он не подошёл.

msync - это целый класс программ для связи с мобильными устройствами, однако, как оказалось, "не все msync одинаково полезны". Сначала я скачал multisync-gui и попытался настроить синхронизацию с помощью графического интерфейса. Телефон был правильно распознан, программа писала, что синхронизация прошла успешно, однако новых данных не появлялось ни в календаре мобильного телефона, ни в evolution'е. Немного расстроившись, я стал пробовать синхронизироваться с помощью консольных утитлит. На этот раз синхронизация прошла успешно и я получил новые данные на обеих сторонах. Далее я опишу порядок настройки:

Необходимые пакеты

Для синхронизации необходимы:

multisync multisync-tools opensync-plugin-evolution libopensync-plugin-syncml (+ все их зависимости)

Конфигурирование

Для начала необходимо собрать информацию о телефоне, в частности его bluetooth идентификатор и канал на котором работает служба синхронизации телефона. Эти данные можно узнать воспользовавшись методами предложенными здесь. А именно:

1. Перевести телефон в режим обнаружения.

2. В консоли ввести hcitool scan

Вывод утилиты hcitool будет в формате адрес: имя устройства. Нудно запомнить адрес телефона.

3. В консоли ввести sdptool browse <адрес_телефона>

Вывод утилиты sdptool будет в виде краткой информации о службах, присутствующих на телефоне. Прочитав его, узнал о телефоне много нового. Для синхронизации нужна служба "Nokia SyncML Server" и значение поля "Channel" этой службы. У меня это был 11 канал.

Теперь имея необходимые данные можно настроить параметры синхронизации:

В консоли необходимо ввести:

msynctool –addgroup evolution-nokia
msynctool –addmember evolution-nokia syncml-obex-client
msynctool –addmember evolution-nokia evo2-sync
msynctool –configure evolution-nokia 1

После последней комманды откроется окно редактора, где среди подробнейших коментариев необходимо ввести следующие данные:

<config>
<username></username>
<password></password>
<type>2</type>
<bluetooth_address>bluetooth_адресс_телефона</bluetooth_address>
<bluetooth_channel>Номер_канала_службы_синхронизации</bluetooth_channel>
<interface>0</interface>
<version>1</version>
<identifier>PC Suite</identifier>
<wbxml>1</wbxml>
<recvlimit>10000</recvlimit>
<maxobjsize>0</maxobjsize>
<usestringtable>0</usestringtable>
<onlyreplace>0</onlyreplace>
<contact_db>Contacts</contact_db>
<calendar_db>Calendar</calendar_db>
<note_db>Notes</note_db>
</config>

После созранения изменений и выхода из редактора, в консоли необходимо ввести:

msynctool –configure evolution-nokia 2

Здесь необходимо прописать пути к синхронизируемым файлам evolution'а:

<config>
<address_path>file:///home/имя_пользователя/.evolution/addressbook/local/system

</address_path>

<calendar_path>file:///home/имя_пользователя/.evolution/calenddar/local/system</calendar_path>

<tasks_path>file:///home/имя_пользователя/.evolution/tasks/local/system</tasks_path></config>


Сохраняюсь, выхожу из редактора. Настройка окончена. Теперь можно ввести:

msynctool –sync evolution-nokia

После выполнения этой комманды данные синхронизируются. Для того, чтобы не вводить команду каждый раз, её можно вынести на панель быстрого доступа в Gnome, однако если Вы любите вести календарь в evolution, можно поставить эту задачу в cron для автоматической синхронизации.

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

Отправить комментарий