RU Linux
Если сотовый с Mini-USB разъемом подключить к USB-порту компьютера под управлением ОС на основе современного ядра Linux, то в выводе команды просмотра сообщений ядра dmesg можно увидеть такое:
cdc_acm 2-1:1.0: ttyACM0: USB ACM device
usbcore: registered new interface driver cdc_acm
drivers/usb/class/cdc-acm.c: v0.25:USB Abstract Control Model driver for USB modems and ISDN adapters
После этого в системе появляется файл /dev/ttyACM0, через который с телефоном можно делать разные штуки.
Подключение к интернету в Linux по GPRS
Нужна звонилка, например kppp, в качестве адреса устройства модема указываем /dev/ttyACM0.
Указываем строку инициализации модема для Билайн AT+CGDCONT=1,»IP»,»internet.beeline.ru», для МТС AT+CGDCONT=1,»IP»,»internet.mts.ru» и для Мегафон AT+CGDCONT=1,»IP»,»internet»
В качестве номера звонка используем *99# или *99***1#.
Логин/пароль всегда beeline/beeline, mts/mts или gdata/gdata для Билайна, МТС и Мегафона соответственно.
UPD: В Debian/Ubuntu не забываем добавиться в группу dip и, при использовании kppp, раскомментировать noauth в файле /etc/ppp/peers/kppp-options
Синхронизация адресной книги с компьютером, отправка и просмотр СМС в KMobileToos
Программе KMobileToos требуются библиотеки KDE для работы, в Debian/Ubuntu устанавливается пакетом kmobiletools, выглядит так:
В настройках нужно указать все тот же файл /dev/ttyACM0 и выбрать тип телефона: Generic GSM, Nokia, Motorolla, Erisson. Программа умеет показывать уровень заряда батареи и дзынькать при полной зарядке телефона, показывать уровень связи, синхронизировать контакты с KAddressBook, читать контакты в телефоне, читать сохраненные СМС, отправлять СМС и делать звонки с компьютера. Последнее я не понял зачем нужно. Работает это все через AT-команды для большинства телефонов.
Аналог под Gnome называется Gnome Phone Manager. Более мощная порграмма на GTK для синхронизации мобильника и компьютером с поддержкой туду-листа и календаря называется Wammu, работает через консольную программу gammu. Интеграция с gammu появилась в KMobileToos в версии 0.5, которая пока находится в стадии беты.
Скачивание и загрузка файлов в телефоны Motorola с помощью Moto4lin
Это бывает полезно для установки J2ME-приложений, картинок/рингтонов на телефоны, где это нельзя сделать в режиме USB Mass Storage. Программа Moto4lin в Debian/Ubuntu устанавливается одноименным пакетом и умеет работать с файловой системой большинства современных телефонов Motorola через фирменный протокол P2K. Написана на Qt3, не требует KDE, выглядит так:
Программа работает нормально только под root, поэтому для запуска из под пользователя нужно выставить suid-бит на исполняемый файл командой:
# chmod u+s /usr/bin/moto4lin
В настройках нужно указать ACM Device /dev/ttyACM0, Set P2K Vendor ID 22b8, Set P2K Product ID 4901:
После этого в логе внизу должно быть написано Phone pluged as P2K, нажимаем Connect, потом Update list и можно гонять файлы.
Аналог на GTK для телефонов Nokia называется gMobileMedia, работает на gammu.
Спасибо за статью. Как раз кстати. Недавно купил себе новый мобильник SE k530i. Поддерживаемая синхронизация с Вистой меня не очень устроила. Соединить телефон c убунтой я и не надеялся 🙂 Сейчас попробовал kmobiletools, там какие-то проблемы с кодировкой. Поставил Wammu (как раз пользуюсь Gnome) — то, что надо.
Да, найти как называется нужная программа под Linux бывает труднее, чем заставить ее работать 🙂 Если поискать «mobile» по репозитариям (в Synaptic можно) то кроме упомянутых программ для работы с телефонами потенциально полезны: gmobilemedia, xgnokii, gnome-phone-manager, gsm-utils, kandy, scmxx (для Siemens), synce-kpm (для Windows Mobile).
В настройках kmobiletools есть поле для ввода кодировки, наверняка заработает если попробовать UTF-8 или одну из однобайтовых кириллических кодировок.
Вот спасибо! Как-нибудь из спортивного интереса потыркаюсь. Обычно хватает флэш-карты и картридера))
Для нокии хорошо юзать obexftp. Через кабель видит фс симбиан смартфонов, но только флэху.
Подскажите еще кое что. Мой телефон может определятся как флешка. Вот вывод сообщений ядра [40425.152080] usb 4-2: new full speed USB device using uhci_hcd and address 4
[40425.349114] usb 4-2: configuration #1 chosen from 1 choice
[40425.397982] scsi6 : SCSI emulation for USB Mass Storage devices
[40425.400628] usb-storage: device found at 4
[40425.400633] usb-storage: waiting for device to settle before scanning
[40430.401356] usb-storage: device scan complete
[40430.404565] scsi scan: INQUIRY result too short (26), using 36
[40430.404574] scsi 6:0:0:0: Direct-Access FLASH DI SK — 6218B PQ: 0 ANSI: 0 CCS
[40431.203211] sd 6:0:0:0: [sdd] 124545 512-byte hardware sectors: (63.7 MB/60.8 MiB)
[40431.206183] sd 6:0:0:0: [sdd] Write Protect is off
[40431.206188] sd 6:0:0:0: [sdd] Mode Sense: 03 00 00 00
[40431.206193] sd 6:0:0:0: [sdd] Assuming drive cache: write through
[40431.217186] sd 6:0:0:0: [sdd] 124545 512-byte hardware sectors: (63.7 MB/60.8 MiB)
[40431.220708] sd 6:0:0:0: [sdd] Write Protect is off
[40431.220714] sd 6:0:0:0: [sdd] Mode Sense: 03 00 00 00
[40431.220718] sd 6:0:0:0: [sdd] Assuming drive cache: write through
[40431.220728] sdd: sdd1
[40431.250372] sd 6:0:0:0: [sdd] Attached SCSI removable disk
[40431.250483] sd 6:0:0:0: Attached scsi generic sg4 type 0
[40435.428116] sd 6:0:0:0: [sdd] Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE,SUGGEST_OK
[40435.428125] sd 6:0:0:0: [sdd] Sense Key : Medium Error [current]
[40435.428133] sd 6:0:0:0: [sdd] Add. Sense: Recorded entity not found
[40435.428142] end_request: I/O error, dev sdd, sector 124544
[40435.428149] __ratelimit: 191 callbacks suppressed
[40435.428154] Buffer I/O error on device sdd, logical block 124544
[40435.428270] sd 6:0:0:0: [sdd] Result: hostbyte=DID_ERROR driverbyte=DRIVER_OK,SUGGEST_OK
[40435.428277] end_request: I/O error, dev sdd, sector 32
[40435.428282] Buffer I/O error on device sdd, logical block 32
[40435.428287] Buffer I/O error on device sdd, logical block 33
[40435.428292] Buffer I/O error on device sdd, logical block 34
[40435.428297] Buffer I/O error on device sdd, logical block 35
[40435.428301] Buffer I/O error on device sdd, logical block 36
[40435.428306] Buffer I/O error on device sdd, logical block 37
[40435.428311] Buffer I/O error on device sdd, logical block 38
[40435.428315] Buffer I/O error on device sdd, logical block 39
[40435.428320] Buffer I/O error on device sdd, logical block 40
[40435.428390] sd 6:0:0:0: [sdd] Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE,SUGGEST_OK
[40435.428396] sd 6:0:0:0: [sdd] Sense Key : Medium Error [current]
[40435.428402] sd 6:0:0:0: [sdd] Add. Sense: Recorded entity not found
[40435.428408] end_request: I/O error, dev sdd, sector 124544
[40435.428520] usb 4-2: USB disconnect, address 4
[40435.438523] sd 6:0:0:0: [sdd] Result: hostbyte=DID_NO_CONNECT driverbyte=DRIVER_OK,SUGGEST_OK
[40435.438534] end_request: I/O error, dev sdd, sector 124536
незнаю, для начала надо гуглить что эти ошибки значат и как их исправлять, можно попробовать разные версии ядра, те что поновее, написать баг-репорт в конце концов
Гуглил. Не помогае. Мобила старая, ядро новое — по этому врядли кто то этим займется.
Источник
Linux USB phone howto
Документ описывает установку и настройку USB телефона для Linux, на базе Yealink P1K. В результате было достигнуто полное управление вызовами с телефона, без участия мышки и клавиатуры.
Введение
Всегда хотелось иметь мобильный VoIP телефон. Это такой телефон, который всегда с тобой, прямо как мобильник, но при этом это VoIP телефон, т.е. подключенный к твоему собственному серверу IP АТС (варианты типа Nokia E65 и аналогичные не предлагать, не хочется греть уши мобильной Wi-Fi микроволновкой, поэтому остаются только USB телефоны). Пользователям Windows жить просто, всякие там X-Lite и прочие включают в себя драйвера для всевозможных USB телефонов, а всевозможные USB телефоны поставляются с диском с разными софтфонами. А вот тем, у кого на десктопе Linux, легкие пути заказаны Но тем не менее, в путь!
Выбор USB телефона
Гуглинг на тему «linux usb phone» показал, что практически единственным телефоном, который удалось успешно подключить, оказался Yealink P1K USB phone. При этом, половина пытавшихся так и не смогла его подключить. Ну что же, давайте попробуем.
Установка
Не буду описывать длинный путь, проделанный в процессе хождения по граблям. Скажу только спасибо Томасу Рейтмайру, автору пакета Yeaphone www.devbase.at/voip/yeaphone.php, за его отзывчивость и помощь. Итак, чтобы получить мобильный VoIP phone, нужны следующие компоненты: — USB телефон P1K — модуль ядра p1k yealink.ko — программный телефон linphone. — пакет yeaphone.
USB phone Yealink P1K и модуль ядра yealink.ko
Начиная с какой-то версии, Linux содержит в разделе Device drivers → Input device support → Miscellaneous devices → Yealink usb-p1k voip phone. Однако, данный модуль устарел! Надо брать модуль с сайта Томаса. Судя по всему, это его домашняя машина, поэтому копия файлов, актуальная на момент написания этой статьи приложена сюда же (Revision: 142). Как сказал Томас:
You might own a P1KH (USB ID 6993:b700) which uses a slightly different
communication protocol compared to the P1K. The P1K is the only model
supported by the kernel module shipped with the regular Linux kernel.
However if yours is a P1KH (or a B2K, B3G, P4K) then you should try my
version of this module:
svn co —username guest —password readonly svn://devbase.homelinux.org:5070/voip/yealink-module
Это как раз был мой случай, и вывод lsusb доказал это:
explorer t2-trunk # lsusb
.
Bus 003 Device 019: ID 6993:b700 Freshtel
Модуль без проблем собрался на моем относительно свежем 2.6.31-gentoo.Сборка проста:
max@explorer /tmp/yealink-module/trunk $ make
make -C /usr/src/linux SUBDIRS=`pwd` modules
make[1]: Entering directory `/usr/src/linux-2.6.31-gentoo-r6′
CC [M] /tmp/yealink-module/trunk/yealink.o
Building modules, stage 2.
MODPOST 1 modules
CC /tmp/yealink-module/trunk/yealink.mod.o
LD [M] /tmp/yealink-module/trunk/yealink.ko
make[1]: Leaving directory `/usr/src/linux-2.6.31-gentoo-r6′
max@explorer /tmp/yealink-module/trunk $
Получившийся файл нужно отправить в нужное место:
cp yealink.ko /lib/modules/2.6.31-gentoo-r6/kernel/drivers/input/
Софтфон linphone и обертка yeaphone
Другая «ложная дорога» заключается в версии софтфона linphone. Дело в том, что все пакеты, опубликованные на сайтах, предназначены для версий ветки 2.x, а все свежие дистрибутивы устанавливают linphone версии 3.x. Например, у меня установлен net-voip/linphone-3.1.1. Именно с версией связана ошибка сборки yeaphone, что-то типа такого:
home/adyna/Desktop/yeaphone-0.1.6/src/ylcontrol.c:578: undefined reference to `gstate_get_state’
/home/adyna/Desktop/yeaphone-0.1.6/src/ylcontrol.c:579: undefined reference to `gstate_get_state’
/home/adyna/Desktop/yeaphone-0.1.6/src/ylcontrol.c:580: undefined reference to `gstate_get_state’
Дело в том, что в 3-й ветки изменили API. Томас сделан патч, но почему-то не обновил пакеты tar.gz, и нормально компилирующийся код лежит только в svn. Если возникает какая-то проблема сбоки, рекомендую прочесть раздел комментариев на сайте Томаса. Для Вашего удобства также прилагаю к статье и пакет с yaphone.
Борьба с usbhid
Даже после того, как я все собрал, попытка запуска yaphone приводила к сообщению:
No appropriate handset found, exiting.
А выглядело это так:
usbcore: registered new interface driver yealink
yealink: Yealink phone driver: 20090418 (C) Thomas Reitmayr, Henk Vergonet
usb 3-1: USB disconnect, address 22
usb 3-1: new full speed USB device using uhci_hcd and address 23
usb 3-1: configuration #1 chosen from 1 choice
generic-usb 0003:6993:B700.0020: hiddev0,hidraw3: USB HID v1.10 Device [Yealink Network Technology Ltd. VOIP USB Phone ] on usb-0000:00:1a.1-1/input3
Все дело в том, что модуль usbhid «забирает» себе устройство, и модуль yealink его не видит. Если отгрузить модуль usbhid (внимание, тут остаемся без мышки), и временно переместить usbhid.ko, скажем, в tmp, перезагрузить модуль yealink, и воткнуть телефон, то сообщение dmesg будет таким:
yealink: Yealink phone driver: 20090418 (C) Thomas Reitmayr, Henk Vergonet
usb 3-1: new full speed USB device using uhci_hcd and address 19
usb 3-1: configuration #1 chosen from 1 choice
yealink: Detected Model USB-P1KH (Version 0x1005)
yealink: Serial Number ff0adb4abc96
input: Yealink USB-P1KH as /devices/pci0000:00/0000:00:1a.1/usb3/3-1/3-1:1.3/input/input20
Как видим, телефон определился, и показал свой серийный номер. Чтобы не приходилось каждый раз вручную играться с модулем, необходимо добавить правило в udev, которое будет вызывать скрипт, «отцепляющий» телефон от usbhid и «прикрепляющий» его к yealink. Скрирт приведен в приложении, а вот вывод его работы:
explorer /tmp # sh /tmp/rebind-yealink.sh
Found Yealink phone at /sys/devices/pci0000:00/0000:00:1a.1/usb3/3-1
found HID interface at 3-1:1.3
successfully detached driver ‘usbhid’
successfully reattached driver ‘yealink’
explorer /tmp #
Вывод dmesg подтвердит, что все прошло успешно.
udev и разрешения
Последним штрихом является адаптация /etc/udev/rules.d/99-yealink.rules
# cat /etc/udev/rules.d/99-yealink.rules
KERNEL==»event*», ATTRS
ACTION==»add|change», SUBSYSTEMS==»usb», ATTRS
Обратите внимание, что вместо max нужно вставить группу, под которым работает Ваша учетная запись. Чтобы увидеть свои группы, выполните команду groups. Скрипт rebind-yealink.sh есть в приложении. Если при запуске телефон выдает нечто такое:
$ yeaphone
path_sysfs = /sys/bus/usb/drivers/yealink/5-1:1.3/
path_event = /dev/input/event11
/sys/bus/usb/drivers/yealink/5-1:1.3/model: Permission denied
Detected handset Yealink USB-P1K
/sys/bus/usb/drivers/yealink/5-1:1.3/line2: Permission denied
/sys/bus/usb/drivers/yealink/5-1:1.3/line1: Permission denied
/sys/bus/usb/drivers/yealink/5-1:1.3/line3: Permission denied
/sys/bus/usb/drivers/yealink/5-1:1.3/hide_icon: Permission denied
это значит, что надо разбираться с 99-yealink.rules — он либо не отрабатывает из-за синтаксической ошибки, либо допущена ошибка в учетной записи. cd /sys/bus/usb/ и смотреть разрешения.
Стартап
Прописать в стартап запуск телефона (rc.local, local.start или как в Вашем дистрибутиве правильно):
su — max -c ‘/usr/local/bin/yeaphone -w’ > /dev/null 2>&1 &
Тут также надо изменить max на имя Вашей учетной записи.
Настройка
Учетная запись SIP
- Это можно сделать двумя способами:
- Запустить графический интерфейс linphone-3 (если собирали), и в нем настроить учетную запись .
- выполнить конфигурацию из консоли. Приведем пример из консоли:
linphonec> proxy add
Adding new proxy setup. Hit ^D to abort.
Enter proxy sip address: sip:sipnet.ru
Your identity for this proxy: sip:1234567890@sipnet.ru
Do you want to register on this proxy (yes/no): yes
Specify register expiration time in seconds (default is 600): 180
Expiration: 180 seconds
Specify route if needed:
No route specified.
———————————————
sip address: sip:sipnet.ru
route:
identity: sip:1234567890@sipnet.ru
register: yes
expires: 180
registered: no
———————————————
Accept the above proxy configuration (yes/no) ?: yes
Proxy added.
linphonec> Registration on sip:sipnet.ru successful.
linphonec> Registration on sip:sipnet.ru successful.
linphonec>
Конфигурация audio
Далее необходимо настроить используемое аудио-устройство. Если собрался GTK интерфейс, то можно сделать это в нем, иначе следующим образом:
linphonec> soundcard list
0: ALSA: default device
1: ALSA: HDA Intel
2: ALSA: VOIP USB Phone
linphonec> soundcard use 2
Using sound device ALSA: VOIP USB Phone
linphonec>
Эта команда настроит все звуковые каналы (playback, capture & ring) на использование USB телефона.
Настройка Yeaphone
/.yeahonerc содержит конфигурацию, а папка
max@explorer /tmp $ cat
/.yeaphonerc
intl-access-code 810
natl-access-code 8
country-code 7
display-id » —123—»
ringtone_default default_p1k.bin
#ringtone_default default_p1kh.bin
#ringtone_default falling2_p1k.bin
#ringtone_default falling_p1k.bin
#ringtone_default rising_p1k.bin
#ringtone_default special_p1k.bin
Рингтоны противные, было бы здорово, если бы кто-то добавил свои более мелодичные, типа «в траве сидел кузнечик»…
Также, надо убедиться, что настроен только один прокси сервер, и он же выбран как default в файле
/.linphonerc. Если Вы получаете такое сообщение
Warning: Could not parse given sip address. A sip url usually looks like sip:user@domain
то это значит, что надо подредактировать ручками
Заключение
В результате, как только я подключаю USB телефон Skype mate P1K к своему ноутбуку, в течение максимум 10 секунд он подключается к серверу. Как только я вытаскиваю USB кабель из ноута, софтфон снимает регистрацию. За уже 3-й день эксплуатации проблем не обнаружено.
Источник