Asterisk vISDN


Versatile ISDN for Linux
Oct. 2005: A new ISDN architecture, called vISDN, has been developed to fully support EuroISDN protocol with HFC based cards: HFC-S PCI, HFC-4S and HFC-8S (with HFC-E1 and HFC-S USB support coming soon).

vISDN is not based on Zaptel, libpri, chan_zap, zaphfc, qozap, etc. but has been designed from scratch to be a standard compliant EuroISDN implementation plus a channel crossconnector, plus protocol analysis support thru Wireshark, plus a ppp terminator, plus other stuff.

Note that by not being based on Zaptel applications like ZapBarge, ZapScan, zaptel-based timing and the like are not applicable to vISDN channels. Your other driver options for HFC based ISDN cards are zaphfc and mISDN.

vISDN comes with support for E-channel sniffing (an E-channel is used for signalling echo; BRI only).

Web site:

Note: You should use the latest development snapshots, if you want to test it. Huge improvements have been made since the last resale (vISDN 0.14.0).

Requirements (bases on 2006-01-31 patch 504):
  • Kernel 2.6.8 or newer
  • EuroISDN
  • Hardware with a HFC 'Cologne' chipset, GSM/PCI Card (vgsm)
  • Asterisk v1.2.x (Asterisk 1.0.x support has been removed - vISDN <=0.14.0 only supported 1.0.x )
  • udev >= 051

Debian requirements:
  • ppp-dev package (if you want to compile the pppd plugin)
  • iproute package (for visdn_configurator script)

How I installed on debian sarge:

1) apt-get install automake1.9
2) apt-get install autoconf
3) apt-get install libtool
4) apt-get install ppp-dev
5) apt-get install iproute
6) apt-get install bash3
7) apt-get install udev

download asterisk (1.24), zaptel, libpri and build them

apt-get install tla and follow the arch instructions

make install

News: TBR 3 certification

Feb 6, 2006: I'm again pleased to announce that TBR3 certification is completed, tomorrow we'll test behaviors specific to Telecom Italia's network, nothing most of you may care, but there is some useful requirement after all.
I've fixed some bug, so there is a bunch of fixes waiting to be committed :)
Sorry if I'm not answering to the list, but those test sessions are full-day and 150 km away from here and I end up very tired... . . .
Thanks to everyone who wished me luck :)


I found zaptel to be too much voice-oriented and libpri to be a partial ISDN stack implementation, it is my opinion and the opinion of many people I know that the zaptel/libpri/chan_zap suite:

  • Incompletely or wrongly implemented EuroISDN and was therefore not certifiable for use in the EU.
  • Supported basic rate access only with patches and hacks.
  • Had a complicated design, with several funcionalities located in the infrastructure while they would be better located in the device driver. Support for both analougue and digital cards, signalling methods which are very different in nature, (FXO, FXS, E&M, R2) furtherly complicating the design.

I've so decided to rewrite from scratch most of the functionality present in zaptel/libpri/chan_zap to support ISDN. My implementation wants to be well-integrated in the linux kernel, while still being very modular.

Comments by Matteo on asterisk-dev:

>> The Asterisk libpri is a 'hackup' as far as Q.931 and EuroISDN goes!
>> BRI in particular is problematic. Asterisk will not pass EuroISDN
>> compliance testing etc.

>I beg to differ, the BRIstuffed libpri/asterisk did pass. :)
>Also, the main reason why the "vanilla" libpri/asterisk would not pass
>compliance testing is because of problems with Q.921 not Q.931.
>--Klaus-Peter Junghanns

I agree. we're recently passed TBR tests for layer2/3 ,
functional tests (telco specific tests) and "on duty"
tests (again specific tests) with visdn + asterisk.
The whole problem is libpri that doesn't implement
a state machine as on ETSI specs (thus difficult to
extend and implement) and chan_zap that's a driver
that implements all sort of signalling in one driver....
that's scaring.

btw, on our experience in the tests labs, many problems
are also on asterisk side (eg. a wrong dialplan could
make a test fail) and so on....

we're going to buy the TBR tests suites and functional
tests , in order to keep visdn fully compliant
over new versions (is libpri still tested against
TBR on each mod? is bristuff, too ?), and, why not,
we'll test also other implementations like
libpri/zaptel vanilla, bristuff, misdn and so on...


Q: How can I trace ISDN traffic?
A: Use ethereal with vISDN - see here:

Q: I am trying to change the role of the interface from TE to NT. Currently sysfs indicates for all interfaces TE mode. How can I change this? Setting user, private, local, transit, international in visdn.conf seems to have no effect.

A: TE/NT mode is a layer 2 option (and also a layer 1 option for BRIs), you can configure it in the device configuration file (/etc/visdn/device-pci-xxxxx). Make sure to bring the interfaces down before changing their role, it's better, trust me :)
On visdn.conf settings: That option is in layer 3 and it's used to generate correct location in Cause information element.

Q: Arch repository: I followed the instructions but it doesn't work
A: You probably got a an error message like "no default archive set". After setting "tla my-id" and "tla register-archive" you can get the default archive's name with "tla archives", then the set it with tla my-default-archive. ("tla my-default-archive" should be always the same)
  • tla my-id "Foo Bar <>"
  • tla register-archive
  • tla my-default-archive
  • tla get isdn--devel--0.1
(please check the visdn website instructions , whether these values are still correct.)

See also

Go back to Asterisk channels

Created by: JustRumours, Last modification: Fri 16 of Feb, 2007 (03:38 UTC) by gerald.combs
Please update this page with new information, just login and click on the "Edit" or "Discussion" tab. Get a free login here: Register Thanks! - Find us on Google+