New ISDN driver

Hans Petter Selasky hselasky at c2i.net
Thu Aug 11 17:34:43 GMT 2005


Hi all,

I'm out with a pre-release of my latest ISDN/USB driver. It should be very 
easy to install. Until further you need FreeBSD 5/6/7, though there are some 
plans to port it to NetBSD.

What you get this time is a cloneable "/dev/i4b" and "/dev/capi20", besides 
from all those other improvements I have mentioned earlier.

To make I4B compile on all platforms, I have moved all include files to 
"/usr/include/i4b/include" and "/sys/i4b/include", including "capi20.h".

My CAPI library and helper functions are 99% compatible with Linux, though not 
completely identical. To make a Linux CAPI application compile on FreeBSD you 
only need to include the file "/usr/include/i4b/include/capi20.h" and make a 
few one-line patches. See "man capi" for how to resolve those one-liners. 
NOTE: there is no need to install liblinuxcapi !

So far I have test compiled my "capi20.h" with "chan_capi-0.3.5", which is a 
module for the Asterisk PBX, though I have plans for a "chan_i4btel" under 
BSD license, that will use CAPI aswell, 

One thing to note is that the controller numbers start at 0 so that I4B 
controller 0 is CAPI controller 0. Other implementations start controller 
numbers at 1, but I see no reason to confuse people, haveing more than one 
number for the same controller. If controller 0 is not valid please change 
the application in question to allow that value. If you cannot change the 
application, one can use "8" or "MAX_CONTROLLER" instead of "0" for outgoing 
calls.

See "/usr/src/usr.sbin/i4b/capitest/main.c" for an example on how to take full 
advantage of my CAPI 2.0 implementation.

See "/usr/src/usr.sbin/i4b/isdntest/main.c" if you want to stay updated on the 
I4B API.

As a consequence of the changes I have made, you can now run "isdntest" while 
"isdnd" is running. I have plans to make the device allocation dynamic, so 
that applications can allocate devices like "/dev/i4btelX" dynamically, 
without need for configuration. Until further I have put all the "counts" in 
"/sys/i4b/include/i4b_global.h". If you need more than 8 units please edit 
that file.

My driver now supports all cards that are supported by the official version of 
I4B except active CAPI controllers and one "Frizt" card. So if you have got 
an ISDN card or device the chances should be good that my driver will support 
it.


Download the three files below into a new directory and type "make install".
To uninstall type "make deinstall".

http://home.c2i.net/hselasky/isdn4bsd/privat/temporary/155/Makefile
http://home.c2i.net/hselasky/isdn4bsd/privat/temporary/new_ihfc_1_5_5.tar.bz2
http://home.c2i.net/hselasky/isdn4bsd/privat/temporary/new_ihfc_1_5_5.diff.bz2

Type "make help" for more help.

PS: If you have the source tree in a directory different from "/usr/src", 
simply use "make S=/usr/mydirectory install". The only files that will not 
get installed here is a copy of the header files, which is always installed 
in /usr/include/....

A little note. If you are using FreeBSD 7 current from before 8th of August 
2005, you will have to change "#if (__FreeBSD_version >= 700001)" to "#if 0" 
in the two files that break during kernel compilation. These are
"/sys/i4b/layer4/i4b_capidrv.c" and "/sys/i4b/layer4/i4b_i4bdrv.c".


--HPS


More information about the freebsd-isdn mailing list