The OpenNET Project / Index page

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

Синхронизация содержимого телефона и 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
    Раздел:    Корень / Пользователю / Мобильные телефоны

    Обсуждение [ Линейный режим | Показать все | RSS ]
     
  • 1.1, anonymous, 10:20, 07/02/2011 [ответить] [смотреть все]
  • +/
    А я давно ( и до сих пор пашет ) сделал
    проще. Мой тхундербирд(плагин синк), синхронизуется с моим старым СЕ к550i(тама синхронизация встроена) через гугл-аккаунт.
     
  • 1.2, Аноним, 23:50, 07/02/2011 [ответить] [смотреть все]
  • +/
    И стоит ли игра свеч?
     
     
  • 2.3, write2net, 00:02, 08/02/2011 [^] [ответить] [смотреть все] [показать ветку]
  • +/
    стоит 1 если нет Интернета Интернет не нужен 2 нельзя доверять публичным сервис... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.4, write2net, 00:25, 08/02/2011 [^] [ответить] [смотреть все]  
  • +/
    или здесь http://habrahabr.ru/blogs/i_am_clever/13611/
     
  • 3.5, anonymous, 08:21, 08/02/2011 [^] [ответить] [смотреть все]  
  • +/
    Юзаю мобилу и писать такое попахивает бредом Или типа мой оператор настольк... весь текст скрыт [показать]
     
  • 1.6, svm, 19:42, 08/02/2011 [ответить] [смотреть все]  
  • +/
    Купите себе уже Андроид телефон и не мучайтесь.
     
  • 1.7, User294, 15:36, 09/02/2011 [ответить] [смотреть все]  
  • +/
    Жесть какая. Вкатить яву, мускуль и огроменный сервер ради столь незначительной задачи? Хвост виляет собакой...
     
     
  • 2.8, реобас, 16:24, 17/02/2011 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    полностью согласен, задача вроде тривиальная, а тут такие пироги
     
  • 1.9, pavlinux, 03:59, 20/02/2011 [ответить] [смотреть все]  
  • +/
    В этом совете содержится 11929 символа с пробелами.
    Это примерно 1084 телефонных номера, или эквивалентно
    полной замене, обновлению или изменению 20 номеров в неделю.
    Или 10, если синхронизировать в ручную, на компе и мобиле.

    Из среднего, что человек меняет добавляет около 10 номеров в год,
    в зависимости от активности жизни, то можно получить, что подобное действо
    оправдает себя через 4.5 года и более. :)

      

     
     
  • 2.10, anonymous, 18:49, 20/02/2011 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    А теперь посчитай и прибавь пользу для всех, кто это прочитает.
     
     
  • 3.11, pavlinux, 23:18, 20/02/2011 [^] [ответить] [смотреть все]  
  • +/
    Польза была бы, если кто-то настроил сервак, и открыл доступ для всех,точнее для... весь текст скрыт [показать]
     
     
  • 4.14, write2net, 17:30, 21/02/2011 [^] [ответить] [смотреть все]  
  • +/
    В принципе не так уж и сложно требуется корпоративная система совместной работы... весь текст скрыт [показать]
     
     
  • 5.15, pavlinux, 17:36, 21/02/2011 [^] [ответить] [смотреть все]  
  • +/
    > В принципе не так уж и сложно. требуется корпоративная система совместной работы
    > + прикрученный к ней сервер SyncML + корпоративные мобильники и тарифный
    > план.

    Я просто не знаю, есть ли телефоны, где можно выборочно синхронизировать?
    А то как-то не охота, чтоб у операционисток появились телефоны любовниц :)

     
     
  • 6.17, write2net, 18:06, 21/02/2011 [^] [ответить] [смотреть все]  
  • +/
    направление синхронизации можно настроить (хотя бы на сервере - чтобы сервер отдавал данные на телефон, а с него ничего не брал)
    выборочно синхронизировать = несколько источников синхронизации и соответствующие правила.

     
  • 2.12, Кирилл, 15:17, 21/02/2011 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Сделаю вид, что я не понял юмора -) Начиная с того, что "10 номеров в год" - это не ритм жизни, а подготовка к похоронам, и заканчивая делением 11929 на 11. У телефона, к несчастью, есть еще атрибуты в виде фамилии, имени, отчества, скайп-номер, рабочего номера, названия организации, e-mail'а - и это только самые часто встречающиеся. Для примера, у меня около 200 активных контактов. Даже если считать по минимуму, что каждый номер - это ФИО + номер + еще любой атрибут в 11 символов, то получиться не менее 50 символов. Мне, что бы перепечатать все мои 200 телефонов, надо ввести на неудобной телефонной клавиатуре 10 000 символов - т.е. почти перепечатать статью, только на телефоне. Это не 1, не 2 и не 3 часа тупого тыканя. Рецепт автора позволиьт это сделать за 20 минут. Т.е. математически бонус есть.
     
     
  • 3.13, pavlinux, 17:11, 21/02/2011 [^] [ответить] [смотреть все]  
  • +/
    Ничё, мы предусмотрели подобные комментарии Я Вас расстрою По 200 активных ко... весь текст скрыт [показать]
     
     
  • 4.18, Кирилл, 23:33, 21/02/2011 [^] [ответить] [смотреть все]  
  • +/
    Вы немножечко не в курсе. 200 контактов - это совсем не много. "Некоторые начальники" - из малого и среднего бизнеса - лично мне очень хорошо знакомые - имеют contact  list  больше 500 номеров. Это те люди, с которыми человек знаком, и при необходимости позвонит.
    Так что тут весь вопрос в понятии активности. Контакт или нужен, или нет.
    Малое кол-во контактов обычно у людей, занимающихся однообразной деятельностью в течении длительного периода времени. Например, сидением в НИИ. А каждое лето выезжающих на дачу. Или в Лазаревское. И т.д. Когда вокруг одни и те же лица, одни и те же интересы. Тоже - ничего личного. У меня был такой период в жизни, и реально - емкости симки хватало за глаза.
     
     
  • 5.19, pavlinux, 05:07, 22/02/2011 [^] [ответить] [смотреть все]  
  • +/
    > Когда вокруг одни и те же лица, одни и те же интересы.

    У меня люди делятся на 2 части - которые нужны мне, и которым нужен я (эти меня не интересуют).
    И в телефоне хранятся одни бабы, ну и те кто часто звонит, чтоб определялись.

     
  • 3.16, write2net, 17:41, 21/02/2011 [^] [ответить] [смотреть все]  
  • +/
    вообще-то все замутилось из-за календаря... напряженный график, все расписано и т.п. так что бонус еще больше)))


     
  • 1.20, Sergey, 00:39, 12/12/2011 [ответить] [смотреть все]  
  • +/
    Нужна помощь,

    При выполнении пункта 2.2 строки:

    sudo /opt/Funambol/bin/install.cmd

    Выдается ошибка:


    sergey-dell bin # sh ./install.cmd
    ./install.cmd: 1: @echo: not found
    : not foundmd: 2: setlocal
    : not foundmd: 3:
    : not foundmd: 6:
    ./install.cmd: 7: rem: not found
    ./install.cmd: 8: Syntax error: "(" unexpected


    Люди подскажите в чем проблема.

     
     
  • 2.21, Sergey, 01:59, 12/12/2011 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Возможно проблемы мои из за funambol 64bit так как у меня системы стоит 64bit
     
     
  • 3.22, write2net, 09:55, 13/01/2012 [^] [ответить] [смотреть все]  
  • +/
    > Возможно проблемы мои из за funambol 64bit так как у меня системы
    > стоит 64bit

    Windows?)

     
  • 1.23, Алексей, 06:58, 29/09/2015 [ответить] [смотреть все]  
  • +/
    Скажите, задачи и календарь с напоминалками тоже синхронизируется? У меня Nokia 6700. Сможете помочь настроить?
     

    Ваш комментарий
    Имя:         
    E-Mail:      
    Заголовок:
    Текст:



      Закладки на сайте
      Проследить за страницей
    Created 1996-2017 by Maxim Chirkov  
    ДобавитьРекламаВебмастеруГИД  
    Hosting by Ihor