Voice-Over IP for Linux

Make your long-distance calls over the Internet using this new technology for Linux.
Licensing

Many Linux folks may criticize Quicknet because their device driver is not Open Source. Quicknet has made a carefully reasoned business decision to keep their device driver binary-only and not reveal the source code. A full API will be published to detail how to use the device driver, but the source code will be closed. To their credit, Quicknet realizes the tremendous opportunities with Linux and has made the investments needed to get the Linux drivers written. Quicknet has also continued to invest in this area by hiring Linux developers to work in-house.

However, the sample code accompanying the device driver is released under the Lesser GNU Public License (LGPL). While there may be some who demand the drivers be released Open Source, Quicknet believes strongly that having stable, reliable binary-only drivers is good enough for most users, and Quicknet is committed to supporting such a driver.

Requirements

The device driver for the cards requires a 2.2-series kernel, because some of the low-level features take advantage of changes in the new kernel. The latest modules are compiled with MODVERSIONS support, so assuming your kernel is, the kernel will load the module if the symbol tables are compatible between the module and the kernel. At the time of this writing, we are using 2.2.10 kernels for development.

Our modules have a dedicated “major number” so they can be used with the normal module tools such as insmod and modprobe. All you have to do is add a few lines to your conf.modules file, and the normal modules tools work with our device driver. See below for more information on how to perform the initial configuration.

You will need at least one Internet PhoneJACK/LineJACK card on each end of the connection. Note that the initial release of the Linux driver supports only the Internet PhoneJACK card, though by the time you read this, the Internet LineJACK will be supported as well. These cards are ISA bus devices that use Plug-n-Play for configuration and use no IRQs. The driver will support up to 16 cards in any one system, of any mix between the two types.

Since the Quicknet cards are Plug-n-Play devices, you will need the isapnp tools package to configure the cards. This package probably came with your Linux distribution. Documentation is available on-line at metalab.unc.edu/LDP/HOWTO/Plug-and-Play-HOWTO.html.

Configuration

The Internet PhoneJACK has only one configuration register that requires 16 I/O ports. The Internet LineJACK card has two configuration registers. Isapnp reports that I/O 0 requires 16 I/O ports and I/O 1 requires 8. The Quicknet driver assumes these registers are configured to be contiguous, i.e., if I/O 0 is set to 0x340, then I/O 1 should be set to 0x350.

If you are new to the isapnp tools, you can jump-start yourself by doing the following:

  • Run pnpdump to get a blank isapnp.conf file

        pnpdump > /etc/isapnp.conf
  • Edit the /etc/isapnp.conf file to set the register I/O addresses.

  • If you have multiple Quicknet cards, make sure you do not have any overlaps. Be especially careful if you are mixing Internet PhoneJACK and Internet LineJACK cards in the same system.

Use of the Driver

To install and load the driver, perform the following:

  • Unpack the distribution file using tar.

  • Run the included ixj_dev_create script to create the device files in the /dev directory. This script will create /dev/ixj0 through ixj16.

  • Run the isapnp configuration utility to configure the cards properly.

  • Edit the /etc/conf.modules file to add a line that specifies the I/O (input/output) port(s) for the cards you just configured with isapnp, and a line to map the device number to the name of our device. You will need to add the following two lines:

        options ixj io=0x300 ixjdebug=a0
        alias char-major-159 ixj

This example assumes you have one card at I/O address 0x300; you will need to modify that value if you assigned card(s) to different ports.

  • Load the module with insmod or modprobe, as you would for any other module.

  • Verify the module loaded by running lsmod.

  • Execute an application that uses the module (tpjack or tpjackd).

______________________

White Paper
Linux Management with Red Hat Satellite: Measuring Business Impact and ROI

Linux has become a key foundation for supporting today's rapidly growing IT environments. Linux is being used to deploy business applications and databases, trading on its reputation as a low-cost operating environment. For many IT organizations, Linux is a mainstay for deploying Web servers and has evolved from handling basic file, print, and utility workloads to running mission-critical applications and databases, physically, virtually, and in the cloud. As Linux grows in importance in terms of value to the business, managing Linux environments to high standards of service quality — availability, security, and performance — becomes an essential requirement for business success.

Learn More

Sponsored by Red Hat

White Paper
Private PaaS for the Agile Enterprise

If you already use virtualized infrastructure, you are well on your way to leveraging the power of the cloud. Virtualization offers the promise of limitless resources, but how do you manage that scalability when your DevOps team doesn’t scale? In today’s hypercompetitive markets, fast results can make a difference between leading the pack vs. obsolescence. Organizations need more benefits from cloud computing than just raw resources. They need agility, flexibility, convenience, ROI, and control.

Stackato private Platform-as-a-Service technology from ActiveState extends your private cloud infrastructure by creating a private PaaS to provide on-demand availability, flexibility, control, and ultimately, faster time-to-market for your enterprise.

Learn More

Sponsored by ActiveState