NSLU2-Linux
view · edit · print · history

HowTo.ConnectUSBPhone History

Hide minor edits - Show changes to markup

October 06, 2008, at 09:23 PM by Thomas Reitmayr -- Removed some duplicate text
Changed lines 147-152 from:
    <h2>Using Yeaphone</h2>

    <p>When invoking <i>yeaphone</i> the output on the console should
    look similar to this:</p>
to:
August 10, 2008, at 09:15 AM by Thomas Reitmayr -- Added description of the command-line options
Changed line 11 from:
to:
Added lines 211-218:

For special use cases Yeaphone provides a few command-line options. In a multi-head environment you may choose a specific handset (out of multiple connected devices) using the option --id. With option -w or --wait the application can be instructed to wait for the device to be connected and to not terminate if the device gets disconnected.

    --id=<id>       Attach to the device with an ID <id>.
    --wait=[<sec>]  Check for the handset every <sec> seconds.
    -w              Check for the handset every 10 seconds.
    --help|-h       Print this help message.
August 10, 2008, at 09:05 AM by Thomas Reitmayr -- Moved to Yeaphone 0.1.5
Changed lines 29-30 from:
  • Linphone 1.6.0 + a patch for Linphone 1.6.0 (Note: Linphone >= 1.7.1 already includes all patches)
  • Yeaphone 0.1
to:
  • Linphone >= 1.7.1
  • Yeaphone 0.1.5
Changed lines 35-38 from:

For SlugOS/BE 3.10beta downloading the necessary files into the cross-compile environment could look like:

[@cd ~/releases/slugos-3.10-beta/openembedded/packages/linphone/

wget http://download.devbase.at/voip/linphone_1.6.0.bb

to:

For SlugOS/BE 4.8beta downloading the necessary files into the cross-compile environment could look like:

[@cd ~/slugos-4.8-beta/openembedded/packages/linphone/

wget http://download.devbase.at/voip/linphone_2.1.1.bb

Changed lines 41-43 from:

wget http://download.devbase.at/voip/yeaphone_0.1.bb cd ~/releases/slugos-3.10-beta/@]

to:

wget http://download.devbase.at/voip/yeaphone_0.1.5.bb cd ~/slugos-4.8-beta/@]

Changed lines 48-49 from:

Note that this will also compile linphone (as yeaphone's dependency) which by default builds both the console version and the GUI. If you do not want all the Gnome stuff to be built you need to adjust the BitBake file linphone_1.6.0.bb - comments "console-only version" inside this file will help you doing that.

to:

Note that this will only build the console version of linphone (as yeaphone's dependency). If you also want the GUI to be built you need to adjust the BitBake file linphone_2.1.1.bb.

Changed lines 54-56 from:

Yeaphone has to be configured through linphonec, the console version of Linphone. The following example shows how to get a working connection to a VoIP provider (user input printed bold).

to:

Setting a SIP Server

The SIP servers for Yeaphone have to be configured through linphonec, the console version of Linphone. The following example shows how to get a working connection to a VoIP provider (user input printed bold).

Deleted lines 59-66:
    linphonec> soundcard list
    0: ALSA: default device
    1: ALSA: USB Audio
    2: ALSA: VOIP USB Phone
    3: OSS: /dev/dsp
    4: OSS: /dev/dsp1
    linphonec> soundcard use 2
    Using sound device ALSA: VOIP USB Phone
Changed lines 83-84 from:

Using linphonec the VoIP connection can be tested immediately before using Yeaphone. The speaker and microphone of the Yealink handset can be used already, commands still have to be entered through the terminal and the PC keyboard though. The most important commands of linphonec are:

to:

Using linphonec the VoIP connection can be tested immediately before using Yeaphone. Commands still have to be entered through the terminal and the PC keyboard though. Note that if other sound cards are connected to the system, than it is likely that at this stage the speaker and microphone of the Yealink handset are not used yet. Yeaphone will later choose the correct audio settings automatically.

The most important commands of linphonec are:

Changed lines 98-107 from:

As soon as calls can be make this way, linphonec can be stopped and yeaphone can be invoked. Its output should look similar to this:

    root@NSLU2:~# yeaphone
    Ready
    Registration on sip:sipgate.at sucessful.

At the same time the current date and time are show on the handset's display, a quick sequence of status messages appear, and finally the lower part of the display should be empty. Now the handset's keyboard can be used to place and receive calls.

To correctly understand the phone number of incoming calls, Yeaphone needs some adjustments in the file ~/.yeaphonerc. After terminating yeaphone the parameters intl-access-code, natl-access-code, and country-code should be changed to your countries access codes.

to:

Providing Yeaphone-Specific Parameters

Now the configuration file ~/.yeaphonerc has to be created manually. In order to correctly understand the phone number of incoming calls, Yeaphone needs the parameters intl-access-code, natl-access-code, and country-code according to your country.

Changed lines 104-115 from:
      intl-access-code 00
      natl-access-code 0
      country-code     43

For the USA this should be:

      intl-access-code 011
      natl-access-code 1
      country-code     1

Usage

to:
    intl-access-code  00
    natl-access-code  0
    country-code      43

For the USA this would be:

    intl-access-code  011
    natl-access-code  1
    country-code      

In ~/.yeaphonerc you can also spedify custom ringtones for different numbers by adding lines according to the following example:

    ringtone_default   /usr/share/yeaphone/ringtones/default_p1k.bin
    ringtone_01234567  /usr/share/yeaphone/ringtones/special_p1k.bin
    ringtone_0555777   doorbell_p1k.bin

If you specify relative paths to the ringtones, they are based on $HOME/.yeaphone/ringtone.

Another feature to be configured in ~/.yeaphonerc is the minimum ring duration. If for a certain caller ID the duration of the ring should be at least 5 seconds, this can be specified as:

    minring_01234567  5

If in its idle state the handset should not only display the current date and time but also a certain fixed text, then the option display-id comes in handy. This makes sense especially in an environment where multiple handsets are operated next to each other and there is danger of confusing them. Example:

    display-id  "  --1234--"

Creating a rule for udev

As Yeaphone should not be run by the user <i>root</i> for security reasons, the access rights of the files providing the interface to the yealink driver have to be adjusted. The following line changes the group from root to voip assuming that the yeaphone user is a member of this group. The line has to be writting to a file called /etc/udev/rules.d/99-yealink.rules.

    KERNEL=="event*", DRIVERS=="yealink", GROUP="voip", RUN+="/bin/sh -c '/bin/chgrp voip /sys$env{PHYSDEVPATH}/*'"

To activate the rule on a running system, the handset has to be unplugged and plugged in again.

    <h2>Using Yeaphone</h2>

    <p>When invoking <i>yeaphone</i> the output on the console should
    look similar to this:</p>

Using Yeaphone

When invoking yeaphone the output on the console should look similar to this:

    user@NSLU2:~# <b>yeaphone</b>
    Ready
    Registration on sip:sipgate.at successful.

At the same time the current date and time are show on the handset's display, a quick sequence of status messages appear, and finally the lower part of the display should be empty (or show the text set with 'display-id'). Now the handset's keyboard can be used to place and receive calls.

Changed line 169 from:
  • 0-9\\
to:
  • 0-9,*,#\\
Changed line 179 from:
  • # + <0-9>\\
to:
  • ▲ + <0-9>\\
Changed line 190 from:
  • 0-9\\
to:
  • 0-9,*,#\\
Changed line 198 from:
  • # + <0-9>\\
to:
  • ▲ + <0-9>\\
Changed lines 213-214 from:

The following performance measurements have been done using linphonec on a TurboSlug with an ARM5-optimized SPEEX library 1.2beta1:

to:

The following performance measurements have been done using linphonec on a TurboSlug with an ARM5-optimized SPEEX library 1.2beta1 and SlugOS/4.8 (OABI):

Changed line 221 from:

The NSLU2 does not have enough horse power for echo cancellation or the SPEEX codecs, these should be turned off in the configuration file .linphonerc.

to:

The NSLU2 does not have enough horse power for echo cancellation or the SPEEX codecs, these should be turned off in the configuration file ~/.linphonerc.

May 27, 2008, at 08:04 PM by Thomas Reitmayr --
Changed lines 3-6 from:

The following article describes how to connect and use a YeaLink USB-P1K handset with the NSLU2 as a standalone SIP VoIP phone. The USB-P1K was chosen because it is well-supported by the Linux kernel module yealink (see http://savannah.nongnu.org/projects/usbb2k-api/). It is sold for ~30€ under various brand names (cistrix, comsel, freshtel, laser, peoplefone, siptronic, us robotics, etc). Please note that nowadays most devices advertised as USB-P1K? are actually its successor, the USB-P1KH?. Although it is not supported by the driver shipped with the kernel, there is a new version of the yealink kernel module available at http://www.devbase.at/svn/view.cgi/yealink-module/?root=voip for kernel versions >= 2.6.18.

There is no support for models other than the USB-P1KH at this time, but some may not need much work in the application.

to:

The following article describes how to connect and use a YeaLink USB-P1K handset with the NSLU2 as a standalone SIP VoIP phone. The USB-P1K was chosen because it is well-supported by the Linux kernel module yealink (see http://savannah.nongnu.org/projects/usbb2k-api/). It is sold for ~30€ under various brand names (cistrix, comsel, freshtel, laser, peoplefone, siptronic, us robotics, etc). Please note that nowadays most devices advertised as USB-P1K are actually its successor, the USB-P1KH. Although it is not supported by the driver shipped with the kernel, there is a new version of the yealink kernel module available at http://www.devbase.at/svn/view.cgi/yealink-module/?root=voip for kernel versions >= 2.6.18.

There is no support for models other than the USB-P1K(H) at this time, but some may not need much work in the application.

May 27, 2008, at 08:03 PM by Thomas Reitmayr -- Added note about USB-P1KH being supported by a newer driver
Changed lines 3-4 from:

The following article describes how to connect and use a YeaLink USB-P1K handset with the NSLU2 as a standalone SIP VoIP phone. The USB-P1K was chosen because it is well-supported by the Linux kernel module yealink (see http://savannah.nongnu.org/projects/usbb2k-api/). It is sold for ~30€ under various brand names (cistrix, comsel, freshtel, laser, peoplefone, siptronic, us robotics, etc). There is no support for models other than the USB-P1K at this time, but that's definitely a goal for future releases.

to:

The following article describes how to connect and use a YeaLink USB-P1K handset with the NSLU2 as a standalone SIP VoIP phone. The USB-P1K was chosen because it is well-supported by the Linux kernel module yealink (see http://savannah.nongnu.org/projects/usbb2k-api/). It is sold for ~30€ under various brand names (cistrix, comsel, freshtel, laser, peoplefone, siptronic, us robotics, etc). Please note that nowadays most devices advertised as USB-P1K? are actually its successor, the USB-P1KH?. Although it is not supported by the driver shipped with the kernel, there is a new version of the yealink kernel module available at http://www.devbase.at/svn/view.cgi/yealink-module/?root=voip for kernel versions >= 2.6.18.

There is no support for models other than the USB-P1KH at this time, but some may not need much work in the application.

June 21, 2007, at 05:52 PM by Thomas Reitmayr -- mentioned linphone 1.7.1
Changed lines 27-28 from:
  • Linphone 1.6.0
  • a patch for Linphone 1.6.0
to:
  • Linphone 1.6.0 + a patch for Linphone 1.6.0 (Note: Linphone >= 1.7.1 already includes all patches)
Changed lines 29-34 from:
  • for linux kernels < 2.6.18: patched kernel module usbhid

Currently the corresponding BitBake files as well as the usbhid-patch are not yet available in the official databases but can be downloaded from the developer's web-site for Yeaphone: http://www.devbase.at/voip/yeaphone.php

For SlugOS/BE 3.10beta downloading the necessary files into the cross-compile environment would look like:

to:
  • only for linux kernels < 2.6.18: patched kernel module usbhid

The BitBake files are available in the OpenEmbedded database but can also be downloaded from the developer's web-site for Yeaphone: http://www.devbase.at/voip/yeaphone.php

For SlugOS/BE 3.10beta downloading the necessary files into the cross-compile environment could look like:

Changed lines 48-49 from:

Alternatively and as long as Yeaphone is not part of the official ipkg feeds, there are compiled packages available for everything you will need to run Yeaphone at feed.devbase.at.

to:

Alternatively there are compiled packages available for everything you will need to run Yeaphone at feed.devbase.at.

February 01, 2007, at 07:37 PM by Thomas Reitmayr --
Changed lines 30-32 from:

Currently the corresponding BitBake files are not yet available in the official databases but can be downloaded from the developer's web-site for Yeaphone: http://www.devbase.at/voip/yeaphone.php

to:
  • for linux kernels < 2.6.18: patched kernel module usbhid

Currently the corresponding BitBake files as well as the usbhid-patch are not yet available in the official databases but can be downloaded from the developer's web-site for Yeaphone: http://www.devbase.at/voip/yeaphone.php

February 01, 2007, at 07:33 PM by Thomas Reitmayr --
Changed lines 3-4 from:

The following article describes how to connect and use a YeaLink USB-P1K handset with the NSLU2 as a standalone SIP VoIP phone. The USB-P1K was chosen because it is well-supported by the Linux kernel module yealink (see http://savannah.nongnu.org/projects/usbb2k-api/). It is sold for ~30€ under various brand names (cistrix, comsel, freshtel, laser, peoplefone, siptronic, us robotics, etc). There is no support for models other than the USB-P1K? at this time, but that's definitely a goal for future releases.

to:

The following article describes how to connect and use a YeaLink USB-P1K handset with the NSLU2 as a standalone SIP VoIP phone. The USB-P1K was chosen because it is well-supported by the Linux kernel module yealink (see http://savannah.nongnu.org/projects/usbb2k-api/). It is sold for ~30€ under various brand names (cistrix, comsel, freshtel, laser, peoplefone, siptronic, us robotics, etc). There is no support for models other than the USB-P1K at this time, but that's definitely a goal for future releases.

Changed lines 171-172 from:

The following performance measurements have been done using linphonec on a "Turbo-Slug" (266 MHz?) with an ARM5?-optimized SPEEX library 1.2beta1:

to:

The following performance measurements have been done using linphonec on a TurboSlug with an ARM5-optimized SPEEX library 1.2beta1:

February 01, 2007, at 07:30 PM by Thomas Reitmayr -- Moved to linphone 1.6.0, fixed the memory leak, added performance considerations
Changed lines 3-4 from:

The following article describes how to connect and use a YeaLink USB-P1K handset with the NSLU2 as a standalone SIP VoIP phone. The USB-P1K was chosen because it is well-supported by the Linux kernel module yealink (see http://savannah.nongnu.org/projects/usbb2k-api/). It is sold for ~30€ under various brand names (cistrix, comsel, freshtel, laser, peoplefone, siptronic, us robotics, etc).

to:

The following article describes how to connect and use a YeaLink USB-P1K handset with the NSLU2 as a standalone SIP VoIP phone. The USB-P1K was chosen because it is well-supported by the Linux kernel module yealink (see http://savannah.nongnu.org/projects/usbb2k-api/). It is sold for ~30€ under various brand names (cistrix, comsel, freshtel, laser, peoplefone, siptronic, us robotics, etc). There is no support for models other than the USB-P1K? at this time, but that's definitely a goal for future releases.

Changed lines 10-11 from:
to:
Changed lines 27-28 from:
  • Linphone 1.5.1
  • a patch for Linphone 1.5.1
to:
  • Linphone 1.6.0
  • a patch for Linphone 1.6.0
Changed lines 31-36 from:

Currently the corresponding BitBake files are not available in the official databases and can only be downloaded from the developer's web-site of Yeaphone: http://www.devbase.at/voip/yeaphone.php

Copy/extract the downloaded files into your cross-compile environment. For SlugOS/BE 3.10beta this would be something like:

[@cd ~/slugos-3.10-beta/openembedded/packages/linphone/

tar zxvf <path-to-download-dir>/linphone-1.5.1-bb.tgz

to:

Currently the corresponding BitBake files are not yet available in the official databases but can be downloaded from the developer's web-site for Yeaphone: http://www.devbase.at/voip/yeaphone.php

For SlugOS/BE 3.10beta downloading the necessary files into the cross-compile environment would look like:

[@cd ~/releases/slugos-3.10-beta/openembedded/packages/linphone/

wget http://download.devbase.at/voip/linphone_1.6.0.bb

Changed lines 39-41 from:

cp <path-to-download-dir>/yeaphone_0.1.bb . cd ~/slugos-3.10-beta/@]

to:

wget http://download.devbase.at/voip/yeaphone_0.1.bb cd ~/releases/slugos-3.10-beta/@]

Changed lines 46-47 from:

Note that this will also compile linphone (as yeaphone's dependency) which by default builds both the console version and the GUI. If you do not want all the Gnome stuff to be built you need to adjust the BitBake file linphone_1.5.1.bb - comments inside this file will help you doing that.

to:

Note that this will also compile linphone (as yeaphone's dependency) which by default builds both the console version and the GUI. If you do not want all the Gnome stuff to be built you need to adjust the BitBake file linphone_1.6.0.bb - comments "console-only version" inside this file will help you doing that.

Changed lines 87-88 from:

Using linphonec the VoIP connection can be tested immediately before using Yeaphone. The speaker and microphone of the Yealink handset can be used already, commands still have to be entered through the PC keyboard though. The most important commands of linphonec are:

to:

Using linphonec the VoIP connection can be tested immediately before using Yeaphone. The speaker and microphone of the Yealink handset can be used already, commands still have to be entered through the terminal and the PC keyboard though. The most important commands of linphonec are:

Deleted lines 102-103:
    path_sysfs = /sys/bus/usb/drivers/yealink/3-1.3:1.3/
    path_buf = /dev/input/event2
Changed lines 108-109 from:

To correctly understand the phone number of incoming calls, Yeaphone needs some adjustments in the file ~/.yeaphonerc. After terminating yeaphone the parameters intl-access-code, natl-access-code, and country-code should be changed accordingly, the default values work for Austria only.

to:

To correctly understand the phone number of incoming calls, Yeaphone needs some adjustments in the file ~/.yeaphonerc. After terminating yeaphone the parameters intl-access-code, natl-access-code, and country-code should be changed to your countries access codes.

An example for Austria would be:

      intl-access-code 00
      natl-access-code 0
      country-code     43

For the USA this should be:

      intl-access-code 011
      natl-access-code 1
      country-code     1
Changed lines 169-174 from:

Known Problems

There is a rather annoying memory leak, which increases memory usage by ~12KB with every reregistration. It occurs in both linphonec and yeaphone, so it is probably caused by one of the libraries used.

As a consequence please kill & restart yeaphone regularly, especially if you do not have swap space enabled!

to:

Performance Considerations

The following performance measurements have been done using linphonec on a "Turbo-Slug" (266 MHz?) with an ARM5?-optimized SPEEX library 1.2beta1:

  • Codecs PCMU, PCMA, GSM: There is no significant CPU load during the phone call.
  • Echo Cancellation: With echo cancellation turned on the NSLU2 simply cannot keep up with the audio streams, only a fraction of the signal reaches the speaker.
  • SPEEX (wide-band, 16kb): The CPU load is between 50 and 70 %, occasionally there are audible cuts. The memory consumption rises to 50 %!
  • SPEEX (narrow-band, 8kb): The CPU load stays between 30 and 40 %, there are still some audible cuts.

Conclusion: The NSLU2 does not have enough horse power for echo cancellation or the SPEEX codecs, these should be turned off in the configuration file .linphonerc.

December 29, 2006, at 07:38 PM by Thomas Reitmayr -- update for linphone 1.5.1
Changed lines 27-28 from:
  • Linphone 1.4.1
  • a patch for Linphone 1.4.1
to:
  • Linphone 1.5.1
  • a patch for Linphone 1.5.1
Changed lines 33-34 from:

Copy/extract the downloaded files into your cross-compile environment. For OpenSlug 3.10beta this would be something like:

to:

Copy/extract the downloaded files into your cross-compile environment. For SlugOS/BE 3.10beta this would be something like:

Changed line 36 from:

tar zxvf <path-to-download-dir>/linphone-1.4.1-bb.tgz

to:

tar zxvf <path-to-download-dir>/linphone-1.5.1-bb.tgz

Changed lines 46-47 from:

Note that this will also compile linphone (as yeaphone's dependency) which by default builds both the console version and the GUI. If you do not want all the Gnome stuff to be built you need to adjust the BitBake file linphone_1.4.1.bb - comments inside this file will help you doing that.

to:

Note that this will also compile linphone (as yeaphone's dependency) which by default builds both the console version and the GUI. If you do not want all the Gnome stuff to be built you need to adjust the BitBake file linphone_1.5.1.bb - comments inside this file will help you doing that.

October 15, 2006, at 07:09 PM by Thomas Reitmayr --
Changed lines 10-11 from:
to:
Added lines 158-164:

Known Problems

There is a rather annoying memory leak, which increases memory usage by ~12KB with every reregistration. It occurs in both linphonec and yeaphone, so it is probably caused by one of the libraries used.

As a consequence please kill & restart yeaphone regularly, especially if you do not have swap space enabled!

October 15, 2006, at 07:01 PM by Thomas Reitmayr --
Changed lines 113-114 from:

The various keys have the following functions:

to:

The various phone keys have the following functions:

Deleted lines 156-160:

WORK IN PROGRESS....

October 15, 2006, at 06:58 PM by Thomas Reitmayr --
Added lines 5-10:
Changed lines 109-110 from:

Phone Keys

to:

To correctly understand the phone number of incoming calls, Yeaphone needs some adjustments in the file ~/.yeaphonerc. After terminating yeaphone the parameters intl-access-code, natl-access-code, and country-code should be changed accordingly, the default values work for Austria only.

Usage

Changed lines 156-160 from:

Start and stop the VoIP? connection (corresponds to turning on/off a phone)

to:

Start and stop the VoIP connection (corresponds to turning on/off a phone)

October 15, 2006, at 06:54 PM by Thomas Reitmayr --
Changed line 108 from:
* 0-9\\
to:
  • 0-9\\
Changed line 110 from:
* C\\
to:
  • C\\
Changed lines 112-152 from:
          * C pressed long
            Remove the complete number
          * <red key>
            Remove the complete number
          * <green key>
            Initiate the call
          * # + <0-9>
            No number dialed yet: Recall and display a number from memory X
            Number already dialed: Store the currently displayed number at memory X 
   2. during a phone call
          * 0-9,*,#
            Generate DTMF tones
          * <red key>
            Terminate the call
          * VOL+/-
            Adjust the speaker's volume 
   3. after a phone call (with the last number displayed)
          * 0-9
            Dial a new phone number
          * C
            Remove the complete number
          * <red key>
            Remove the complete number
          * <green key>
            Redial the last number
          * # + <0-9>
            Store the last number to memory X 
   4. when the phone rings
          * #
            Mute the ringing without picking up
          * <red key>
            Immediately terminate the call without picking up
          * <green key>
            Pick up 
   5. general
          * <red key> pressed long
            Start and stop the VoIP? connection (corresponds to turning on/off a phone) 
to:
  • C pressed long
    Remove the complete number
  • <red key>
    Remove the complete number
  • <green key>
    Initiate the call
  • # + <0-9>
    No number dialed yet: Recall and display a number from memory X
    Number already dialed: Store the currently displayed number at memory X
  1. during a phone call
    • 0-9,*,#
      Generate DTMF tones
    • <red key>
      Terminate the call
    • VOL-/+ (on some models: IN/OUT)
      Adjust the speaker's volume
  2. after a phone call (with the last number displayed)
    • 0-9
      Dial a new phone number
    • C
      Remove the complete number
    • <red key>
      Remove the complete number
    • <green key>
      Redial the last number
    • # + <0-9>
      Store the last number to memory X
  3. when the phone rings
    • #
      Mute the ringing without picking up
    • <red key>
      Immediately terminate the call without picking up
    • <green key>
      Pick up
  4. general
    • <red key> pressed long
      Start and stop the VoIP? connection (corresponds to turning on/off a phone)
October 15, 2006, at 06:49 PM by Thomas Reitmayr --
Changed lines 103-106 from:
to:

Phone Keys

The various keys have the following functions:

  1. before a phone call
* 0-9
Dial a phone number
* C
Remove the last character of the dialed number
          * C pressed long
            Remove the complete number
          * <red key>
            Remove the complete number
          * <green key>
            Initiate the call
          * # + <0-9>
            No number dialed yet: Recall and display a number from memory X
            Number already dialed: Store the currently displayed number at memory X 
2. during a phone call
          * 0-9,*,#
            Generate DTMF tones
          * <red key>
            Terminate the call
          * VOL+/-
            Adjust the speaker's volume 
   3. after a phone call (with the last number displayed)
          * 0-9
            Dial a new phone number
          * C
            Remove the complete number
          * <red key>
            Remove the complete number
          * <green key>
            Redial the last number
          * # + <0-9>
            Store the last number to memory X 
   4. when the phone rings
          * #
            Mute the ringing without picking up
          * <red key>
            Immediately terminate the call without picking up
          * <green key>
            Pick up 
   5. general
          * <red key> pressed long
            Start and stop the VoIP? connection (corresponds to turning on/off a phone) 
October 15, 2006, at 06:45 PM by Thomas Reitmayr --
Changed line 82 from:
  • help [<command>]
to:
  • help [<command>]\\
Changed line 84 from:
  • call <phone number or SIP address>
to:
  • call <phone number or SIP address>\\
Changed line 86 from:
  • answer
to:
  • answer\\
Changed line 88 from:
  • terminate
to:
  • terminate\\
Changed lines 90-92 from:
  • quit

unregisters at the VoIP? provider and quits linphonec

to:
  • quit
    unregisters at the VoIP provider and quits linphonec
October 15, 2006, at 06:43 PM by Thomas Reitmayr --
Changed lines 45-83 from:

Yeaphone has to be configured through linphonec, the console version of Linphone. The following example shows how to get a working connection to a VoIP provider (user input printed bold).

 root@NSLU2:~# linphonec
 Ready
 linphonec> soundcard list
 0: ALSA: default device
 1: ALSA: USB Audio
 2: ALSA: VOIP USB Phone
 3: OSS: /dev/dsp
 4: OSS: /dev/dsp1
 linphonec> soundcard use 2
 Using sound device ALSA: VOIP USB Phone
 linphonec> proxy add
 Adding new proxy setup. Hit ^D to abort.
 Enter proxy sip address: sip:sipgate.at
 Your identity for this proxy: sip:1234567@sipgate.at
 Do you want to register on this proxy (yes/no): yes
 Specify register expiration time in seconds (default is 600): 600
 Expiration: 600 seconds
 Specify route if needed: [leave empty]
 No route specified.
 --------------------------------------------
 sip address: sip:sipgate.at
 route:
 identity: sip:1234567@sipgate.at
 register: yes
 expires: 600
 --------------------------------------------
 Accept the above proxy configuration (yes/no) ?: yes
 Proxy added.
 linphonec>
 Password for 1234567 on "sipgate.at": [enter password]
 Registration on sip:sipgate.at sucessful.
 linphonec>
to:

Yeaphone has to be configured through linphonec, the console version of Linphone. The following example shows how to get a working connection to a VoIP provider (user input printed bold).

    root@NSLU2:~# linphonec
    Ready
    linphonec> soundcard list
    0: ALSA: default device
    1: ALSA: USB Audio
    2: ALSA: VOIP USB Phone
    3: OSS: /dev/dsp
    4: OSS: /dev/dsp1
    linphonec> soundcard use 2
    Using sound device ALSA: VOIP USB Phone
    linphonec> proxy add
    Adding new proxy setup. Hit ^D to abort.
    Enter proxy sip address: sip:sipgate.at
    Your identity for this proxy: sip:1234567@sipgate.at
    Do you want to register on this proxy (yes/no): yes
    Specify register expiration time in seconds (default is 600): 600
    Expiration: 600 seconds
    Specify route if needed: [leave empty]
    No route specified.
    --------------------------------------------
    sip address: sip:sipgate.at
    route:
    identity: sip:1234567@sipgate.at
    register: yes
    expires: 600
    --------------------------------------------
    Accept the above proxy configuration (yes/no) ?: yes
    Proxy added.
    linphonec>
    Password for 1234567 on "sipgate.at": [enter password]
    Registration on sip:sipgate.at sucessful.
    linphonec>

Using linphonec the VoIP connection can be tested immediately before using Yeaphone. The speaker and microphone of the Yealink handset can be used already, commands still have to be entered through the PC keyboard though. The most important commands of linphonec are:

  • help [<command>]

shows the available commands and provides a detailed description for each command

  • call <phone number or SIP address>

dials the specified phone number of SIP address

  • answer

answers an incoming call

  • terminate

terminates an (incoming or outgoing) call

  • quit

unregisters at the VoIP? provider and quits linphonec

As soon as calls can be make this way, linphonec can be stopped and yeaphone can be invoked. Its output should look similar to this:

    root@NSLU2:~# yeaphone
    path_sysfs = /sys/bus/usb/drivers/yealink/3-1.3:1.3/
    path_buf = /dev/input/event2
    Ready
    Registration on sip:sipgate.at sucessful.

At the same time the current date and time are show on the handset's display, a quick sequence of status messages appear, and finally the lower part of the display should be empty. Now the handset's keyboard can be used to place and receive calls.

October 15, 2006, at 06:39 PM by Thomas Reitmayr --
Changed lines 45-82 from:

Yeaphone has to be configured through linphonec, the console version of Linphone. The following example shows how to get a working connection to a VoIP provider (user input printed bold).

root@NSLU2:~# '''linphonec'''
   Ready
   linphonec> soundcard list
   0: ALSA: default device
1: ALSA: USB Audio
2: ALSA: VOIP USB Phone
3: OSS: /dev/dsp
4: OSS: /dev/dsp1
linphonec> soundcard use 2
Using sound device ALSA: VOIP USB Phone
linphonec> proxy add
Adding new proxy setup. Hit ^D to abort.
Enter proxy sip address: sip:sipgate.at
Your identity for this proxy: sip:1234567@sipgate.at
Do you want to register on this proxy (yes/no): yes
Specify register expiration time in seconds (default is 600): 600
Expiration: 600 seconds
Specify route if needed: [leave empty]
No route specified.
--------------------------------------------
sip address: sip:sipgate.at
route:
identity: sip:1234567@sipgate.at
register: yes
expires: 600
--------------------------------------------
Accept the above proxy configuration (yes/no) ?: yes
Proxy added.
linphonec>
Password for 1234567 on "sipgate.at": [enter password]
Registration on sip:sipgate.at sucessful.
linphonec>
to:

Yeaphone has to be configured through linphonec, the console version of Linphone. The following example shows how to get a working connection to a VoIP provider (user input printed bold).

 root@NSLU2:~# linphonec
 Ready
 linphonec> soundcard list
 0: ALSA: default device
 1: ALSA: USB Audio
 2: ALSA: VOIP USB Phone
 3: OSS: /dev/dsp
 4: OSS: /dev/dsp1
 linphonec> soundcard use 2
 Using sound device ALSA: VOIP USB Phone
 linphonec> proxy add
 Adding new proxy setup. Hit ^D to abort.
 Enter proxy sip address: sip:sipgate.at
 Your identity for this proxy: sip:1234567@sipgate.at
 Do you want to register on this proxy (yes/no): yes
 Specify register expiration time in seconds (default is 600): 600
 Expiration: 600 seconds
 Specify route if needed: [leave empty]
 No route specified.
 --------------------------------------------
 sip address: sip:sipgate.at
 route:
 identity: sip:1234567@sipgate.at
 register: yes
 expires: 600
 --------------------------------------------
 Accept the above proxy configuration (yes/no) ?: yes
 Proxy added.
 linphonec>
 Password for 1234567 on "sipgate.at": [enter password]
 Registration on sip:sipgate.at sucessful.
 linphonec>
October 15, 2006, at 06:37 PM by Thomas Reitmayr --
Changed line 47 from:
 [root@NSLU2:~# linphonec
to:

[@root@NSLU2:~# linphonec

Changed lines 78-82 from:

linphonec>]

to:

linphonec>@]

October 15, 2006, at 06:27 PM by Thomas Reitmayr --
Changed line 47 from:
 ->root@NSLU2:~# linphonec
to:
 [root@NSLU2:~# linphonec
Changed lines 78-82 from:

linphonec>@]

to:

linphonec>]

October 15, 2006, at 06:26 PM by Thomas Reitmayr --
Changed lines 47-50 from:
[@root@NSLU2:~# linphonec

Ready linphonec> soundcard list 0: ALSA: default device

to:
 ->root@NSLU2:~# linphonec
   Ready
   linphonec> soundcard list
   0: ALSA: default device
October 15, 2006, at 06:24 PM by Thomas Reitmayr --
Changed lines 45-48 from:
to:

Yeaphone has to be configured through linphonec, the console version of Linphone. The following example shows how to get a working connection to a VoIP provider (user input printed bold).

root@NSLU2:~# ''linphonec''
Ready
linphonec> soundcard list
0: ALSA: default device
1: ALSA: USB Audio
2: ALSA: VOIP USB Phone
3: OSS: /dev/dsp
4: OSS: /dev/dsp1
linphonec> soundcard use 2
Using sound device ALSA: VOIP USB Phone
linphonec> proxy add
Adding new proxy setup. Hit ^D to abort.
Enter proxy sip address: sip:sipgate.at
Your identity for this proxy: sip:1234567@sipgate.at
Do you want to register on this proxy (yes/no): yes
Specify register expiration time in seconds (default is 600): 600
Expiration: 600 seconds
Specify route if needed: [leave empty]
No route specified.
--------------------------------------------
sip address: sip:sipgate.at
route:
identity: sip:1234567@sipgate.at
register: yes
expires: 600
--------------------------------------------
Accept the above proxy configuration (yes/no) ?: yes
Proxy added.
linphonec>
Password for 1234567 on "sipgate.at": [enter password]
Registration on sip:sipgate.at sucessful.
linphonec>
October 15, 2006, at 06:22 PM by Thomas Reitmayr --
Changed lines 41-42 from:

Alternatively and as long as Yeaphone is not part of the official ipkg feeds, there are compiled packages available for everything you will need to run Yeaphone at .

to:

Alternatively and as long as Yeaphone is not part of the official ipkg feeds, there are compiled packages available for everything you will need to run Yeaphone at feed.devbase.at.

October 15, 2006, at 06:21 PM by Thomas Reitmayr --
Changed lines 8-12 from:

This gap is closed by Yeaphone, which interfaces to the kernel module and provides VoIP functionality by using the liblinphone SIP phone backend. <!--The basic architecture is shown in the following diagram.

diagram to be added here...

to:

This gap is closed by Yeaphone, which interfaces to the kernel module and provides VoIP functionality by using the liblinphone SIP phone backend.

Changed lines 41-46 from:
to:

Alternatively and as long as Yeaphone is not part of the official ipkg feeds, there are compiled packages available for everything you will need to run Yeaphone at .

Software Setup

October 15, 2006, at 05:32 PM by Thomas Reitmayr --
Changed lines 3-4 from:

The following article describes how to connect and use a YeaLink USB-P1K handset with the NSLU2 as a standalone SIP VoIP phone. The USB-P1K was chosen because it is well-supported by the Linux kernel module 'yealink' (see http://savannah.nongnu.org/projects/usbb2k-api/). It is sold for ~30€ under various brand names (cistrix, comsel, freshtel, laser, peoplefone, siptronic, us robotics, etc).

to:

The following article describes how to connect and use a YeaLink USB-P1K handset with the NSLU2 as a standalone SIP VoIP phone. The USB-P1K was chosen because it is well-supported by the Linux kernel module yealink (see http://savannah.nongnu.org/projects/usbb2k-api/). It is sold for ~30€ under various brand names (cistrix, comsel, freshtel, laser, peoplefone, siptronic, us robotics, etc).

Changed lines 8-9 from:

This gap is closed by Yeaphone, which interfaces to the kernel module and provides VoIP functionality by using the liblinphone SIP phone backend. The basic architecture is shown in the following diagram.

to:

This gap is closed by Yeaphone, which interfaces to the kernel module and provides VoIP functionality by using the liblinphone SIP phone backend. <!--The basic architecture is shown in the following diagram.

Changed lines 11-12 from:
to:
October 15, 2006, at 05:29 PM by Thomas Reitmayr --
Changed lines 3-4 from:

The following article describes how to connect and use a YeaLink USB-P1K handset with the NSLU2 as a standalone SIP VoIP phone. The USB-P1K was chosen because it is well-supported by a Linux kernel module (see http://savannah.nongnu.org/projects/usbb2k-api/). It is sold for ~30€ under various brand names (cistrix, comsel, freshtel, laser, peoplefone, siptronic, us robotics, etc).

to:

The following article describes how to connect and use a YeaLink USB-P1K handset with the NSLU2 as a standalone SIP VoIP phone. The USB-P1K was chosen because it is well-supported by the Linux kernel module 'yealink' (see http://savannah.nongnu.org/projects/usbb2k-api/). It is sold for ~30€ under various brand names (cistrix, comsel, freshtel, laser, peoplefone, siptronic, us robotics, etc).

October 15, 2006, at 05:15 PM by Thomas Reitmayr --
Changed lines 28-29 from:

Now copy the downloaded files into your cross-compile environment. For OpenSlug 3.10beta this would be something like:

to:

Copy/extract the downloaded files into your cross-compile environment. For OpenSlug 3.10beta this would be something like:

Changed lines 41-48 from:

Note that this will also compile linphone (as yeaphone's dependency) which by default builds both the console version and the GUI. If you do not want all the Gnome stuff to be build you need to adjust the BitBake file linphone_1.4.1.bb - comments inside this file will help you doing that.

to:

Note that this will also compile linphone (as yeaphone's dependency) which by default builds both the console version and the GUI. If you do not want all the Gnome stuff to be built you need to adjust the BitBake file linphone_1.4.1.bb - comments inside this file will help you doing that.

October 15, 2006, at 05:13 PM by Thomas Reitmayr --
Deleted lines 4-5:

xy

October 15, 2006, at 05:12 PM by Thomas Reitmayr --
Changed lines 5-8 from:

Table of contents

to:

xy

Changed lines 8-9 from:

As mentioned above the USB-P1K provides the basic phone interface (speaker, microphone, keys, display) but no VoIP? functionality. On the other side there are the numerous VoIP soft phones, most of which can only be controlled via their GUI and therefore are not suitable for the NSLU2.

to:

As mentioned above the USB-P1K provides the basic phone interface (speaker, microphone, keys, display) but no VoIP functionality. On the other side there are the numerous VoIP soft phones, most of which can only be controlled via their GUI and therefore are not suitable for the NSLU2.

October 15, 2006, at 05:10 PM by Thomas Reitmayr --
Changed lines 12-13 from:

This gap is closed by YeaPhone?, which interfaces to the kernel module and provides VoIP? functionality by using the liblinphone SIP phone backend. The basic architecture is shown in the following diagram.

to:

This gap is closed by Yeaphone, which interfaces to the kernel module and provides VoIP functionality by using the liblinphone SIP phone backend. The basic architecture is shown in the following diagram.

October 15, 2006, at 05:02 PM by Thomas Reitmayr --
Changed line 12 from:

This gap is closed by YeaPhone?, which interfaces to the kernel module and provides VoIP? functionality by using the . The basic architecture is shown in the following diagram.

to:

This gap is closed by YeaPhone?, which interfaces to the kernel module and provides VoIP? functionality by using the liblinphone SIP phone backend. The basic architecture is shown in the following diagram.

Changed line 15 from:

YeaPhone's main features are:

to:

Yeaphone's main features are:

Changed lines 27-30 from:
  • YeaPhone 0.1

Currently the corresponding BitBake files are not available in the official databases and can only be downloaded from the developer's web-site of YeaPhone?: http://www.devbase.at/voip/yeaphone.php

to:
  • Yeaphone 0.1

Currently the corresponding BitBake files are not available in the official databases and can only be downloaded from the developer's web-site of Yeaphone: http://www.devbase.at/voip/yeaphone.php

Changed lines 40-41 from:

Now compile yeaphone:

to:

Then you can compile Yeaphone:

October 15, 2006, at 05:01 PM by Thomas Reitmayr --
Changed lines 34-39 from:
  tar zxvf <path-to-download-dir>/linphone-1.4.1-bb.tgz
  mkdir ../yeaphone
  cd ../yeaphone
  cp <path-to-download-dir>/yeaphone_0.1.bb .
  cd ~/slugos-3.10-beta/@]
to:

tar zxvf <path-to-download-dir>/linphone-1.4.1-bb.tgz mkdir ../yeaphone cd ../yeaphone cp <path-to-download-dir>/yeaphone_0.1.bb . cd ~/slugos-3.10-beta/@]

October 15, 2006, at 05:01 PM by Thomas Reitmayr --
Changed lines 33-39 from:
cd ~/slugos-3.10-beta/openembedded/packages/linphone/
tar zxvf <path-to-download-dir>/linphone-1.4.1-bb.tgz
mkdir ../yeaphone
cd ../yeaphone
cp <path-to-download-dir>/yeaphone_0.1.bb .
cd ~/slugos-3.10-beta/
to:
cd ~/slugos-3.10-beta/openembedded/packages/linphone/
  tar zxvf <path-to-download-dir>/linphone-1.4.1-bb.tgz
  mkdir ../yeaphone
  cd ../yeaphone
  cp <path-to-download-dir>/yeaphone_0.1.bb .
  cd ~/slugos-3.10-beta/
Changed lines 42-43 from:
bb yeaphone
to:
bb yeaphone
October 15, 2006, at 05:00 PM by Thomas Reitmayr --
Changed lines 42-43 from:

bb yeaphone

to:
bb yeaphone
October 15, 2006, at 04:54 PM by Thomas Reitmayr --
Changed line 12 from:

This gap is closed by YeaPhone?, which interfaces to the kernel module and provides VoIP? functionality by using the http://www.linphone.org/?. The basic architecture is shown in the following diagram.

to:

This gap is closed by YeaPhone?, which interfaces to the kernel module and provides VoIP? functionality by using the . The basic architecture is shown in the following diagram.

October 15, 2006, at 04:53 PM by Thomas Reitmayr --
Added line 32:
Added line 39:
Added line 41:
October 15, 2006, at 04:48 PM by Thomas Reitmayr --
Changed lines 3-4 from:

The following article describes how to connect and use a http://www.yealink.com/english/prodetail_p1k.htmYeaLink USB-P1K? handset with the NSLU2 as a standalone SIP VoIP phone. The USB-P1K was chosen because it is well-supported by a Linux kernel module (see http://savannah.nongnu.org/projects/usbb2k-api/). It is sold for ~30€ under various brand names (cistrix, comsel, freshtel, laser, peoplefone, siptronic, us robotics, etc).

to:

The following article describes how to connect and use a YeaLink USB-P1K handset with the NSLU2 as a standalone SIP VoIP phone. The USB-P1K was chosen because it is well-supported by a Linux kernel module (see http://savannah.nongnu.org/projects/usbb2k-api/). It is sold for ~30€ under various brand names (cistrix, comsel, freshtel, laser, peoplefone, siptronic, us robotics, etc).

October 15, 2006, at 04:47 PM by Thomas Reitmayr --
Changed lines 3-4 from:

The following article describes how to connect and use a http://www.yealink.com/english/prodetail_p1k.htm? handset with the NSLU2 as a standalone SIP VoIP phone. The USB-P1K was chosen because it is well-supported by a Linux kernel module (see http://savannah.nongnu.org/projects/usbb2k-api/). It is sold for ~30€ under various brand names (cistrix, comsel, freshtel, laser, peoplefone, siptronic, us robotics, etc).

to:

The following article describes how to connect and use a http://www.yealink.com/english/prodetail_p1k.htmYeaLink USB-P1K? handset with the NSLU2 as a standalone SIP VoIP phone. The USB-P1K was chosen because it is well-supported by a Linux kernel module (see http://savannah.nongnu.org/projects/usbb2k-api/). It is sold for ~30€ under various brand names (cistrix, comsel, freshtel, laser, peoplefone, siptronic, us robotics, etc).

October 15, 2006, at 04:10 PM by Thomas Reitmayr --
Changed lines 23-26 from:

[[#Installation] Installation

to:

Installation

The necessary parts are

  • Linphone 1.4.1
  • a patch for Linphone 1.4.1
  • YeaPhone 0.1

Currently the corresponding BitBake files are not available in the official databases and can only be downloaded from the developer's web-site of YeaPhone?: http://www.devbase.at/voip/yeaphone.php

Now copy the downloaded files into your cross-compile environment. For OpenSlug 3.10beta this would be something like:

cd ~/slugos-3.10-beta/openembedded/packages/linphone/
tar zxvf <path-to-download-dir>/linphone-1.4.1-bb.tgz
mkdir ../yeaphone
cd ../yeaphone
cp <path-to-download-dir>/yeaphone_0.1.bb .
cd ~/slugos-3.10-beta/

Now compile yeaphone: bb yeaphone

Note that this will also compile linphone (as yeaphone's dependency) which by default builds both the console version and the GUI. If you do not want all the Gnome stuff to be build you need to adjust the BitBake file linphone_1.4.1.bb - comments inside this file will help you doing that.

October 15, 2006, at 03:41 PM by Thomas Reitmayr --
Changed lines 3-4 from:

The following article describes how to connect and use a YeaLink USB-P1K handset with the NSLU2 as a standalone SIP VoIP phone. The USB-P1K was chosen because it is well-supported by a Linux kernel module (see http://savannah.nongnu.org/projects/usbb2k-api/). It is sold for ~30€ under various brand names (peoplefone, laser, comsel, freshtel, etc).

to:

The following article describes how to connect and use a http://www.yealink.com/english/prodetail_p1k.htm? handset with the NSLU2 as a standalone SIP VoIP phone. The USB-P1K was chosen because it is well-supported by a Linux kernel module (see http://savannah.nongnu.org/projects/usbb2k-api/). It is sold for ~30€ under various brand names (cistrix, comsel, freshtel, laser, peoplefone, siptronic, us robotics, etc).

Changed lines 7-8 from:
to:
Changed lines 10-14 from:
to:

As mentioned above the USB-P1K provides the basic phone interface (speaker, microphone, keys, display) but no VoIP? functionality. On the other side there are the numerous VoIP soft phones, most of which can only be controlled via their GUI and therefore are not suitable for the NSLU2.

This gap is closed by YeaPhone?, which interfaces to the kernel module and provides VoIP? functionality by using the http://www.linphone.org/?. The basic architecture is shown in the following diagram. diagram to be added here...

YeaPhone's main features are:

  • Display the phone number of incoming and outgoing calls
  • Show the duration of a call
  • Store and recall 10 phone numbers
  • Mute the ring tone of incoming calls
  • Adjustable volume of the speaker
  • Send DTMF tones

[[#Installation] Installation

October 15, 2006, at 03:02 PM by Thomas Reitmayr --
Changed lines 3-5 from:

The following article describes how to connect and use a YeaLink USB-P1K? handset with the NSLU2 as a standalone SIP VoIP phone. The USB-P1K? was chosen because it is well-supported by a Linux kernel module. It is sold for ~30€ under various brand names (peoplefone, laser, comsel, freshtel, etc).

to:

The following article describes how to connect and use a YeaLink USB-P1K handset with the NSLU2 as a standalone SIP VoIP phone. The USB-P1K was chosen because it is well-supported by a Linux kernel module (see http://savannah.nongnu.org/projects/usbb2k-api/). It is sold for ~30€ under various brand names (peoplefone, laser, comsel, freshtel, etc).

Table of contents

Basic Architecture

WORK IN PROGRESS....

October 15, 2006, at 02:52 PM by Thomas Reitmayr --
Changed lines 1-5 from:

There are various USB phones available which are marketed as VoIP? phones. While usually rather cheap their built-in logic does not provide much more than an audio device, reading a user's key presses and possibly displaying simple messages.

The following article describes how to connect and use a YeaLink? USB-P1K? handset with the NSLU2 as a standalone SIP VoIP? phone. The USB-P1K? was chosen because it is well-supported by a Linux kernel module. It is sold for ~30€ under various brand names (peoplefone, laser, comsel, freshtel, etc).

to:

There are various USB phones available which are marketed as VoIP phones. While usually rather cheap their built-in logic does not provide much more than an audio device, reading a user's key presses and possibly displaying simple messages.

The following article describes how to connect and use a YeaLink USB-P1K? handset with the NSLU2 as a standalone SIP VoIP phone. The USB-P1K? was chosen because it is well-supported by a Linux kernel module. It is sold for ~30€ under various brand names (peoplefone, laser, comsel, freshtel, etc).

October 15, 2006, at 02:45 PM by Thomas Reitmayr -- Initial words
Added lines 1-5:

There are various USB phones available which are marketed as VoIP? phones. While usually rather cheap their built-in logic does not provide much more than an audio device, reading a user's key presses and possibly displaying simple messages.

The following article describes how to connect and use a YeaLink? USB-P1K? handset with the NSLU2 as a standalone SIP VoIP? phone. The USB-P1K? was chosen because it is well-supported by a Linux kernel module. It is sold for ~30€ under various brand names (peoplefone, laser, comsel, freshtel, etc).

view · edit · print · history · Last edited by Thomas Reitmayr.
Originally by Thomas Reitmayr.
Page last modified on October 06, 2008, at 09:23 PM