Итак, свершилось наконец, я нашел-таки девайс который, скорее всего, позволит мне не только подрубить телефонный аппарат к VoIP-сети через линюховый сервер, но и возможно, наладить такие радости, как переадресацию звонков с домашнего на мобильник за разумные деньги.
Итак, звать девайс SkypeMate USB-B2K. Вообще, на сайте даже идет в комплекте с ним какая-то фигня под линюховый скайп, но мы, как вы понимаете, не ищем легких путей, нам подавай что-нибудь поинтереснее. Ближайшее исследование аппарата показывает что он на самом деле родился далеко в компании Yealink в Китае, (ну а где еще) и никакого прямого отношения к Skype не имеет. Драйвера для более старых родственников этого девайса давно есть в ядре (2.6.17) но там старая версия, гораздо прогрессивнее (и с API в комплекте) текущая версия этого пакета. Правда никаких ебилдов и прочей радости, собирайте все на месте. Но со сборкой проблем не наблюдается.
Итак, девайс представляет собой USB-звуковуху, совершенно обыкновенную, с двумя входами и двумя выходами — одна пара на телефонную линию, другая на подключенный аппарат. В одном флаконе с оной состоит HID-устройство, которое обеспечивает переключение режимов, а также такую интересную вещь как прием нажатий тоновых кнопок, распознанных с аппарата — а возможно и с линии, хотя это я пока не проверял. Именно драйвер последнего обеспечивается вышеупомянутым.
Драйверу понадобились опции:
options yealink default_model=B2K
Он также должен загружаться до hiddev, для чего потребовалось перебрать ядро, потому что у меня hiddev туда был вкомпилирован…
После того как драйвер зацепился и встал на место, можно запускать идущую в CVS-комплекте usbb2k-api, которая подцепляется на все то, что вывешивает драйвер, и выдает это в виде сокета. Из сокета приходят сообщения о нажатиях клавиш, звонке, поднятии-опускании трубы на телефоне, сокету отправляются команды “переключи телефон на линию/переключи телефон на звуковуху”. Пока не ясно, все ли фичи поддерживаются, но сделать прием звонков из VoIP и звонки по VoIP я смогу однозначно.
Самое интересное — что я не убежден что для работы usbb2k-api необходим этот модуль в ядре. Они, похоже, как-то сами по себе, и драйвер в ядре пока что умеет не все, что умеет usbb2k-api. То бишь возиться и перегружаться было не обязательно. :)
