MyLifeSucks.de Logo News | Fireblade Repsol | Webcam Kiel | BlinkenCUBE | Open Source MAX7456 OSD Software | HiFi & Heimkino | Ehemalige Hebbelschüler ABI 2003 | Über mich/Impressum

Yealink-USB-P1K-VOIP-Phone


Yealink USB P1K VOIP Phone

Gekauft bei Conrad als "VOIP-TELEFON HAGENUK VOIPTEL 40" (Artikel-Nr.: 922822 - 62, fü 29,95€) entpuppte sich das Gerät als Yealink USB Hand Phone Model USB-P1K.
Die Ähnlichkeit wird auch schnell deutlich wenn man die Angaben von Conrad und Yealink vergleicht:

Conrad

Yealink

Highlights

  • VoIP komfortabel nutzen
  • Anschluss über USB
  • Rauschunterdrückung

Ausstattung:

  • 2zeiliges Display
  • Rufnummernanzeige
  • Speicher für je 199 eingegangene und gewählte Rufnummern
  • Optische Anrufanzeige über LED
  • Tonruf einstellbar
  • Benötigt keine zusätzliche Stromversorgung oder Soundkarte
  • USB 1.1 und 2.0 kompatibel
  • Rauschunterdrückung und Echominimierung
  • Unterstützt z.B. Netmeeting / Messenger, Mediaring, Net2phone, Dialpad
  • Für Windows® 98, 2000, XP und ME.

Feature

  • With LCD, keypad and ringer, easy to use like mobile phone
  • Phone rings for all incoming calls, ring style and volume selectable
  • Caller ID function of skype calls
  • Dial skype contacts (speed dial number) and skypeout number by phone keypads
  • 199 incoming calls and 199 dialed numbers
  • Echo cancellation, noise reduction, full duplex communication
  • PC-to-PC, PC-to-phone, Phone to Phone operation

Hardware

  • No external power required
  • USB power LED indicator
  • Driver and sound card built-in

Interface

  • 1 USB interface to PC

System requirement

  • Windows 2000 or XP
  • 400 MHz processor and free USB1.1 or USB2.0 port
  • 128 MB RAM and 15 MB free disk space
  • Internet Connection (33.6 Kbps modem, or any broadband: cable, ADSL.)

Ergaenzen kann man das es auf der Yealink Website unter Download - For other users auch die "Mates" für andere Softphones unter Windows neben Skype gibt.
  • X-TenMate for windows (Driver for X-Ten, eyeBeam auch xlite)
  • SJphoneMate for windows (Driver for SJphone, Support USB-P1K)
  • Net2phoneMate for windows (Driver for net2phone)
  • VoipBusterMate for windows (Support P1K,P6S,B2K,P3K,P4K,P5D,P8D,W1D)
  • VoipBusterMate for windows (Driver for VoipBuster)
  • GoogleTalkMate for windows (Driver for google talk)
  • NortelMate for Softphone i2050 (Driver for Nortel IP Softphone i2050)
  • Firefly for windows Driver build-in, Support USB-P1K

Somit werden alle gängigen Softphones unterstützt, sehr praktisch vor allem die Tastatur. Somit kann man sein Softphone minimiert haben und trotzdem waehlen und "abheben".
Allerdings hat keiner der beiden Distributoren/Hersteller das wichtigste erwaehnt: Die volle Unterstützung unter Linux.
Der Audio Teil wird durch usb-audio abgedeckt, das display und die Knouml;pfe werden von einem extra Modul names yealink unterstützt.
In aktuellen 2.6er Kerneln ist das Modul schon standardmaessig enthalten (noch als EXPERIMENTAL eingestuft, also nur auswaehlbar wenn man sich diese Treiber auch anzeigen laesst) und muss nichtmehr eingepatcht werden, eine Dokumentation findet man im Kernel Source Verzeichniss unter Documentation/input/yealink.txt.

Entsprechender Eintrag in der Kernel-Hilfe:
CONFIG_USB_YEALINK:

Say Y here if you want to enable keyboard and LCD functions of the
Yealink usb-p1k usb phones. The audio part is enabled by the generic
usb sound driver, so you might want to enable that as well.

For information about how to use these additional functions, see
Documentation/input/yealink.txt.

To compile this driver as a module, choose M here: the module will be
called yealink.

Symbol: USB_YEALINK [=m]
Prompt: Yealink usb-p1k voip phone
  Defined at drivers/usb/input/Kconfig:243
  Depends on: USB && INPUT && EXPERIMENTAL
  Location:
    -> Device Drivers
      -> USB support

Wichitg ist das man das ganze als Modul kompiliert wenn man auch HID Geräte nutzt (den usbhid-Treiber dann auch als modul und NACH dem yealink laden). Denn wenn einkompiliert erkennt der HID Treiber das Telefon zuerst und der unterstuetzt die ganzen Sachen nicht.

Der Soundteil wird ja von usb_audio abgedeckt, wer probleme mit seinem Softphone hat sollte erstmal direkt mit den alsa-tools testen indem er die richtigen devices des Phones sucht (bei meinem Laptop ist es card 2 da 0 die onboard karte ist und 1 das modem):
cascade@hermes:~$ arecord -l
**** List of CAPTURE Hardware Devices ****
card 0: V8235 [VIA 8235], device 0: VIA 8235 [VIA 8235]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: V8235 [VIA 8235], device 1: VIA 8235 [VIA 8235]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: modem [VIA 82XX modem], device 0: VIA 82XX modem [VIA 82XX modem]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 2: default [VOIP USB Phone], device 0: USB Audio [USB Audio]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
cascade@hermes:~$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: V8235 [VIA 8235], device 0: VIA 8235 [VIA 8235]
  Subdevices: 4/4
  Subdevice #0: subdevice #0
  Subdevice #1: subdevice #1
  Subdevice #2: subdevice #2
  Subdevice #3: subdevice #3
card 0: V8235 [VIA 8235], device 1: VIA 8235 [VIA 8235]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: modem [VIA 82XX modem], device 0: VIA 82XX modem [VIA 82XX modem]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 2: default [VOIP USB Phone           ], device 0: USB Audio [USB Audio]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
cascade@hermes:~$
dadraus folgt bei mir das mein usb-phone card 2 und device 0 ist, also konkret:
arecord -v -d 10 -r 8000 -f S16_LE -t wav  -D hw:2,0 foobar.wav
kann ich mit aufnehmen und hinterher mit
aplay -D hw:2,0 foobar.wav
abspielen, tut einwandfrei.
mixereinstellungen mach ich mit
alsamixer -c 2
(ist ja card 2)


Wer deutsches Tastaurlayout nutzt wird schnell auf ein Problem stossen: Die Raute-Taste (#) sendet einen Paragraphen (§).
Das liegt daran, dass der Input-Wrapper beim Tastendruck auf dem Telefon "Shift-3" sendet (was auf englischem Layout eine Raute ist), da man aber z.B. zum vorwaehlen der einzelnen Proxies doch oefters mal braucht und man ja doch durchaus gerne das gesendet bekommt was man auch drueckt kann man das in den Kernel-Sourcen leicht selbst aendern.
Dazu oeffnet man die Datei drivers/usb/input/yealink.c und aendert folgendes:
      case 0x32: return KEY_LEFTSHIFT |
                          KEY_3 << 8;   /*   #                */
um in:
      case 0x32: return KEY_BACKSLASH;/*   #                */
und kompiliert ggf das Modul neu. Da es nur so wenig ist lohnt sich nen diff hier wohl nicht. Hat zwar gedauert bis ich auf die Idee kam aber funktioniert bei mir bestens.

Mit einem einfachen Shellscript ist es dann auch moeglich die Uhrzeit ausgeben zu koennen, eine einfache und nachvollziehbare Version waere wie folgt:

#! /bin/sh

PATH=/sbin:/bin:/usr/sbin:/usr/bin
NAME=yealinktime
DESC="Sends Time to Yealink VOIP-Phone"

while true; do
  if [ -f `find /sys -name get_icons` ]; then
    BASEDIR=`find /sys -name get_icons | sed 's/get_icons//'`
    DAY=`date '+%w'`
    case "$DAY" in
      0)
      WEEKDAY="  .      "
      ;;
      1)
      WEEKDAY="   .     "
      ;;
      2)
      WEEKDAY="    .    "
      ;;
      3)
      WEEKDAY="     .   "
      ;;
      4)
      WEEKDAY="      .  "
      ;;
      5)
      WEEKDAY="       . "
      ;;
      6)
      WEEKDAY="        ."
      ;;
    esac
    date +"%m.%e.%k:%M    %S"  | sed 's/^0/ /' > ${BASEDIR}line1
    echo -en "$WEEKDAY" > ${BASEDIR}line2
    echo -en "Linux  rocks" > ${BASEDIR}line3
  fi
  sleep 1;
done

Das script schreibt nur ins sysfs wenn das Telefon eingesteckt ist und erkennt auch welche USB-Device-ID es bekommen hat.
Valid XHTML 1.0! Valid CSS