[an error occurred while processing this directive]

Синхронизация содержимого телефона и Evolution на Linux ПК при помощи SyncML
В статье описывается способ синхронизации по USB-кабелю (технология SyncML,
протоколы TCP/IP и HTTP)  календаря, задач, заметок и контактов мобильного
телефона с компьютером. На компьютере установлена операционная система Linux
(Debian/Ubuntu) и клиент пакета совместной работы Evolution.

Рассматриваемый в качестве примера гаджет от Sony Ericsson представляет
собой аппарат начального уровня, не является смартфоном, использует собственную
закрытую программную платформу, а среди прочих сетевых функций поддерживает
SyncML и имеет функцию модема.


Схема синхронизации и программное обеспечение

Мысль использовать Интернет-технологии для синхронизации по USB-кабелю с
компьютером возникла после нескольких бесперспективных попыток сделать это
более гуманными средствами:

  • Фирменный софт Sony Ericsson под Wine с первого раза не запустился (если бы запустился - пришлось решать проблему интеграции продукта Microsoft к Evolution). Требуемых функций для Wammu/Gammu через IrSync телефон не поддерживал.
  • В MultiSync\OpenSync трудно быстро разобраться (документации мало, литература по теме не соответствует современному состоянию пакета).
  • В KDE есть некие утилиты для синхронизации, но у нас нет KDE. Основные предпосылки для реализации схемы:
  • Во-первых компьютер и телефон можно объединить в сеть по USB-кабелю. Linux при подключении телефона создает сетевой интерфейс, о чем свидетельствует запись в системном журнале: usb0: register 'cdc_ether' at usb-0000:00:1d.0-2, CDC Ethernet Device, 02:80:37:ec:02:00 Утилита tcpdump на этом интерфейсе показывает, что телефон во всю шлет DHCP-запросы на получение IP-адреса (встроенный модем).
  • Во-вторых, в телефоне есть клиент для работы с удаленным SyncML-сервером. Собственно схема локальной синхронизации: Органайзер (календарь, заметки, задачи, контакты) / Телефон -> USB (HTTP, TCP/IP) -> Компьютер (локальный SyncML-сервер) / Evolution. Этапы решения задачи:
  • 1.Настроить IP-сеть между компьютером и телефоном.
  • 2.Установить на компьютере локальный SyncML-сервер.
  • 3.Указать ПО синхронизации телефона обращаться к этому серверу.
  • 4.Синхронизировать SyncML-сервер и Evolution. Программное обеспечение:
  • Локальный SyncML-сервер. Здесь перечислены основные варианты, как самостоятельных продуктов, так и в составе систем совместной работы. Выбран Funambol Server. У него много недостатков: он тяжелый, медленный, пришлось повозиться с подключением Mysql; но главное его достоинство: собственно для синхронизации настраивать ничего не нужно. Альтернативами (для настойчивых) могут выступать: HTTP-сервер из пакета SyncEvolution, Synthesis SyncML DEMO или HTTP-сервер MultiSync\OpenSync.
  • Для клиента синхронизации Evolution и Funambol выбран SyncEvolution. 1. Настройка сети между телефоном и компьютером по USB-кабелю 1.1.На телефоне:
  • В "параметрах Интернет" установить "Разрешить местные подключения".
  • В "параметрах USB" можно выбирать различные варианты доступа к сети (Доступ к Интернету) - "Интернет через телефон" и "Интернет через компьютер". Здесь описан вариант "Интернет через компьютер", поэтому нужно его выбрать. Если на телефоне есть возможность прописать для USB-соединения статический IP-адрес и маску подсети, то нужно прописать 192.168.2.10 255.255.255.0 и не настраивать на компьютере DHCP-сервер, а только установить на интерфейсе usb0 статический IP-адрес. 1.2.Настройка DHCP-сервера и сети на компьютере: Чтобы выдавать IP-адрес телефону установим на компьютере DHCP-сервер: sudo apt-get install dhcp3-server Настроим его: В файле /etc/default/dhcp3-server пропишем: interfaces=usb0 В файле /etc/dhcp3/dhcpd.conf: subnet 192.168.2.0 netmask 255.255.255.224 { range 192.168.2.10 192.168.2.20; } полезно также закомментировать: #option domain-name "example.org"; #option domain-name-servers ns1.example.org, ns2.example.org; Устанавливаем статический IP-адрес на интерфейс usb0 (телефон должен быть подключен): sudo ifconfig usb0 192.168.2.2 netmask 255.255.255.0 Запускаем DHCP-сервер: sudo /etc/init.d/dhcp3-server start Проверяем сеть: ping 192.168.2.10 2. Настройка локального SyncML-сервера 2.1.Установка Funambol Качаем отсюда. Устанавливаем: sudo ./funambol-9.0.0.bin 2.2.Настройка Mysql Родная база данных в Debian\Ubuntu проработает недолго (по крайней мере у меня). Лучше прикрутить Mysql. Устанавливаем Mysql: sudo apt-get install mysql-server Создаем базу данных: mysql> create database funambol; mysql> GRANT ALL PRIVILEGES ON funambol.* TO 'funambol'@'localhost' IDENTIFIED BY 'funambol'; Качаем mysql-connector-java отсюда. Копируем файл mysql-connector-java-5.1.14-bin.jar в: /opt/Funambol/tools/jre-1.5.0/jre/lib/ext /opt/Funambol/pim-listener/lib /opt/Funambol/inbox-listener/lib Редактируем файл ds-server/install.properties: Исправляем: dbms=mysql Добавляем: jdbc.classpath=/opt/Funambol/tools/jre-1.6.0/lib/ext/mysql-connector-java-5.1.14-bin.jar jdbc.driver=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://localhost/funambol?characterEncoding=UTF-8 jdbc.user=funambol jdbc.password=funambol Комментируем: #jdbc.classpath=../tools/hypersonic/lib/hsqldb.jar #jdbc.driver=org.hsqldb.jdbcDriver #jdbc.url=jdbc:hsqldb:hsql://localhost/funambol #jdbc.user=sa #jdbc.password= Запускаем повторную инсталяцию: sudo /opt/Funambol/bin/install.cmd 2.3.Настройка Funambol Команды для запуска\остановка сервиса: sudo /opt/Funambol/bin/funambol-server start sudo /opt/Funambol/bin/funambol-server stop Меняем пароль администратора и гостя, используя утилиту администрирования: sudo /opt/Funambol/admin/bin/funamboladmin 3. Настройка синхронизации на телефоне Сохраняем в надежное, тихое место все ценное и нужное, что есть. В меню "Синхронизация" создаем новую учетную запись Адрес сервера: http://192.168.2.2:8080/funambol/ds Имя пользователя: guest Пароль: guest Выбираем приложения: Контакты, Календарь, Задания, Заметки Настраиваем имена базы: для контактов: card для календаря: event для заданий: task для заметок: note Вуаля. Синхронизируем телефон и SyncML-сервер. 4. Настройка SyncEvolution на компьютере Сохраняем в надежное, тихое место все ценное и нужное, что есть. Качаем пакет для Debian\Ubuntu. Устанавливаем: sudo dpkg -i syncevolution-evolution_1.1.1-2_i386.deb Запускаем гуишную утилиту "Синхронизация" (sync-ui). В ней настраиваем службу Funambol: Имя пользователя: guest Пароль: guest Адрес сервера: http://192.168.2.2:8080/funambol/ds Папки прописываем, как на телефоне (имена базы). Сохраняем. Синхронизируем Evolution и SynML-сервер. Возможно, что графическая утилита не сможет первый раз корректно определить направление синхронизации и т.д., поэтому сообщит об ошибке. В таких случаях можно использовать интерфейс командной строки: syncevolution --sync refresh-from-server funambol calendar (Обновить данные сервера в Evolution) и т.п. При синхронизации контактов был замечен глюк: при изменении существующей записи из evolution в телефон поле email передается, а поле домашний телефон - нет. 5. Дополнительная автоматизация Так как мне ничего кроме локальной синхронизации не нужно, все вспомогательные манипуляции на компьютере были связаны с настройкой сетевого интерфейса usb0 (сеть настраивается редактированием непосредственно файла /etc/network/interfaces без всяких вспомогательных средств). Отрывок файла /etc/network/interfaces: allow-hotplug usb0 iface usb0 inet static address 192.168.2.2 netmask 255.255.255.0 post-up /etc/init.d/dhcp3-server start post-up /opt/Funambol/bin/funambol-server start down /etc/init.d/dhcp3-server stop down /opt/Funambol/bin/funambol-server stop Остается только подключить телефон к компьютеру и нажимать кнопку "Синхронизировать" в sync-ui и выбирать соответствующий пункт меню в телефоне.
  •  
    07.02.2011 , Автор: write2net
    Ключи: evolution, phone, sync, linux, syncml, calendar, groupware, usb / Лицензия: CC-BY
    Раздел:    Корень / Пользователю / Мобильные телефоны

    [an error occurred while processing this directive]

    [an error occurred while processing this directive]