The OpenNET Project / Index page

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

Синхронизация Nokia E-series с KDE-PIM (pda phone mobile kde obex bluetooth)


<< Предыдущая ИНДЕКС Правка src / Печать Следующая >>
Ключевые слова: pda, phone, mobile, kde, obex, bluetooth,  (найти похожие документы)
From: Бушмелев Юрий <jay-dev@simcom.ru.> Newsgroups: email Date: Mon, 14 Mar 2007 14:31:37 +0000 (UTC) Subject: Синхронизация Nokia E-series с KDE-PIM Синхронизация Nokia E-series с KDE-PIM Disclaimer В стать описывается личный опыт автора по синхронизации Nokia E50 через Bluetooth с приложениями KDE 3.5 Kontact (Kaddressbook, Korganizer, Knotes). Описанный метод может работать (а может и не работать) с аналогичными телефонами Nokia серий E и N, а также с телефонами других производителей, позволяющими синхронизироваться по протоколу SyncML через OBEX. OpenSync не является стабильным приложением на данный момент. Авторы честно предупреждают об этом. Поэтому перед синхронизацией полезно иметь резервные копии данных. Автор предпочитает видеть интерфейс телефона на английском языке, поэтому все настройки телефона показаны при использовании английского интерфейса. Для некоторых настроек приведены также аналоги, взятые из инструкции. Не обязательно русские аналоги будут совпадать с таковыми на других телефонах. Немного истории Предыдущим телефоном у меня был SonyEricsson T68i. Все контакты с него я периодически сливал через Bluetooth на домашний компьютер. Делал я это при помощи obexapp, забирая через IrMC файл telecom/pb.vcf. Потом этот vcf был импортирован в Kontact (Kaddressbook). Проводить реальную синхронизацию данных в Kontact и на SE T68i было нецелесообразно, поскольку последний хранил русские символы в контактах в кодировке UTF-7. Писать фильтр мне было лень, а новые контакты появлялись не так уж и часто, поэтому я просто параллельно вбивал их и в телефон, и в Kontact. Недавно я все-таки решил сменить телефон на что-то более серьезное и купил смартфон Nokia E50. Сразу же встал вопрос, как залить на это чудо технической мысли мои старые контакты с телефона или из Kontact'а. Попытка передать все контакты с T68i через Bluetooth на E50 окончилась неудачей. T68i все честно переслал, но E50 показывал в принятых только одну визитку (business card). Аналогично закончилась попытка залить всю адресную книжку одним файлом через Bluetooth с компьютера по obex push. IrMC вообще не оказалось среди поддерживаемых смартфоном сервисов. Следующим пунктом значилась gnokii. После изучения документации оказалось, что авторы решили не заниматься исследованием протоколов различных смартфонов на series60, а просто написали небольшой прокси - gnapplet. Он устанавливается на смартфон и обеспечивает работу с данными на нем по своему протоколу. Все бы ничего, только gnapplet еще не портировали под series60v3.. Изучение gammu (давний форк gnokii) тоже не дало ничего нового - используется тот же gnapplet. Тут я вспомнил, что в KDE4 произошла смена бакэнда синхронизации с multisync на opensync (www.opensync.org). О чудо, в гугле нашлось несколько упоминаний об успешной синхронизации телефонов серии N с помощью opensync через плагин syncml. Поиск в портах FreeBSD не показал мне ничего интересного (если не считать устаревшую libopensync), времени и желания портировать софт у меня как-то тоже не нашлось. Поэтому в выходные я просто перезагрузился в Kubuntu 6.06 и вплотную занялся изучением opensync. После некоторого времени, проведенного за изучением ссылок и безуспешных попыток синхронизироваться, мне это все-таки удалось! Вот краткое описание процесса и найденных граблей. Установка и настройка opensync и сотоварищи Сначала добавим в sources.lst репозиторий с периодическими сборками opensync для debian и ubuntu. Я их нашел вот здесь: http://www.in.fh-merseburg.de/~jahn/ . Проходим по ссылке на OpenSync 0.21 Repository (возможно, когда вы будете это делать, там уже будет новая версия). Согласно тексту страницы, добавляем в sources.lst (или отдельный файлик в sources.lst.d - это на любителя) следующие строки (для Dapper): deb http://www.in.fh-merseburg.de/~jahn/opensync-0.21/ dapper main deb-src http://www.in.fh-merseburg.de/~jahn/opensync-0.21/ dapper main Затем забираем gpg-ключ от данного репозитория и импортируем его в apt: gpg --keyserver hkp://subkeys.pgp.net/ --recv-keys CB210090B029CB84 gpg --export CB210090B029CB84 | sudo apt-key add - Теперь берем свой любимый интерфейс к apt, обновляем информацию о доступных пакетах и устанавливаем следующие пакеты:
  • kitchensync-opensync
  • libopensync-plugin-kdepim
  • libopensync-plugin-syncml
  • libopensync-plugin-file
  • libqopensync0
  • msynctool
  • opensyncutils Я использовал aptitude: aptitude update aptitude install libopensync-plugin-file libopensync-plugin-kdepim \ libopensync-plugin-syncml opensyncutils kitchensync-opensync KitchenSync - это интерфейс к библиотеке opensync. Есть еще интерфейс командной строки, он называется msynctool. После установки всего софта переходим к настройкам. Сначала надо настроить bluetooth-соединение с телефоном. Для этого войдем в настройки Bluetooth на телефоне: Connect. -> Bluetooth (Связь -> Bluetooth). Включаем bluetooth и делаем телефон видимым для всех. Затем на компьютере запускаем hcitool scan Эта утилита производит поиск bluetooth-устройств и выводит их список с адресами и именами. Из полученного списка нам потребуется адрес телефона. Если в списке не появится ваш телефон, проверьте еще раз настройки bluetooth на нем. Теперь нужно "спарить" телефон и компьютер. Для этого в тех же настройках Bluetooth на телефоне переходим на вторую вкладку, где отображаются "спаренные" устройства. Выбираем Options -> New paired device (Функции -> Нов.сопр.устройство). Телефон начинает поиск bluetooth-устройств. Компьютер обычно (если иное не указано в /etc/bluetooth/hcid.conf) имеет имя %h-%d, где %h - это короткое имя хоста, а %d - номер bluetooth-устройства на компьютере. Жмем на него в списке найденных устройств, появляется предложение ввести pin для "спаривания". Вводим произвольный pin. Например, "12345". После этого на компьютере должно появиться окошко, предлагающее также ввести pin. Вводим тот же самый pin. Устройства должны "спариться". После успешного сопряжения, E50 спрашивает, нужно ли разрешить устройству доступ без уведомления. Рекомендую разрешить, иначе телефон будет просить разрешения на каждое обращение к нему с компьютера. Заодно теперь можно переключить bluetooth на телефоне в скрытый режим. Теперь, посмотрим какой канал rfcomm на телефоне отвечает за синхронизацию. Для этого выполним команду sdptool browse адрес_телефона | less Найдем в выводе команды службу "Nokia SyncML Server" и соответствующее значение Channel. У меня это 14. На других моделях телефонов могут быть другие значения. Это число пригодится нам при настройке syncml-плагина opensync. Собственно, синхронизация Перед синхронизацией с данными KDE, необходимо убедиться, что программы Kontact, Kaddressbook, Korganizer и Knotes не запущены, иначе KitchenSync не начнет синхронизацию. В качестве учебного примера использования opensync проведем синхронизацию адресной книги KDE с пустым каталогом. Заодно получим копию адресной книги для экспериментов с телефоном. Запускаем KitchenSync (K -> Служебные -> KitchenSync). Жмем там "Add Group". Вводим какое-нибудь имя, "test" например. Сейчас мы создали группу синхронизации. В группу синхронизации обычно входят два и более членов, синхронизирующих данные между собой. В открывшемся диалоге жмем "Add Member..." и добавляем "KDE Desktop". Это плагин, позволяющий синхронизировать PIM-данные KDE. Этот плагин не требует конфигурации. Теперь добавим второго члена к группе. Снова жмем "Add Member..." и добавляем "File Synchronization Plugin". Этот плагин позволяет синхронизироваться с хранилищем в виде нескольких файлов в каталоге. Его настройка заключается в выборе каталога, где будут располагаться (или уже располагаются) данные. Нажмем кнопку выборка каталога напротив поля "Directory name" и создадим новую папку в домашнем каталоге ("New folder" в открывшемся диалоге). Назовем ее sync. Выберем ее и нажмем "OK". Подкаталогов у нас не будет, поэтому синхронизировать их не надо, соответственно, галочку "Sync all subdirectories" не ставим. Все! Настройки группы закончены, жмем "OK". Не надо суетиться, если после нажатия кнопки "OK" она на какое-то время задумается - видимо, так надо. После того, как задумчивость пройдет, можно попробовать нажать ссылку "Synchronize Now" под вновь созданной группой в главном окне KitchenSync. Программа начнет получать данные из обоих источников (KDE-PIM и пустой каталог). Затем, на некоторове время задумается и выведет статус "Conflicts solved" - значит никаких конфликтов в данных найдено не было (еще бы - второй источник-то пустой). Затем еще немного подумает и начнет собственно обновление данных. Через некоторое время синхронизация будет завершена. Теперь в каталоге sync у нас полная копия PIM-данных (календарь, адресная книга и записки) из Kontact. Теперь подключим данные из этого каталога к адресной книге KDE. Для этого запустим Kontact, выберем слева "Контакты" и в блоке "Адресные книги" уберем галочки со всех имеющихся там книг (обычно, там одна книга - resource). Затем нажмем кнопку "Добавить..." и выберем тип адресной книги "Каталог". В появившемся диалоге можно ввести осмысленно название для этой адресной книги, формат нужно оставить "vCard", в поле "Расположение" нужно указать путь к нашей папке sync. После нажатия "OK" в блоке "Адресные книги" появится еще одна книга. Ее-то мы и будем использовать в дальнейшем. Кстати, синхронизировать теперь ее будет не с чем, поскольку данные адресной книги KDE теперь берутся именно из каталога sync. Но всегда можно ее отключить и подключить исходный вариант адресной книги простым расставлением галочек. Далее перейдем к синхронизации с телефоном. Для начала, посмотрим, что у нас в настройках самого телефона. В E50 профили синхронизации хранятся в пункте меню Connect. -> Sync (Связь -> Синхр.). Изначально там только один профиль - PC Suite. Его мы и будем использовать. Жмем на профиль и выбираем редактирование его опций. На что надо обратить внимание. Во-первых, названия баз в пункте Applications (Приложения) - в каждом из подпунктов (Contacts, Calendar, Notes, SMS) есть пункт Remote Database с именем базы. Эти имена пригодятся в дальнейшем при настройке syncml-плагина opensync. Кстати, синхронизация SMS по умолчанию отключена и у меня не редактируется (профиль только для чтения). Хотя мне оно и без надобности. Далее в пункте "Connection settings" (Парам. подключ.) нужно выставить в поле "Server version" версию 1.1. Синхронизация по версии 1.2 у меня не проходила, syncml-obex-plugin не мог договориться с E50. "Data bearer" выставлена в bluetooth изначально (в профиле PC Suite у меня она и не редактируется). "Host address" выставлен в "PC Suite". Это значение должно совпадать с полем Software Identifier в настройках плагина syncml opensync. Поля "User name" и "Password" должны быть пустыми (с ними я не экспериментировал). Поля "Allow sync requests" и "Accept all sync reqs." должны быть выставлены в "Yes". Снова запустим KitchenSync и создадим группу, скажем, "nokia". Добавим в нее плагин "KDE Desktop" и "SyncML over OBEX Client". Второй плагин позволяет синхронизировать данные с мобильными устройствами, поддерживающими SyncML через OBEX (по bluetooth или через USB-кабель). Теперь нужно настроить этот плагин. На вкладке "Connection" выбираем тип подключения (bluetooth/USB-кабель). В данной статье рассматривается подключение через bluetooth. В поле "Bluetooth address" вводим адрес телефона, который мы получили от "hcitool scan". В поле "Channel" вводим канал SDP, на котором в телефоне живет служба "Nokia SyncML Server", полученный от "sdptool browse". На вкладке "Databases" нужно убедиться, что базы данных начинаются с большой буквы. То есть, база контактов называется "Contacts", база календаря - "Calendar", записок - "Notes". Иначе при синхронизации базы не будут найдены. По умолчанию, у меня на вкладке были выставлены правильные имена. На вкладке "Options" поля Username и Password оставляем пустыми. Галочку "Use String Tables" лучше поставить, хотя четкого понимания, что именно она делает, я не получил. Самое адекватное описание на нее: Use wbxml string tables (Improves transmission size, but not supported by some phones). Синхронизация работает и с ней и без нее. Галочка "Only Replace Entries" по умолчанию снята, пусть так и остается. Она заставляет syncml-backend посылать команду REPLACE вместо команды ADD, что обычно делать не требуется. Когда именно это требуется я не знаю, наверное это описано в стандарте протокола SyncML. В поле "SyncML Version" выбираем версию 1.1. Далее, галочка "WAP Binary XML" должна быть установлена обязательно, поскольку обычный (не-binary) XML телефоном не поддерживается. В поле Software Identifier выставляем "PC Suite" (должен совпадать с именем хоста в настройках профиля синхронизации телефона). Поля Recieve Limit и Maximum Object Size оставляем равными нулю, что отключает лимиты на объем принятых данных и на размер одного принимаемого объекта. Настройка группы на этом закончена. Жмем "OK" и "Synchronize Now", чтобы начать синхронизацию. Если вам повезет, то синхронизация пройдет успешно. Тут главное не торопиться. Если все-таки вам не повезло, и телефон через какое-то время сказал, что истекло время ожидания, а KitchenSync еще делает вид, что работает, то можно попробовать прервать синхронизацию, пристрелить процессы kitchensync и osplugin и запустить его еще раз. Если вторая и третья попытка также не пройдут, то можно попробовать провести синхронизацию из консоли при помощи следующей команды: msynctool --sync nokia Если вам повезло и синхронизация прошла успешно, то можно попробовать поэкспериментировать с добавлением, редактированием и удалением записей на телефоне и в Kontact с последующей синхронизацией. Когда вы вдоволь наэкспериментируетесь, можно переходить к "боевой" синхронизации. Здесь важно помнить, что группа сохраняет настройки последней синхронизации, и если вы удалите все контакты из телефона, то opensync, ничуть не сомневаясь, может удалить их и из адресной книги KDE. Поэтому можно либо удалить группу и создать ее заново, либо удалить из каталога $HOME/.opensync и его подкаталогов все *.db файлы. Ссылки
  • http://www.wahlau.org/series_60_3rd_edition_nokia_n73_synchronization_with_opensync_under_ubuntu_edgy
  • http://ubuntuforums.org/showthread.php?p=2003903
  • http://ubuntuforums.org/showthread.php?t=260676
  • http://www.in.fh-merseburg.de/~jahn/
  • http://www.opensync.org/
  • http://en.opensuse.org/OpenSync/SyncML-OBEX-Client

  • << Предыдущая ИНДЕКС Правка src / Печать Следующая >>

    Обсуждение [ Линейный режим | Показать все | RSS ]
     
  • 1.1, gfdsa, 01:37, 15/03/2007 [ответить] [смотреть все]
  • +/
    хм, надоть попробовать, syncml через http после долгих тацеф кончился установкой funambol, что не совсем отвечает поставленным задачам...
    дам шанс syncml over obex... чем не шутит...
    E60
     
  • 1.2, Plastikman, 02:17, 15/03/2007 [ответить] [смотреть все]
  • +/
    Спасибо за статью. Попробовал, синхронизация контактов проходит, но процесс затыкается на календаре, рвется коннект. Пробовал синхронизировать только контакты. Все прошло успешно,но ничего не появилось в Kontact. Все чисто. Аппарат 6233.
     
     
  • 2.3, пробующий, 08:54, 15/03/2007 [^] [ответить] [смотреть все]
  • +/
    цитата: После этого на компьютере должно появиться окошко, предлагающее также ввести pin.
    простите, но какой софт выводит такое окошко? прямо из консоли как-то можно?
     
     
  • 3.5, Jay, 17:53, 15/03/2007 [^] [ответить] [смотреть все]
  • +/
    >цитата: После этого на компьютере должно появиться окошко, предлагающее также ввести pin.
    >
    >простите, но какой софт выводит такое окошко? прямо из консоли как-то можно?
    >

    Вот, какой софт - не скажу.. но в консоли, думаю, можно попробовать по-другому. Поведение компьютера при работе с bluetooth-устройствами задается в файле /etc/bluetooth/hcid.conf. По умолчанию, режим security стоит auto. В этом режиме для входящих соединений используется пин из файла /etc/bluetooth/pin (1234). У меня security выставлен в user, поэтому меня и спрашивали про pin.

    Еще вариант - инициировать сопряжение с компьютера (например, попытаться соединиться obexapp'ом).

     
  • 2.6, Jay, 18:02, 15/03/2007 [^] [ответить] [смотреть все]
  • +/
    >Спасибо за статью. Попробовал, синхронизация контактов проходит, но процесс затыкается на календаре,
    >рвется коннект. Пробовал синхронизировать только контакты. Все прошло успешно,но ничего не
    >появилось в Kontact. Все чисто. Аппарат 6233.

    По урле
    http://www.opensync.org/wiki/DeviceCompatibilityList
    есть упоминания про успешную синхронизацию 6230 и 6230i

    Могу порекомендовать попробовать синхронизацию телефона с file plugin при помощи утилиты msynctool. Оно как-то нагляднее.

    Еще вариант - посмотрите здесь
    http://en.opensuse.org/OpenSync/SyncML-OBEX-Client
    как используется утилита syncml-obex-client (не могу вспомнить название пакета, из которого она ставится - поищите через aptitude search). Это утилита для тестирования syncml.

     
  • 1.4, Flyheart, 16:58, 15/03/2007 [ответить] [смотреть все]  
  • +/
    Люблю линукс, но синхронизацию телефонов ему  не доверю. См статью, объем говорит сам за себя - для повседневной работы пока синхронизация не готова.
    Подсмотрели бы как это изящно на маке реализовано - просто прелесть. Синхронизация всех моих аппаратов (Nokia6021, MotoRazrv3, Soneric t68i, и собсно комп) происходит за один!!! клик мышки и причем одновременно. Причем многие контакты на русском.
    И не важен порядок ввода/изменения/удаления и на каком аппарате.
    В результате во всех девайсах одинаковая адресная книга и календарь.
    Очень надеюсь что в кде4 сделают как надо.
     
     
  • 2.11, maksim, 06:12, 11/04/2007 [^] [ответить] [смотреть все]  
  • +/
    а подробнее можно?  ОСь ? Софт ?
     
  • 1.7, gfdsa, 03:34, 19/03/2007 [ответить] [смотреть все]  
  • +/
    спасибо за точок, таки да через обекс завелось, правда календарь пимкде-шный не все vevents жрет... но с этим разберемся.
     
  • 1.8, Jay, 00:53, 01/04/2007 [ответить] [смотреть все]  
  • +/
    Обновил пакеты opensync до 0.22-dapper1... после этого E50 перестала синхронизироваться.. Правда, я обновлял пакеты Kubuntu 6.06 в целом, возможно, что дело не только в opensync. Однако не проходит синхронизация как с плагином kdepim, так и с file. Пойду искать очередные грабли..
     
  • 1.9, Jay, 00:44, 05/04/2007 [ответить] [смотреть все]  
  • +/
    Синхронизироваться оно все-таки начало.. Причем само по себе. Пока тестил только на контактах и с file-sync.
    Еще складывается ощущение, что больше 100 контактов в первый заход (с пустой книгой на трубе) opensync почему-то не заливает..
    Буду изучать дальше..
     
  • 1.10, Jay, 02:15, 05/04/2007 [ответить] [смотреть все]  
  • +/
    В общем, мне удалось-таки залить на трубу все контакты из каталога (куда они сливались через экспорт из Kontact). Алгоритм следующий:
    1. Экспортим 100 контактов из Kontact в каталог.
    2. Синхронизируем каталог с трубой.
    3. Добавляем в этот каталог остатки.
    4. Снова синхронизируем каталог с трубой.

    Труба в процессе может просто повиснуть, отвалиться или выдать System Error. После System Error трубу надо перезагружать.

    В общем, пляски с бубном.. Скорее всего какое-то время контакты теперь будут синхронизироваться вручную :)

    P.S. Опцию Recieve Limit в конфиге syncml-obex-plugin лучше поставить в 10000. У меня после этого резко повысилась стабильность синхронизации. По крайней мере, она хотя бы всегда начиналась.

     
  • 1.12, Donskoy, 10:02, 17/06/2009 [ответить] [смотреть все]  
  • +/
    в KDE4 не работает. нет здесь kitchensync-opensync
    и libopensync-plugin-kdepim
    через multisync-gui синхронизация не пашет, хотя настройки аналогичные
    есть решение?
     
  • 1.13, ИРИНА, 13:55, 17/03/2011 [ответить] [смотреть все]  
  • +/
    ГДЕ ВЗЯТЬ PIN,ЧТОБЫ ВВЕСТИ ЕГО В ТЕЛЕФОН ПРИ НАСТРОЙКЕ БЛЮТУС С ТЕЛЕФОНА НА КОМПЬЮТЕР?
     

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





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