The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Раздел полезных советов: Синхронизация содержимого телефона ..."
Отправлено auto_tips, 07-Фев-11 10:20 
В статье описывается способ синхронизации по USB-кабелю (технология [[http://en.wikipedia.org/wiki/Syncml SyncML]], протоколы TCP/IP и HTTP)  календаря, задач, заметок и контактов мобильного телефона с компьютером. На компьютере установлена операционная система Linux (Debian/Ubuntu) и клиент пакета совместной работы Evolution.

Рассматриваемый в качестве примера [[http://www.sonyericsson.com/cws/products/mobilephones/overvi... гаджет от 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.Установить на компьютере [[http://www.samag.ru/art/03.2008/03.2008_01.html локальный SyncML-сервер]].
*** 3.Указать ПО синхронизации телефона обращаться к этому серверу.
*** 4.Синхронизировать SyncML-сервер и Evolution.


Программное обеспечение:

*** []Локальный SyncML-сервер[]. [[http://en.wikipedia.org/wiki/Syncml Здесь перечислены основные варианты]], как самостоятельных продуктов, так и в составе систем совместной работы. Выбран [[https://www.forge.funambol.org/download/ Funambol Server]]. У него много недостатков: он тяжелый, медленный, пришлось повозиться с подключением Mysql; но главное его достоинство: собственно для синхронизации настраивать ничего не нужно. Альтернативами (для настойчивых) могут выступать: HTTP-сервер из пакета SyncEvolution, Synthesis SyncML DEMO или HTTP-сервер MultiSync\OpenSync.

*** Для []клиента синхронизации Evolution[] и Funambol выбран [[http://syncevolution.org/ 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[]

Качаем [[https://www.forge.funambol.org/download/ отсюда]]. Устанавливаем:

   sudo ./funambol-9.0.0.bin


[]2.2.Настройка Mysql[]

Родная база данных в Debian\Ubuntu проработает недолго (по крайней мере у меня).
[[https://wiki.ubuntu.com/marckaplan/funambol Лучше прикрутить 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 [[http://dev.mysql.com/downloads/connector/j/ отсюда]].

Копируем файл 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 на компьютере

Сохраняем в надежное, тихое место все ценное и нужное, что есть.

Качаем [[http://downloads.syncevolution.org/apt/pool/main/s/syncevolu.../ пакет]] для 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 и выбирать соответствующий пункт меню в телефоне.


URL:
Обсуждается: http://www.opennet.ru/tips/info/2530.shtml

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру