Skip to content
colognechip edited this page May 29, 2017 · 4 revisions

About this HOWTO

This document shows you how to

  • download
  • compile
  • install
  • load
  • test

the modular ISDN stack 'mISDN v2'.

Tested with Debian Linux Distributions

  • Debian Squeeze (6.0.10)
  • Debian Wheezy (7.1)
  • Debian Jessie (8.5)
  • Debian Stretch (9.0)

For software-only first-step demo purposes, this howto is making use of the virtual layer1 driver L1loop, which works without a real ISDN hardware.

Debian pre-requisites

Most likely, you want to purge all pre-installed mISDN modules first

rm -Rf /lib/modules/$(uname -r)/kernel/drivers/isdn/hardware/mISDN
rm -Rf /lib/modules/$(uname -r)/kernel/drivers/isdn/mISDN/
depmod -a

Install build tools and kernel header files

apt-get install git build-essential libtool autoconf automake linux-headers-$(uname -r)

Download and Install mISDN V2

  • mISDN
git clone https://github.com/colognechip/mISDN.git
git clone https://github.com/colognechip/mISDNuser.git
cd mISDN

As of Debian 8.5, there is an automake version mismatch, fix it via:

aclocal && automake --add-missing

Now continue with the configuration

./configure
cp mISDN.cfg.default standalone/mISDN.cfg
make modules
make modules_install
depmod -a
  • mISDNuser
cd ../mISDNuser
make
./configure
make
make install
cd example
make

That´s it. You should have a working mISDN and mISDNuser setup.

Now test the new modules, to make sure they are listed in e.g. /lib/modules/$(uname -r)/extra/:

modinfo mISDN_core
modinfo mISDN_l1loop

Now load the modules:

modprobe mISDN_core
modprobe mISDN_l1loop

If desired later, replace layer1 driver mISDN_l1loop by a real with hardware driver, such as hfcpci, hfcmulti, xhfc etc, depending on your hardware.

In /var/log/syslog you should see something like this:

[  634.085703] Modular ISDN core version 1.1.29 (git.misdn.eu)
[  634.085773] NET: Registered protocol family 34
[  637.674571] mISDN_l1loop driver Rev. v0.2, 2011-09-30 debug(0x0) interfaces(2) nchannel[0](2) vline(bus)
[  637.674575] mISDN_l1loop: registered as 'mISDN_l1loop.1'
[  637.674703] mISDN_l1loop: registered as 'mISDN_l1loop.2'

Test it

misdn_info

You should see something like this:

Found 2 ports
  Port  0 'mISDN_l1loop.1':  TE/NT-mode BRI S/T (for phone lines & phones)
                              2 B-channels: 1-2
                                B-protocols: RAW HDLC X75slp
  --------
  Port  1 'mISDN_l1loop.2':  TE/NT-mode BRI S/T (for phone lines & phones)

Now you have two virtual ISDN cards ready to use, test one of it with testlayer1 (part of mISDNuser/examples)

# ./misdntestlayer1

testlayer1 - card(0) debug(0) playload(1) btrans(0) testloop(0)
--> D  -  PH_ACTIVATE_REQ
<-- D  -  PH_ACTIVATE_CNF
no channels request, try [--d, --b1, --b2]
exiting...
closing socket 'D '

Seeing this, you just sent a PH_ACTIVATE_REQ from userspace to layer1, and got an PH_ACTIVATE_CNF as response. For more information on the virtual layer1 driver mISDN_l1loop and the userspace application misdntestlayer1, go to L1loop and testlayer1.

Clone this wiki locally