Daemon News: April 2004 http://ezine.daemonnews.org/200404/

Mirrors Issues April 2004

April 2004 Get BSD Contact Us Search BSD FAQ New to BSD? DN Print Magazine BSD News BSD Mall BSD Support Join Us

1 of 4 05.05.2004 08:45 Daemon News: April 2004 http://ezine.daemonnews.org/200404/

T H I S M O N T H ’ S F E A T U R E S From the Editor Changing User Information by Chris Benedict FreeBSD 4.Ten by Chris Coleman For the past few years, I’ve been a home Linux user with a Chris explains BSD version single user machine. Recently, I’ve been introduced into a numbers and why FreeBSD well-established BSD environment with quite a bit more than just 4.10 doesn’t fit the standard. one user. Shortly after getting my account, I was asked to edit my user information -- the info that shows up with the finger command. Get BSD Stuff After a bit of looking, I came across the command chpass(1). According to the man page, it is the same program as chfn, chsh, ypchfn and ypchsh just under different links. It can be used to change the current user’s home/office phone number, office location, shell, etc. Read More

Introducing CAPI 4 BSD by Jan Stocker This article describes what CAPI is and how it is integrated in the FreeBSD system. Furthermore, it will show you how to setup an ISDN FAX server using CAPI 4 BSD and HylaFax. Search CAPI is a shortcut for Common-ISDN-API and defines an abstraction layer for different ISDN protocols, so an application can be coded independent of the used hardware. The interface, Monthly Ezine created by three ISDN hardware companies (AVM, Stollmann, Search Systec) in the year 1989, supported German ISDN (1TR6) and was called CAPI 1.1. Read More BSD News

EuroBSDCon Call for Papers DaemonNews Ezine by EuroBSDCon Staff released FreeBSD 4.10 RC2 is out! The 3rd European BSD Conference will take place in Karlsruhe, Internet2 Land Speed Germany, from Friday 29th - Sunday 21 October 2004. Record Broken using NetBSD BSD Driver for Intel We are inviting contributions on all areas relating to the *BSD PRO/Wireless 2100 802.11b systems. The programme will cover a variety of subjects, network adapter including Networking, System Internal Development, Tools and OpenBSD 3.5 released Applications. Any topic likely to be of interest to BSD hackers, Diskless, Low-Form-Factor users, admins or enthusiasts will be considered. Timely papers OpenBSD Systems discussing work in progress or recently completed work are Review: OpenBSD 3.4 especially welcomed; as are new and interesting uses of SPARC64 Edition existing work. Topics should have relevance to BSD, but need Next MacOSX codename not be exclusive. Read More leaked!

R E G U L A R C O L U M N S BSD Support This Month in BSD FreeBSD System by Sam Smith Administration :: RE: USB Scanner Sam Smith rounds up the latest major happenings in BSD, FreeBSD System including status reports, release announcements, an Interview Administration :: RE: Exim with and Luke Mewburn, planned work, configuration MacSlash roundup and a new OpenBSD Song: Parody on FreeBSD System Cisco’s. Read More Administration :: RE: How to config CDRom to read udf files FreeBSD Installation Help :: Daemon’s Advocate RE: Problem Getting the by Poul-Henning Kamp Right Driver for a NVIDIA card There are no persons more defensive about their knowledge FreeBSD :: than kids. If my children have picked up some random fact, they RE: WARNING to GNOME will defend it with everything they can, for as long as they can, desktop users rather than admit that maybe they got it just a tiny little bit

2 of 4 05.05.2004 08:45 Daemon News: April 2004 http://ezine.daemonnews.org/200404/

wrong. As we grow older, we learn to appreciate getting more and better information, and of the benefit of more shades of FreeBSD Installation Help :: grey. And then there comes a day in every man’s life where we RE: Problem Getting the feel secure enough to say "Really ? I guess I was totally wrong Right Driver for a NVIDIA then, thanks for setting me straight." And actually mean it. card FreeBSD Installation Help :: In the last couple of weeks I have had my view of the Problem Getting the Right Dæmonized part of the world seriously remodelled and enjoyed Driver for a NVIDIA card it every bit of it. So I guess I must be growing old. Read More FreeBSD Installation Help :: RE: XFree86 4.4 on FreeBSD FreeBSD Installation Help :: XFree86 4.4 on FreeBSD FreeBSD System Administration :: RE: How to config CDRom to read udf files FreeBSD Ports Collection :: RE: WARNING to GNOME desktop users FreeBSD Ports Collection :: RE: Two conflicting ports FreeBSD System Administration :: RE: Undelete FreeBSD System Administration :: RE: How to config CDRom to read udf files FreeBSD Ports Collection :: RE: Two conflicting ports

BSDMall

Office Applications for Mac OS X Panther Ver 2.0 $39.95 Unix Utilities for Mac OS X Panther Ver 3.0 $39.95 Sipura SPA SIP Telephone Adapter Just $105 Sayson Telephone PT-390 Now $95 Digium T1 Controllers $480 OpenBSD 3.4 $37.50 Need Reseller Pricing? Go to Cylogistics!

Miscellaneous

Credits The hard-working crew Tarball Download a tar.gz version of this issue PDF Download a PDF version of this issue

3 of 4 05.05.2004 08:45 Daemon News: April 2004 http://ezine.daemonnews.org/200404/

ISC.org

4 of 4 05.05.2004 08:45 Daemon News ’200404’ : ’"FreeBSD 4.Ten "’ http://ezine.daemonnews.org/200404/editorial.html

April 2004 Get BSD New to BSD? Search BSD Submit News FAQ Contact Us Join Us

FreeBSD 4.Ten Search by Chris Coleman Monthly Ezine Trying to keep things standardized is always tough. The Search harder you try to keep things the same, the more likely it is that something will come up that doesn’t match the rule. Get BSD Stuff Exceptions to standards lessen their effectiveness. However, sometimes following the standard when you should have used the exception has almost the same effect.

Mac OS X

Apple followed a standard naming scheme for their releases for Mac OS 7, 8, and 9. Then when they chose to move to 10, the marketing department chose to use the roman numeral X to stand for ten. The result was lots of confusion that cost them lots of money in marketing costs to help people figure it out, but the extra confusion probably got them the attention they wanted. Early on in the release cycle for the initial release of Mac OS X, I called Apple trying to track down the people in the Open Source department so I could get permission to put Darwin on CD. Of course I got connected with some sales rep who hadn’t heard of Darwin. She also hadn’t heard Mac OS X (I pronounced it like the letter X), and refused to acknowledge that there was a Mac OS 10 in the near future. Maybe I didn’t know the code name for the first Mac OS X release to clue them in to what I was talking about, but I finally did track down the Open Source team. This was well before was working for them. The Mac OS X name stuck, but the confusion as to whether this should be pronounced X as in the letter or 10 for the version number. This was compounded by the fact that the next release was Mac OS X 10.1. I am sure this was partially the reason that Mac OS X 10.2 became so widely known as Jaguar, its codename.

FreeBSD Release Naming

So why do I bring this up? Well, FreeBSD is running into a similar namespace exception that doesn’t seem to work as smoothly as the rest of the release naming conventions. Standard FreeBSD releases have a major branch number, such as 4 or 5 that tell people which codebase they are working from followed by a release number. So FreeBSD 4.1 was released from the 4.x codebase and is the 2nd release in its lifecycle. Then they can have an optional version number that denotes a minor upgrade, such as the recent FreeBSD 5.2.1, which would be code from branch 5, the 3rd release, with one minor update. I get calls all the time from people asking me which version of FreeBSD is the The nice thing stable version. They generally ask are the odd release numbers stable or is that about standards is even ones? Not having a very stong Linux background, this question threw me that there are so for a loop the first time. (I got my first taste of BSD in 1989 and found FreeBSD many of them to in 1995 at around 2.0.5-SNAP and never looked back.) I finally realized that choose from. they were talking about how Linux Kernels are sorted. This doesn’t even -- Andrew S. remotely apply to how BSD in general and FreeBSD in particular does releases. Tanenbaum

1 of 2 05.05.2004 08:45 Daemon News ’200404’ : ’"FreeBSD 4.Ten "’ http://ezine.daemonnews.org/200404/editorial.html

For most BSDs two branches are worked on in paralell, the stable production branch and the current development branch, often referred to as -stable and -current. When the current one goes stable, the old stable one goes into maintenance mode and a new -current branch is born. Generally BSDs will switch a -current tree over to -stable at the dot zero release, ie 5.0, but this is dependant on the release schedule of the project. NetBSD and OpenBSD use a slightly different scheme than FreeBSD does. NetBSD counts in much smaller increments and OpenBSD just keeps counting on up the numbers without regard for major branches. So NetBSD 1.5.0 and NetBSD 1.6.0 would be major branch dot zero releases and in OpenBSD 2.9 and 3.0 have very little to do with different branches. But, thats a different story. Normally during a transition FreeBSD overlaps one or two releases as the -current version merges in and the -stable version fades out. FreeBSD 5.x has proven to be a slightly bigger project than the previous branches. FreeBSD 5 is up to release 5.2.1 and it hasn’t been marked -stable yet. The hope is that FreeBSD 5.3 will make that transition. However, this has created an interesting situation in FreeBSD release naming that hasn’t happened before. Because FreeBSD 5 hasn’t gone stable, FreeBSD 4 can’t fade out into maintenance mode like everyone expected. Since FreeBSD is currently at 4.9, the next logical release is FreeBSD 4.10, as in Four.Ten.

Release Confusion

But 4.10 creates a numerical conundrum, when compared mathmatically, FreeBSD 4.1 and FreeBSD 4.10 are equal. It shouldn’t pose that much trouble, but it may cause a bit of confusion. In my experience selling copies of FreeBSD 4.9 up against 5.2.1, people are more likely to purchase 5.2.1 thinking its the latest release and mis-understand that 4.10 will actually be newer than 5.2.1. Hopefully this will all be cleared up by the release of 5.3 and we won’t need a 4.11 which would be confused with 4.1.1-Release. Several people have suggested alternate naming schemes to help clarify the possible confustion. However while these would clarify things in the short term, it would break from the standard naming and possibly cause more problems for internal numbering and scripts usage. But a lot of the ideas were fun. My first idea was to use 4.X like Mac OS X, but that doesn’t work because we already refer to FreeBSD 4.x as any of the 4 branch releases. One of my favorite suggestions was 4:10, but that would be confused either with AM/PM or a verse from the Bible. Yes, everyone please turn to FreeBSD 4:10 and read along.

Author maintains all copyrights on this article. Images and layout Copyright © 1998-2004 Dæmon News. All Rights Reserved.

2 of 2 05.05.2004 08:45 Daemon News ’200404’ : ’"Changing User Information "’ http://ezine.daemonnews.org/200404/chpass.html

April 2004 Get BSD New to BSD? Search BSD Submit News FAQ Contact Us Join Us

Changing User Information Search by Chris Benedict Monthly Ezine For the past few years, I’ve been a home Linux user with a single user machine. Recently, I’ve been introduced into a well-established BSD Search environment with quite a bit more than just one user. Shortly after getting my account, I was asked to edit my user information -- the info that shows up with the finger command. Get BSD Stuff After a bit of looking, I came across the command chpass(1). According to the man page, it is the same program as chfn, chsh, ypchfn and ypchsh just under different links. It can be used to change the current user’s home/office phone number, office location, shell, etc. Being a former Linux user, I wanted to change my shell to something I was more familiar with, the bash shell. A quick look around with the which(1) and locate(1) commands found the correct path to bash. The OpenBSD book I had also mentioned that the path to the shell had to be added to /etc/shells by someone with the right privileges. The man page says that chpass is not limited to changing only the current user’s information, but also everyone else’s as well, if you have the right access levels. When the chpass command is run, it opens up for editing in $EDITOR. (default is vi):

$ chpass # Changing user database information for chrisb. Shell: /bin/sh Full Name: Chris Benedict Office Location: Office Phone: Home Phone:

Of course, information such as the name would most likely be different, along with anything else that has been changed. After filling in the other fields, you can view the result by using the finger command (see finger(1)): (Before)

$ finger chris Login: chrisb Name: Chris Benedict Directory: /home/chrisb Shell: /bin/sh No Mail. No Plan. (After)

$ finger chris Login: chrisb Name: Chris Benedict Directory: /home/chrisb Shell: /bin/sh Office: Illinois USA, 555-123-4567 Home Phone: 555-123-4568 No Mail. No Plan.

You can also add other fields like Password, Uid, Gid, Class, Change, Expire, Other Information and Home Directory (see chpass(1) for more detailed info). However in order to change items like gid, you need the proper access. -a Allows the super-user to directly supply a user database entry using the format stated in

1 of 2 05.05.2004 08:45 Daemon News ’200404’ : ’"Changing User Information "’ http://ezine.daemonnews.org/200404/chpass.html

passwd(5). -p Allows the super-user to supply an encrypted password using the format described in crypt(3). -e expiretime Used the set the account expire time. -s newshell Attempts to change the user’s shell to newshell.

NIS Support

Sometimes chpass is compiled with support for NIS (Network Information Service, aka Yellow Pages) Interaction. When it is, rpc.yppsswdd(8) is used to make changes to the password map, and because of that, it only allows modification of the user’s password, shell and GECOS fields. The only time the user that invoked the command does not have to supply a password is when it is run by the super-user on the NIS master server. The restrictions of chpass without NIS are still in effect, the command will only allow the current user to modify their own information, and the Password field can only be modified with the correct permissions, yppasswd(1) or passwd(1) should be used. The manpage discourages directly editing a passwd entry on a local passwd file when NIS is being used as it could cause confusions. The super-user on the local system may use chpass to add a record, but it is not recommended as it appends the entry to the master.passwd file after the special NIS ’+’ entried. The administrator should instead use vipw(8) to modify the local password file when NIS is running. The super-user on the NIS master server is permitted to add new records to the NIS password maps as long as the rpc.yppasswd(8) server was started with the -a flag. chpass usualy only updates the local password database, use -y to update the NIS maps instead. When chpass is compiled with support for NIS Interaction, it adds several new options: -l Used to force modification of the local copy of a user’s password file. -y Has the opposite effects of -l -d domain Specify a specific NIS domain (default is the system domain name) -h host Specify the hostname or address of the NIS server to use -o Force the use of RPC-based updates when communicating with yppasswdd(8) ("old-mode"). When run by the super-user it allows unrestricted access to the NIS passwd maps using a dedicated, non-RPC based mechanism.

I got my shell changed, my information updated, and everything is going good so far. This should be more than enough information for you to be able to use chpass.

Author maintains all copyrights on this article. Images and layout Copyright © 1998-2004 Dæmon News. All Rights Reserved.

2 of 2 05.05.2004 08:45 Daemon News ’200404’ : ’"Introducing CAPI 4 BSD "’ http://ezine.daemonnews.org/200404/CAPI4BSD.html

April 2004 Get BSD New to BSD? Search BSD Submit News FAQ Contact Us Join Us

Introducing CAPI 4 BSD Search by Jan Stocker Monthly Ezine Abstract Search This article describes what CAPI is and how it is integrated in the FreeBSD system. Furthermore, it will show you how to setup an ISDN FAX server using CAPI 4 BSD and HylaFax. Get BSD Stuff Introduction

CAPI is a shortcut for Common-ISDN-API and defines an abstraction layer for different ISDN protocols, so an application can be coded independent of the used hardware. The interface, created by three ISDN hardware companies (AVM, Stollmann, Systec) in the year 1989, supported German ISDN (1TR6) and was called CAPI 1.1. In 1994, ETSI (European Telecommunication Standardisation Institut) defined a new standard for D-Channel protocols. The outcome was CAPI 2.0. This version now allows the use of all common D-channel: Euro-ISDN, DSS1, AT&T ISDN (5ESS) etc., as well as different B-channel protocols: HDLC, T.30, T.30(Fax), Speech, X.25 with only one interface. The functionality of CAPI 2.0 includes basic call control (connect/disconnect,send/receive data), DTMF detection/generation, multiple application support, multiple controller support, support for most supplementary services (Terminal Portability, Hold/Retrieve, Suspend/Resume, Explicit Call Transfer). FreeBSD currently contains only a subsystem called ISDN 4 BSD. This module gives you access to the ISDN hardware using a proprietary protocol. The module’s highest value is its ability to use the I4B devices for network connections. It also has some limited support for answering machine applications. But ISDN has one more big feature apart from voice and plain data connections: FAX. Nearly all FAX solutions require a CAPI 2.0 compatible interface, so FreeBSD users had to use their old analog modems for this job. Thomas Wintergerst, who has been working on CAPI solutions for more than 10 years, implemented a complete CAPI 2.0 compatible interface for FreeBSD, which I present in this article with a focus on FAX. CAPI 4 BSD

CAPI 4 BSD - short C4B - implements all API functions specified by CAPI 2.0. Aside from the application interface, C4B has drivers for AVM (B1,...), active ISDN hardware controllers. The author is also working on drivers for Digi Europe (ITK) and Eicon cards. As for now, C4B is limited to active controllers only, because for passive controllers you need to implement all access and data control functions in nearly real time. For FAX connections in particular, this is a hard task (FAX G3 is made up of analog telephony and not plain data connection). Active controllers work mostly with DSPs doing the "analog" stuff and give you a fine interface. Today you can get a cheap AVM B1 ISA for 20 Euro and the PCI version for about 80 Euro on eBay. First C4B alpha Version was thrown to the public in the year 2003 on July, 14th. The development for FreeBSD 4.x stops with V0.6 on 2003-03-10 and continues to V0.91 only for the FreeBSD version 5.x. The source files are mostly up to date with -current and can be altered for new versions very easily. Perhaps at the time that you read this, you can find C4B integrated in the base system. C4B is based on following modules/programs:

1 of 7 05.05.2004 08:45 Daemon News ’200404’ : ’"Introducing CAPI 4 BSD "’ http://ezine.daemonnews.org/200404/CAPI4BSD.html

capidev - Creates the pseudo device /dev/capi20 building the bridge between kernel and user land. kcapimgr - This is the kernel module handling all transfer between CAPI and the hardware. avmaicctl - You need this tool to upload the AVM firmware to a specific AVM controller. libcapi20.so - This is a shared library for creating own CAPI applications. i4bcapimgr - It attaches a virtual controller for each ISDN controller for I4B. So, I4B is using C4B for accessing the active ISDN cards. capitest - This program is for test purposes only. You can send fax/voice data from a specific MSN/DDI to a number of your choice. There is also a full function test using both b-channels in a loop-back. capitrace - With capitrace, you can create a complete trace of both controller and application side. This is a helpful debug tool for finding connection problems.

C4B Installation

You need the C4B distribution files for patching the FreeBSD base system. The latest version can be downloaded directly from the author’s homepage: http://www.nord-com.net/thomas.wintergerst Please download and extract the contents of the archive to a directory of your choice (not /usr/src).

$ cd /root && gunzip -c /mydownload/c4b-0.91.tar.gz | tar xvf -

The file "c4b/Readme" contains detailed installation instructions. For the impatient user: read here what to do: First install all new files and patch some existing ones. You need to change to the directory matching your FreeBSD system version. Do not use the directory FreeBSD-Current; it only contains template files. For a recent -current use a directory with the nearest date, call the script "do-patches.sh" and have a look for error messages.

$ cd c4b/patches/FreeBSD-Current-040329

After a successful run, your /usr/src directory contains now all required files for C4B. Because C4B normally is used as kernel module you do not need to edit your kernel configuration file. But there is one exception: If you are using I4B you need to disable - yes "disable" - all active controller devices now handled by C4B p.e. the AVM B1 (please read section "C4B & I4B"). Now build and install a kernel as you normally do:

$ cd /sys/i386/conf $ config GENERIC $ cd ../../compile/GENERIC $ make depend && make all && make install

There are some userland executables that you need to build. You can build each by hand (described by detail in the installation file comes with C4B) or by simply making a complete world.

$ cd /usr/src $ make buildworld && make installworld

C4B Configuration

If you are using an ISA controller, you need to tell the C4B subsystem what type of card you are using and what its configuration data is. FreeBSD 5.x supports device hardware configuration with a file /boot/device.hints. All PnP compatible PCI devices do not need to be configured by hand. The file /sys/i386/conf/NOTES contains all necessary information. The following lines must be added to /boot/device.hints for a standard AVM B1 installation. Please also make sure that your BIOS has allocated IRQ 5 for ISA devices, so it will not be used by other peripherals.

--- # AVM-B1 ISA hint.avmaic.0.at="isa" hint.avmaic.0.port="0x150" hint.avmaic.0.irq="5 ---

The AVM B1 has a small jumper on it. You need to set it to a free I/O port and this must match your line in device.hints. Furthermore, C4B needs to be initialized and the active ISDN controllers need to be fed with the firmware to work properly. Thomas worked out a rc-script doing this for you if the information is written to /etc/rc.conf. As usual, all possible variables are documented in /etc/defaults/rc.conf. Enable C4B and set the driver to "avmaic" for AVM based cards

---

2 of 7 05.05.2004 08:45 Daemon News ’200404’ : ’"Introducing CAPI 4 BSD "’ http://ezine.daemonnews.org/200404/CAPI4BSD.html

capi_enable="YES" capi_load_ctlr_driver="avmaic" ---

For the firmware download - or upload :) - there is a combination of 3 commands: First you need to define a unique name for your download command, in this example "b1" and two more assignments capi__cmd and capi__flags. avmaicctl needs to know which CAPI controller to use. In this case I use CAPI controller number 1 (because CAPI starts with 1 and not 0 like I4B). The firmware is located at /usr/share/capi/, there is a special firmware for USA purposes. Please use this if you are located in the United States and have difficulties with the standard b1.t4 firmware.

--- capi_download_commands="b1" capi_b1_cmd="/usr/sbin/avmaicctl" capi_b1_flags="-d 1 /usr/share/capi/avmaic/b1.t4" ---

C4B uses syslog facilities to write messages in the logfile. The detail grade can be set in the file /boot/loader.conf with the line.

--- capi.capidev.loglevel = n ---

where n can be 0 for few messages, 1 for errors, 2 for information, 3 for trace and 4 for many debug messages. The loglevel can also be set with and an equally named variable. You can read all about this in the manpage for capidev

$ man 4 capidev

There are three more entries for setting up the capi device:

--- capi.capidev.devowner= capi.capidev.devgroup= capi.capidev.devmode = ---

However, I recommend using /etc/devfs.conf for such things, because functions with the same context should stay in the same position.

C4B Test & Debug

To get C4B up & running you must reboot your server after setting up C4B correctly. Boot messages and dmesg output must be something similar like this:

--- capidev: CAPI device created avmaic0: at port 0x150-0x16f irq 5 on isa0 avmaic0: "AVMB1-1" successfully attached as CAPI controller 1 ---

If it does not work, look in the /var/log/messages file. FreeBSD cannot probe the IRQ because the IRQ was not allocated in BIOS for ISA devices and the given I/O port does not match the jumper settings, and so on. The program "capitest" has some functionality to make outcalls and accept incoming calls for fax and voice communications. Capitest needs a file to send. This is raw PCM a-law bit invers for voice calls (ask your favorite search engine for a converting tool); for FAX calls it sends raw SFF files, which are similar to TIFF-G3 but not the same. Capitest can give you information about your installed ISDN card and the current C4B state. Just call

$ capitest -l -v --- 1 controller installed: Controller 1 Name: AVMB1-1 Manufacturer: AVM Berlin GmbH Type of controller: AVM B1 ISA Driver name: avmaic Driver unit number: 0 BSD driver version: 0.8 Manuf. firmware version: 49.2 Serial number: 2012394 Number of B-channels: 2 Global options: 0x00000039 Internal controller support

3 of 7 05.05.2004 08:45 Daemon News ’200404’ : ’"Introducing CAPI 4 BSD "’ http://ezine.daemonnews.org/200404/CAPI4BSD.html

DTMF support Supplementary services support Channel allocation support B1 protocol support: 0x4000001f 64 kbit/s with HDLC framing 64 kbit/s bit-transparent operation with byte framing V.110 asynchronous operation with start/stop byte framing V.110 synchronous operation with HDLC framing T.30 modem for Group 3 fax Unknown B1 protocol bit #30 B2 protocol support: 0x00000b1b ISO 7776 (X.75 SLP) Transparent LAPD in accordance with Q.921 for D-channel X.25 (SAPI 16) T.30 for Group 3 fax ISO 7776 (X.75 SLP) modified to support V.42bis compression V.120 asynchronous mode V.120 bit-transparent mode B3 protocol support: 0x8000003f Transparent T.90NL with compatibility to T.70NL, in accordance with T.90 Appendix II ISO 8208 (X.25 DTE-DTE) X.25 DCE T.30 for Group 3 fax T.30 for Group 3 fax with extensions Unknown B3 protocol bit #31 ---

The next thing you should try is to call a phone next to you. Do not worry about the missing PCM file--just send some noise over the line:

$ capitest -o /root/.cshrc -tv 0477775886

A complete self test is done by using X.75 protocol for data transfer:

$ capitest -s -tx 04777775886

While playing with capitest please note: All AVM B1 ISA cards can not send and receive at the same time--only PCI cards can manage that! Furthermore, capitest has some more nice features, such as a batch service. This is useful when making stress tests on your hardware. Please look to the man page for info (man capitest). The application "capitrace" can create a complete dump of messages sent from and to the controller over the capi20 device. This does not include libcapi20, but it does not matter because the functions are nearly thin glue. Some parameters define the detail of the output, if you want everything just use

$ capitrace -a -bl2048 -td+ -tb+ application.bin

for a complete trace on the application layer, including all 2048 bytes for each package. The controller layer can be accessed by using "-c " instead of "-a" and you can specify both options in one call:

$ capitrace -a [options..] application.bin -c 1 [options..] controller.bin

The created files contain the trace as binary data and need to be converted for human reading with:

$ capitrace -i application.bin

For a detailed trace file the conversion may take several minutes, so please be patient.

C4B & I4B

If you are using I4B for network access with your active ISDN card, some things change. You must disable the AVM B1 device in your kernel configuration file for I4B, because I4B and C4B can not access the ISDN card on hardware level. (If my mind does not play tricks on me, I think you have to leave at least one passive device in the kernel to get I4B compiled, but that may be old stuff.) So how is I4B creating a ISDN connection? C4B comes with a module called i4bcapimgr. This piece of code adds a virtual controller to I4B for each real controller C4B knows. As for now, I4B acts like a CAPI application talking to the ISDN line over C4B and - as CAPI defines - any other CAPI application can use the ISDN card, too. The rc script for C4B takes loads the i4bcapimgr depending on a running I4B subsytem, so no more changes are needed. ISDN FaxServer

Now, after having a running C4B system, let us give a FAX server. Hylafax is a complete client/server fax solution providing ISDN access with an additional capi4hylafax package.

4 of 7 05.05.2004 08:45 Daemon News ’200404’ : ’"Introducing CAPI 4 BSD "’ http://ezine.daemonnews.org/200404/CAPI4BSD.html

Hylafax

Hylafax is found in the ports system ports/comms/hylafax, and does everything you need: client connection, spooling, document converting and so on. It does not have a dependency on ghostscript, but you need it if your clients do not create TIFF-G3 documents, like Pyla. So first install ghostscript. I prefer not using X11 extensions for a server:

$ cd /usr/ports/print/ghostscript-gnu-nox11 && make install clean

Now you are ready to install hylafax itself:

$ cd /usr/ports/comms/hylafax && make install clean

Do not enter anything special when asked. Just use the defaults, except choosing paper format when living in Europe (Press 13, write "A4", ). I do not know why the server application for HylaFax is not being installed correctly, but doing it like this needs only a few hand strikes:

$ chown uucp /usr/local/sbin/hfaxd $ chmod 4555 /usr/local/sbin/hfaxd

This gives hfaxd the correct rights to communicate with the module faxqd and read access to the spool directory. You also need to create a startup script for hylafax in /usr/local/etc/rc.d to get it up at boot time. There is a sample file called hylafax.sh.sample but it leaks hfaxd, so you must add hfaxd start and shutdown lines. The following script (/usr/local/etc/rc.d/hylyfax.sh) is complete and can be used as is:

--- #! /bin/sh # hylafax startup example. # be sure to initialize the followings: # server: /usr/local/sbin/faxsetup # modems: /usr/local/sbin/faxaddmodem # incoming calls: /etc/ttys case "$1" in start) if [ -x /usr/local/sbin/faxq ]; then /usr/local/sbin/faxq && echo -n ’ faxq’ fi if [ -x /usr/local/sbin/hfaxd ]; then /usr/local/sbin/hfaxd -i hylafax -o fax && echo -n ’ hfaxd’ fi ;; stop) killall hfaxd && echo -n ’ hfaxd’ killall faxq && echo -n ’ faxq’ ;; *) echo "Usage: ‘basename $0‘ {start|stop}" >&2 exit 64 ;; esac exit 0 ---

Do not forget to set execute rights on this file

$ chmod a+x /usr/local/etc/rc.d/hylyfax.sh

Continuing with the hylafax general setup. The setup is nearly self explaining. You can enter your dialing configuration, but please answer the question "Do you want to run faxaddmodem to configure a modem [yes]?" with NO, because we will later create a configuration file for a special CAPI modem.

$ /usr/local/sbin/faxsetup

Capi4Hylafax

Capi4Hylafax is the add-on for Hylafax concerning CAPI support. This FreeBSD is not in the ports system at the time I write this article, but will be in near future and the following patches may be out-of-date. But for now, you need to download and patch capi4hylafax like this: Download http://sources.zabbadoz.net/freebsd/ports/experimental/port-comms-capi4hylafax-20030809-01.tbz and unpack it to /usr/ports. Now you have a port for capi4hylafax in your local ports tree. Capi4Hylafax needs automake and the dependecy tracking in current ports system is buggy, so you may install automake by yourself, if it is not installed anyway.

5 of 7 05.05.2004 08:45 Daemon News ’200404’ : ’"Introducing CAPI 4 BSD "’ http://ezine.daemonnews.org/200404/CAPI4BSD.html

$ cd /usr/ports/automake && make install clean

AVM, creator of the capi4hylafax source codes, assumes that the CAPI implementation has a buffer for eight data packets, but CAPI only defines that the minimum must be seven. FreeBSD implementation really has only seven. You can manage that dynamically in your CAPI application but AVM has not implemented such a data flow mechanism. Therefore, we need to change the define CAPI_MAX_OUTSTANDING_FRAMES from eight to seven. The next version of C4B may support eight buffers, because AVM cards can internally handle that, too.

$ cd /usr/ports/comms/capi4hylafax $ make extract $ make patch

Edit work/capi4hylafax-20030809/src/capi/capi2def.h and change the line

--- #define CAPI_MAX_OUTSTANDING_FRAMES 8 ---

to

--- #define CAPI_MAX_OUTSTANDING_FRAMES 7 ---

Now you can install cypi4hylafax.

$ make install clean

After the successful installation, we must write the configuration for the CAPI pseudo modem. There is a short script to give you a text ui for that:

$/usr/local/sbin/c2faxconfig

The output is written to the file /var/spool/hylafax/etc/config.faxCAPI. Please edit this file for further information, p.e. DDI setup and replace all "/var/spool/fax" entries with "/var/spool/hylafax". You also must add a line for the new CAPI sendfax programm to the main hylafax configuration at /var/spool/hylafax/etc/config:

--- SendFaxCmd: /usr/local/bin/c2faxsend ---

Hylafax needs the program c2faxrecv running for using the CAPI. This is no typo: c2faxrecv is not only for receiving fax pages over CAPI--it also adds the pseudo CAPI modem to hylafax on the fly, which is needed to send a fax. So if c2faxrecv is not started, hylafax does not know the CAPI fax modem and can not send a fax. To start c2faxrecv at boot time at the following line to /etc/rc.conf

--- capi4hylafax_c2faxrecv_enable="YES" ---

Clients

You are now ready to use hylafax on the local host, but a client/server system wants to be used remotely. So add a user to the configuration file /var/spool/hylafax/etc/hosts.hfaxd. An entry is something similar like passwd file, but different :) Login names max contain regular expressions and the passwords are crypted. A line

--- faxuser ---

adds a user "faxuser" with no password and access from any computer. That’s enough for the start. You also can use "faxadduser" for adding remote user to hylafax. There are so many clients out there, so I do not want to make a list here. On the Hylafax home page you will find a list with commercial and free software products that talk to the hylafax server. There are also applications that do not need the hfaxd server, i.e. one solution uses a special printer setup on the server and a web gui for entering numbers to dial; others extract the number from the PostScript file. One application not linked that I want to mention here is Pyla. Pyla is a non-commercial solution written in Python and can be used on different plattforms. For MS Windows clients http://www.teamsw.it/pyla/pylasetup.html gives you a detailed instruction how to setup your client.

6 of 7 05.05.2004 08:45 Daemon News ’200404’ : ’"Introducing CAPI 4 BSD "’ http://ezine.daemonnews.org/200404/CAPI4BSD.html

Conclusion

C4B evolved to a complete and stable CAPI implementation for FreeBSD. We now have the possibility to port standard CAPI based programs to our favorite OS in an easy way. Hylafax with Capi4Hylafax is the first and easiest solution using C4B, making FreeBSD into a good ISDN fax machine. Links

C4B - http://www.nord-com.net/thomas.wintergerst/ C4B patches - http://sources.zabbadoz.net/freebsd/i4b/ Capi4Hylafax (FreeBSD Port) - http://sources.zabbadoz.net/freebsd/ports/experimental/ HylaFax - http://www.hylafax.org Capi4Hylafax - http://www.avm.de Pyla - http://www.teamsw.it/pyla/ Copyright

(C) 2004 Jan Stocker Redistribution of this text is permitted as long as the copyright is retained and all text altering is marked by author and date. Version 1.0 - 2004-04-28

Author maintains all copyrights on this article. Images and layout Copyright © 1998-2004 Dæmon News. All Rights Reserved.

7 of 7 05.05.2004 08:45 Daemon News ’200404’ : ’"EuroBSDCon Call for Papers "’ http://ezine.daemonnews.org/200404/eurobsdcon.html

April 2004 Get BSD New to BSD? Search BSD Submit News FAQ Contact Us Join Us

EuroBSDCon Call for Papers Search by EuroBSDCon Staff Monthly Ezine Call For Papers Search EuroBSDCon 2004 29 - 31 October 2004 http://2004.eurobsdcon.org/ Get BSD Stuff The 3rd European BSD Conference will take place in Karlsruhe, Germany, from Friday 29th - Sunday 21 October 2004.

We are inviting contributions on all areas relating to the *BSD systems. The programme will cover a variety of subjects, including Networking, System Internal Development, Tools and Applications. Any topic likely to be of interest to BSD hackers, users, admins or enthusiasts will be considered. Timely papers discussing work in progress or recently completed work are especially welcomed; as are new and interesting uses of existing work. Topics should have relevance to BSD, but need not be exclusive. Recent topics have included : Jordan Hubbard giving a Unix geek’s perspective on Mac OS X A Business Case for FreeBSD MTA Performance on *BSD Monitoring the World with NetBSD Running and Tuning OpenBSD network servers A secure Hosting environment for Apache/Database/PHP applications Package Views Virtual Private Networks using FreeBSD - a casestudy Porting NetBSD to the JavaStation

Plus tutorials from Greg Lehey on Debugging Kernel Problems, Paul Richards on Device Drivers and Ian Darwin on Secure Internet Firewalls with OpenBSD. Other speakers have included Phillipp Buhler, Henning Brauer, Poul-Henning Kamp, Alistair Crooks, Dag-Erling Sm¯rgrav, Ian Darwin, Hubert Feyrer and Bram Moolenaar. Links to the past conferences can be found on the conference website. Abstracts for the conference should be 250-500 words long. Final papers should normally last about 45 minutes, including 10 minutes for questions and answers. if you need more time for your presentation, please tell us when submitting an abstract. Abstracts should be submitted using the form at http://2004.eurobsdcon.org/cfp.html We shall acknowledge all submissions. Significant dates: Closing Date for Abstracts May 15th Authors Notified by May 31st Final Papers due September 30th Queries should be sent to the programme committee at [email protected]

1 of 2 05.05.2004 08:46 Daemon News ’200404’ : ’"EuroBSDCon Call for Papers "’ http://ezine.daemonnews.org/200404/eurobsdcon.html

Author maintains all copyrights on this article. Images and layout Copyright © 1998-2004 Dæmon News. All Rights Reserved.

2 of 2 05.05.2004 08:46 Daemon News ’200404’ : ’"This Month in BSD "’ http://ezine.daemonnews.org/200404/bsdthismonth.html

April 2004 Get BSD New to BSD? Search BSD Submit News FAQ Contact Us Join Us

This Month in BSD Search Sam Smith Monthly Ezine FreeBSD Search January-February Status Report Lots happening Get BSD Stuff http://kerneltrap.org/node/view/2666 Planned Work Discussion on KernelTrap Dynamic Mbuf Allocation via UMA Planned Network Stack changes MAC Framework compared with Linux Security Modules http://kerneltrap.org/node/view/2574 OpenBSD’s PF linked into system build Note from Commit Summaries The FreeBSD Commit Summaries (Thanks Mark) http://www.xl0.org/FreeBSD

NetBSD

NetBSD 1.6.2 Released

http://kerneltrap.org/node/view/2564 Changelist NetBSD 1.6.2 on Sparc64 review on OSNews.com 2003 Status Report http://www.netbsd.org/Foundation/reports/2003.txt Diskless NetBSD Workstation (here’s how) http://www.swm.ukshells.co.uk/tmp/Diskless-NetBSD-Workstation.html Interview with Luke Mewburn http://www.newsforge.com/os/04/03/02/1946219.shtml Moving towards 2.0 How you can help

1 of 3 05.05.2004 08:46 Daemon News ’200404’ : ’"This Month in BSD "’ http://ezine.daemonnews.org/200404/bsdthismonth.html

OpenBSD

New Release coming: 3.5

Order CD Many many changes New platform: amd64 New platform: cats board from Simtec. New platform: amd64 New T-Shirt New Song Parody on Cisco’s New Version of XXX book Interview with Marc Espie Covering a range of topics http://www.onlamp.com/pub/a/bsd/2004/03/18/marc_espie.html Pegasos Port Halted Theo’s first message Followup Dale Rahn’s view Their view. OpenBSD Journal Coverage Daily DaemonNews has comments OSNews Article OpenBSD-newbies list added to MARC http://marc.theaimsgroup.com/?l=openbsd-newbies&r=1&w=2 SMP work in full flow Call for additional funding

DragonFly

Interview with Matthew Dillon Detailed and informative

http://www.osnews.com/story.php?news_id=6338 Goals for 1.0 http://www.shiningsilence.com/dbsdlog/archives/000298.html New contrib/ infrastructure making imports easier (very good idea)

http://www.shiningsilence.com/dbsdlog/archives/000287.html Major work done on build infrastructure Initial note Final note Mascots Ordering details Pictures Perl moving to ports at some point "At some point" No longer required to build a kernel Other

2 of 3 05.05.2004 08:46 Daemon News ’200404’ : ’"This Month in BSD "’ http://ezine.daemonnews.org/200404/bsdthismonth.html

Initial IPC support added ‘route show‘ implemented New ISO release with USB Improved Performance on NFS with Gigabit Arbitrary Interface Names

Apple

MacSlash roundup

The Command Line - The Best Newbie Interface? Logging out Users Remotely

Worth Reading

O’Reilly Announces BSD Hacks book (my copy is already on order)

http://www.oreilly.com/catalog/bsdhks/ Comparison of AMD64 and i386 Well worth reading http://www.thejemreport.com/modules.php?op=modload&name=News&file=article&sid=117 OnLAMP.com articles Using FreshPorts Panther, Python and CoreGraphics Database templates with MySQL Embedded BSD Systems Linux-Mag.com article on the BSDs Let the Great Unwashed know something better exists :-)

Author maintains all copyrights on this article. Images and layout Copyright © 1998-2004 Dæmon News. All Rights Reserved.

3 of 3 05.05.2004 08:46 Daemon News ’200404’ : ’"Dæmons Advocate: The pleasures of... http://ezine.daemonnews.org/200404/dadvocate.html

April 2004 Get BSD New to BSD? Search BSD Submit News FAQ Contact Us Join Us

Dæmons Advocate: The pleasures of being Search waaaaaayyyyy off the mark.

By Poul-Henning Kamp Monthly Ezine Search There are no persons more defensive about their knowledge than kids. If my children have picked up some random fact, they will defend it with everything they can, for as long as they can, rather than admit that maybe they got it just a tiny little bit wrong. As we grow older, we learn Get BSD Stuff to appreciate getting more and better information, and of the benefit of more shades of grey. And then there comes a day in every man’s life where we feel secure enough to say "Really ? I guess I was totally wrong then, thanks for setting me straight." And actually mean it. In the last couple of weeks I have had my view of the Dæmonized part of the world seriously remodelled and enjoyed it every bit of it. So I guess I must be growing old. I am, of course, talking about my Fundraising 101 homework. I got many emails and comments along with the donations, and some of them were rather provocative reading, but none more so than a self admitted newcomer to FreeBSD who asked me "Why didn’t you do this ten years ago ?" That is a very reasonable question, considering that we almost totally missed out on the fin-de-siecle madness of the nineties when compared to the Linux camp. But the first thought that happened to cross my mind was "Gee, that could have been fun!, I would have been lynched along with DG & Jordan for FreeBSD.inc". And then I realized that most of our users were not around back then, much less privy to the internal antics of the project at the time, and that I probably had a pretty wrong perception of the mindset of our users these days. Point made. Thank you! The next kind of comments, of which there were rather many, which went along the lines of "I thought you already were paid to do FreeBSD full time ?". We are fortunate to have some very good people who work on FreeBSD full time because their employers have a significant interest in FreeBSD, and fortunately this almost always generates stuff which benefits FreeBSD, so we are very happy about that sort of arrangement. But neither I, nor anybody else (to my knowledge) are paid to work on FreeBSD full time, with their priorities set by what FreeBSD as an needs, and that is one of the reasons why the SMPng project has had wheels under the deadlines almost from the start. I have personally pushed a lot of SMPng work in front of me with the "I just need to get some time", "When I have a week off at some point" and similar wishfull thinking which just never quite happened. Until now, that is. My expectation and hope when I finally crossed the barrier and decided to try my fund-raising project was that I would be able to find a number of companies who would be willing to spend maybe $500 and then if I were lucky I might be able to get some of the various foundations like NLnet, DKUUG, NUUG and maybe ISC to drop a note or two in the collection box as well. And if I were lucky I would be able to raise money for three, maybe four months.

1 of 2 05.05.2004 08:46 Daemon News ’200404’ : ’"Dæmons Advocate: The pleasures of... http://ezine.daemonnews.org/200404/dadvocate.html

I seriously expected it to be an uphill battle all the way, but I thought I would give it a shot anyway because FreeBSD needs to get some of these SMPng issues resolved, and a full-time effort is needed to get through them in finite time. And I was prepared to write applications to foundations, and emails to some of the companies using FreeBSD I know off and so on. However, I was also afraid that my suggestion would lead to a lot of controversy, so I deliberately timed my announcement to right before a bunch of holidays, in order to not draw a full broadside of monday morning grumpy people and a slashdotting as the first response. The lesson I learned in the next week was that the FreeBSD user community is very much behind the project, and not only willing to do their piece to make FreeBSD happen, but also did so with an urgency, which I still find truly amazing. A very clear message of "Get Cranking!" was received at my end. There is a classical Donald Duck story where Gyro Gearloose gets into serious trouble with a robot of his own design. The punchline is something like a car accident and Gyro asks the robot "Why didn’t you tell me about the tree ???" and the robot answers "You didn’t ask me about that". I can’t help wonder if maybe the question I asked, was a question we should have asked a lot earlier, instead of agonizing about not having enough time for FreeBSD development ? Have we as developers through our fear of commercialism and impurity and corrupt influences of money slowed down FreeBSD development and through lack of courage and visions hampered our own progress ? Imagine for a moment if our usercommunity was actually willing to fund a couple of persons full time as the "base staff", and a continuing stream of three or six months "scholarships" to different committers for specific projects ? A couple of weeks ago I would have said "Yeah, right, as if..." but today I am pretty damn sure that the user community wouldn’t stop at that if we asked them. And I can only thank them for setting me straight about that. The ball is back between the FreeBSD developers, and there is no better time for it than right before our core team election in the next couple of months: We need to decide how we want to tackle the very hard development tasks in the future, given that our user community seems willing and able to fund some of it. In the meantime: A big Thank You! to the people and companies who have donated money to my project. I will do whatever I can to live up to the trust you have in me. Poul-Henning

Author maintains all copyrights on this article. Images and layout Copyright © 1998-2004 Dæmon News. All Rights Reserved.

2 of 2 05.05.2004 08:46