В статье описывается способ синхронизации по 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.me/tips/info/2530.shtml
А я давно ( и до сих пор пашет ) сделал
проще. Мой тхундербирд(плагин синк), синхронизуется с моим старым СЕ к550i(тама синхронизация встроена) через гугл-аккаунт.
И стоит ли игра свеч?
стоит:
1.если нет Интернета/Интернет не нужен
2.нельзя доверять публичным сервисам свои данные (Funambol можно опубликовать как Интернет-ресурс).
если таких проблем нет, то не стоит: лучше идти путем товарища из первого коммента или как описано, например http://habrahabr.ru/blogs/mobile/111532/.
или здесь http://habrahabr.ru/blogs/i_am_clever/13611/
> нельзя доверять публичным сервисам свои данныеЮзаю мобилу и писать такое ... попахивает бредом. Или типа мой оператор настолько крут
что НИКОГДА не опубликует твою инфу как Интернет-ресурс :)Весь вопрос в том что если реально есть что скрывать то ЭТО вы не будете заносить в заметки
и мобильную телефонную книгу ... ( а про юзание это дело через вин с аутглюком я бы вообще умолчу ;)))) )
Купите себе уже Андроид телефон и не мучайтесь.
Жесть какая. Вкатить яву, мускуль и огроменный сервер ради столь незначительной задачи? Хвост виляет собакой...
полностью согласен, задача вроде тривиальная, а тут такие пироги
В этом совете содержится 11929 символа с пробелами.
Это примерно 1084 телефонных номера, или эквивалентно
полной замене, обновлению или изменению 20 номеров в неделю.
Или 10, если синхронизировать в ручную, на компе и мобиле.Из среднего, что человек меняет добавляет около 10 номеров в год,
в зависимости от активности жизни, то можно получить, что подобное действо
оправдает себя через 4.5 года и более. :)
А теперь посчитай и прибавь пользу для всех, кто это прочитает.
> А теперь посчитай и прибавь пользу для всех, кто это прочитает.Польза была бы, если кто-то настроил сервак, и открыл доступ для всех,точнее для каждого.
Можно замутить домашний или внутриофисный сервак, но я пока не видел телефона
в котором можно выборочно синхронизировать определённые телефоны, записи, заметки.
И принудительно заставлять сотрудников синхронизироваться.
Написал начальник, мол в "Субботу все на работу", и в течении часа у всех это должно быть на мобилах :)
В принципе не так уж и сложно. требуется корпоративная система совместной работы + прикрученный к ней сервер SyncML + корпоративные мобильники и тарифный план.
> В принципе не так уж и сложно. требуется корпоративная система совместной работы
> + прикрученный к ней сервер SyncML + корпоративные мобильники и тарифный
> план.Я просто не знаю, есть ли телефоны, где можно выборочно синхронизировать?
А то как-то не охота, чтоб у операционисток появились телефоны любовниц :)
направление синхронизации можно настроить (хотя бы на сервере - чтобы сервер отдавал данные на телефон, а с него ничего не брал)
выборочно синхронизировать = несколько источников синхронизации и соответствующие правила.
Сделаю вид, что я не понял юмора -) Начиная с того, что "10 номеров в год" - это не ритм жизни, а подготовка к похоронам, и заканчивая делением 11929 на 11. У телефона, к несчастью, есть еще атрибуты в виде фамилии, имени, отчества, скайп-номер, рабочего номера, названия организации, e-mail'а - и это только самые часто встречающиеся. Для примера, у меня около 200 активных контактов. Даже если считать по минимуму, что каждый номер - это ФИО + номер + еще любой атрибут в 11 символов, то получиться не менее 50 символов. Мне, что бы перепечатать все мои 200 телефонов, надо ввести на неудобной телефонной клавиатуре 10 000 символов - т.е. почти перепечатать статью, только на телефоне. Это не 1, не 2 и не 3 часа тупого тыканя. Рецепт автора позволиьт это сделать за 20 минут. Т.е. математически бонус есть.
Ничё, мы предусмотрели подобные комментарии. Я Вас расстрою. По 200
активных контактов это только у профессий подобных менеджеру по продажам,
некоторых начальников... Большинство, как я и описал, имеют 10 не более
человек на связи, обычно это 2-3 сотрудника по работе, 2-3 родственника
и друзья. Если у Вас более 4 друзей, с которыми вы постоянно перезваниваетесь,
то вы не друг, а пионервожатый :)Ну вот я, у меня в телефоне, осталось 33 контакта, из них активных штуки 4.
Было море - со старых работ (около 10), институтская группа (28 штук), телефоны
преподов (15 штук), курсы, тренинги, форумы... (около 20), соседи - человек 5-6,
коллеги с пересекающихся работ не более десятка.Что вы делаете с 200 людьми я не знаю. Хотя есть фильм - "Прохиндиада или бег
на месте", допускается и такой случай. Более чем уверен, 200 контактов - это
имитация бурной деятельности. Ничего личного, я сам встречал таких людей, он
вроде везде, только смысл его не ясен, - болтает, шутит, как что-то попросишь,
он звонит другому, который это сможет,... а на фига тогда он нужен :)
Вы немножечко не в курсе. 200 контактов - это совсем не много. "Некоторые начальники" - из малого и среднего бизнеса - лично мне очень хорошо знакомые - имеют contact list больше 500 номеров. Это те люди, с которыми человек знаком, и при необходимости позвонит.
Так что тут весь вопрос в понятии активности. Контакт или нужен, или нет.
Малое кол-во контактов обычно у людей, занимающихся однообразной деятельностью в течении длительного периода времени. Например, сидением в НИИ. А каждое лето выезжающих на дачу. Или в Лазаревское. И т.д. Когда вокруг одни и те же лица, одни и те же интересы. Тоже - ничего личного. У меня был такой период в жизни, и реально - емкости симки хватало за глаза.
> Когда вокруг одни и те же лица, одни и те же интересы.У меня люди делятся на 2 части - которые нужны мне, и которым нужен я (эти меня не интересуют).
И в телефоне хранятся одни бабы, ну и те кто часто звонит, чтоб определялись.
вообще-то все замутилось из-за календаря... напряженный график, все расписано и т.п. так что бонус еще больше)))
Нужна помощь,При выполнении пункта 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
Люди подскажите в чем проблема.
Возможно проблемы мои из за funambol 64bit так как у меня системы стоит 64bit
> Возможно проблемы мои из за funambol 64bit так как у меня системы
> стоит 64bitWindows?)
Скажите, задачи и календарь с напоминалками тоже синхронизируется? У меня Nokia 6700. Сможете помочь настроить?