Summary:ASTERISK-03980: [Patch] chan_misdn patch for asterisk-head
Reporter:crich (crich)Labels:
Date Opened:2005-04-25 03:23:10Date Closed:2008-01-15 15:53:02.000-0600
Versions:Frequency of
Environment:Attachments:( 0) chan_misdn.patch.8.txt
Description:Hi all,

I disclaimed chan_misdn last week to digium. This Report contains the current newest version of chan_misdn which should work against the head of asterisk and against the latest stable version of asterisk.

I made the Patch with:

diff -u -N -r /tmp/ast1 /tmp/ast2

so you can patch your asterisk head revision with:

cd /usr/src/asterisk
patch -p1 </tmp/asterisk_misdn.patch

I couldn't find the option -N for cvs diff, which would add new directories if they aren't in the repository ..

The only change I made to asterisk was in: asterisk/channels/Makefile

There I added chan_misdn.so as module.

If you compile asterisk after applying the patch, chan_misdn will not be build, since it depends on the mISDNuser library which is either downloadable at: http://www.isdn4linux.de or at : http://isdn.jolly.de

chan_misdns Makefile can automatically download and install mISDNuser from jollys website, for this you need only Internet access and wget, then type:

cd asterisk/channels/misdn
make misdn_install
make install

Please read also the included README file, and find additional information at:



disclaimer sended via fax last week.

patches against CVS HEAD 25. April 2005.
Comments:By: Brian West (bkw918) 2005-04-25 22:21:07

had to reupload with .txt to read it.


By: Olle Johansson (oej) 2005-04-26 02:50:06

Please add a README.misdn with information on where to get the MISDN needed libraries.

By: crich (crich) 2005-04-26 10:37:13

You mean in asterisk/doc ?  asterisk/channels/misdn/README contains the requested info, we could move this to asterisk/doc but i'd prefer to have it under the misdn subtree

edited on: 04-26-05 10:40

By: Olle Johansson (oej) 2005-04-26 12:33:51


By: crich (crich) 2005-04-26 13:04:51

This puts the misdn.conf to asterisk/configs/misdn.conf.samples and the README to asterisk/doc/README.misdn

Also a litle optimization in channels/Makefile.

By: Olle Johansson (oej) 2005-04-26 14:52:09

Adding the same file twice does not make sense. Make the doc/README.misdn shorter and explain that the details is in the source code README file. We should not have two similar files to maintain in CVS in two different directories - sometime they will go out of sync.

And please, I would tone down the PR for your card a bit, the sentence that points to shop.beronet.com is a bit too much for me even though I understand you want to sell your cards (and I want to try one of them :-).

By: crich (crich) 2005-04-26 15:56:20

removed the reduntant misdn.conf in misdn subdir. changed the content of doc/README.misdn to something much more general and shorter.

removed PR ;)

By: crich (crich) 2005-04-27 15:56:28

no one interested in having chan_misdn in asterisk CVS ?

By: crich (crich) 2005-04-28 15:31:59

Mark was very excited as i mailed him the idea of submitting chan_misdn.

By: crich (crich) 2005-04-29 11:57:54

Maybe i should add, that >1000 Calls went through chan_misdn.

By: ckruetze (ckruetze) 2005-04-29 15:40:03

I'd like to see chan_misdn in asterisk, it would make things easier.

Please add it.

By: Gregory Hinton Nietsky (irroot) 2005-05-02 10:43:49

i certainaly am going to put some legs on this code i have been using chan_capi to work with mISDN devices and would be all for either chan_capi or chan_misdn been stock im inclined to lean toward chan_capi as it is more universal.

well for the next week or so ill be using chan_misdn ...

By: crich (crich) 2005-05-02 11:55:43

chan_misdn is quite different to chan_capi.


* Capi supports only TE Mode (NT Mode is for connecting Phones).
* Capi shares ISDN Ports with other Programs (a PBX needs to have the might over all Ports of course)

Also chan_misdn compiles automatically against CVS head and stable. I am working on chan_misdn day by day (I think the work on chan_capi has been stopped for ages).

chan_misdn is not really compareable to chan_capi. Its more comparable to chan_zap I think.

By: Gregory Hinton Nietsky (irroot) 2005-05-03 11:19:29

youve highlighted some points i was ignorant of i currently dont require NT mode but shortly will.

ive been patching and keeping capi alive and working on head

mISDN did not compile so nicely i used CVS mISDNuser and need to patch  channels/misdn/isdn_msg_parser.c and some 14lnet files [dont look like they required in the grand scheme]

sed -e "s/mISDNUSER_HEAD_SIZE/mISDN_HEADER_LEN/" channels/misdn/isdn_msg_parser.c

well once im more aquantied with it ill help ya out if needed for now it is looking good ...

By: crich (crich) 2005-05-03 11:46:08

I would really encourage you to use jollys mISDN and mISDNuser (which you can easyly get by just typing: make misdn in the asterisk/channels/misdn subdir).

because it is quite more bug free then the i4l's one and it has some advantages e.g. PTP Mode (especially in NT) and L2 UP/Down Signalling.

By: Kevin P. Fleming (kpfleming) 2005-05-03 21:50:56

There are a number of changes required for this to be ready to commit. Some simple stuff first:

- when you make your diff, use '-X CVS' to exclude the CVS directory(ies) from the diff operation

- there are have been some tree-wide header file changes recently (using "" instead of <> for example), but I can change those at commit time

- use ast_strlen_zero() instead of 'strlen() > 0'

- the formatting is inconsistent and not conforming to the CODING-GUIDELINES document (although you are using some C features that the document does not address, like anonymous blocks for variable declarations... we have no stated policy there)

Here's the larger issues:

- all the '#ifdef ASTERISK_STABLE' stuff has to be dropped... nobody who touches the CVS HEAD tree is going to be keeping that portion of your driver up to date, and this channel driver will not be included into Asterisk stable. If future changes to CVS HEAD (and thus your channel driver) cause it to become even more incompatible with stable (as is very likely), the burden will unfortunately have to be on you to keep an out-of-tree stable version in sync with the CVS HEAD version

- we don't use '_t' and '_s' suffixes, nor extraneous typedefs for struct types

- why not use ast_dtmf_stream() instead of building it in your channel driver?

- there is a large amount of extraneous checking (and some of it is buggy... look at the first part of misdn_call)... on the other hand, in that same function, you are copying the incoming dest string into a 128-character buffer without using a length-limited copy (that problem is prevalent throughout the code)

- i see calls to perror() and exit() in the driver... these are bad, bad.. calling exit() will kill the entire Asterisk instance

- you are using a channel variable called CRYPT_KEY for encryption; that will need a more descriptive name, that ties it to chan_misdn in some fashion (it would be even better if it could be eliminated in favor of a function that the user can call from the dialplan before issuing an Answer(), but that may not be possible, I don't know enough about mISDN to venture a guess)

- you have a number of channel functions that don't do anything (soption, qoption, transfer, read)... it would be far preferable to not define them at all

- you've got two complete copies of the config parsing logic, which don't appear to be identical

- chan_misdn_log is totally unnecessary; use the existing logging facilities in Asterisk

- misdn/ie.c is not copyright by you and has no license text incorporated; it cannot be accepted into the tree in this form; there are also files with no copyright/license header at all

- there are hardcoded paths in misdn/Makefile

- some of your 'option flags' for dial strings are unnecessary, because you can implement the same functionality using existing apps in Asterisk (sending text, for example)

While I'd like to see this get into the tree (as would Mark), the code is not at all ready for inclusion. Somehow we need to help you get it ready, but this will take quite a bit of discussion and review; can you participate in one of the weekly developer conference calls, or can we schedule a call at a time that would be convenient for you?

By: crich (crich) 2005-05-04 02:20:45

A Question about misdn/ie.c:

This file was originally written in c++ from jolly, he has mailed me that its GPL and I can do whatever I want with it. I just changed it to make it c only and changed the interfaces, so that it works together with isdn_lib.

Must jolly disclaim this file (now i've made a lot of changes to it also?).

Btw. what happens when I steal a function from another GPL Lib? Must the function implementor from this Lib disclaim his function to me or digium ?

By: crich (crich) 2005-05-04 06:19:35

Thanks for your inspection of the code. Of course this code has grown since a year or something.

I've fixed those issues:

* diff -x CVS
* strlen>0 --> ast_strlen_zero
* #ifdef ASTERISK_STABLE removed
* types _t and structs _s changed to a more asterisk like fashion
* using ast_dtmf_stream()
* strcpy --> strncpy
* exit() --> return ERROR;
* removed misdn_{soption,qoption,transfer,read)
* chan_misdn_log --> ast_log(DEBUG, ..)
* Modified Copryright in ie.c (sincec jolly told me to do anything I like with the original file)
* removed hardcoded Paths in Makefile

The s option as dial parameter is useful since it submits the text directly with the outgoing setup. with send_text I can later send text again.

You could make a Phonebook in your ast_db and display the Name if the callerid matches with the outgoing setup to the isdn phone ;)

I'd like to participate, could you tell me when the next dev call is  ? I'm hanging sometimes in irc around my nick is: crich1999

By: Kevin P. Fleming (kpfleming) 2005-05-04 13:07:03

The Digium Asterisk source tree cannot accept _any_ GPL code, unless that code is disclaimed to Digium using one of the two provided disclaimer forms (or a separately negotiated equivalent, if necessary). All source files must clearly state the license they are distributed under, and the copyright holder(s).

In the case of ie.c, I would think that both you and Jolly hold copyright, and thus the disclaimer must be provided by both of you (separate disclaimers is fine). He can provide a single-file disclaimer for just that code, if he wishes to do so.

The developer's conference calls are usually at 1PM Central Time (currently CDT, GMT-5) on Thursdays. The details for how to participate are posted in the #asterisk-dev IRC channel at least an hour or two before the call; if you have an Asterisk server and can place an outbound IAX2 call, you can participate freely. Unfortunately I will not be able to join this week's call, but I believe Mark will be there.

If you wish, we can make arrangements to talk about the code at another time via the conference server; I can be found on IRC as kpfleming.

By: crich (crich) 2005-05-04 14:22:25

What License can be acceptable by digium, would be lgpl enough ? I'm at IRC at the  moment.

By: crich (crich) 2005-05-04 14:53:23

Just talked to mark at irc. LGPL is not acceptable. What is possible is haveing external (runtime?) linked libraries. Those mustn't be disclaimed to digium.

I could make a shared lib of ie.c and make it installable via misdn/Makefile, as I do actually with mISDNuser.

This would be an option, since I haven't heard anything from jolly since ages..

Also the mISDNuser Libraries are static Libraries at the moment. Must they be shared for fitting into the digium disclaimer policies or is it ok the way it is ?

By: Brian West (bkw918) 2005-05-04 14:55:49

case and point unixODBC ;)


By: crich (crich) 2005-05-04 15:06:39

What do you mean it looks like unixODBC is linked dynamically ?  

chan_misdn links statically against mISDNuser libs.

By: Gregory Hinton Nietsky (irroot) 2005-05-04 15:14:05

added patch to patch against jollys mISDN to support linux 2.6.10+

ive decided to use the recomended versions patched as supplied with kernel 2.6.12-rc3

one thing that caught me off gaurd was the layermask option it could be noted in the misdn.conf file along with the modload order ... for those of us that dont RTFM

By: Brian West (bkw918) 2005-05-04 15:15:06

static bad.
dynamic good.

in this case... same as with unixODBC


By: Michael Jerris (mikej) 2005-05-04 15:20:14

is jolly willing to disclaim the file?

By: crich (crich) 2005-05-04 15:24:15

well its been a long time since jolly has answered my mails now. I'll try to ask again.

By: Kevin P. Fleming (kpfleming) 2005-05-04 15:45:23

Just to clarify: it's generally OK for Asterisk to link to external libraries, static or dynamic, regardless of whether the source of those libraries is distributed under GPL or not. However, if someone builds an Asterisk binary that includes code from a static library produced from GPL licensed sources, then the GPL asserts itself over that binary. That is where the issues get tricky...

It's always best to design the code to link to dynamic libraries outside of Asterisk, unless those libraries are known to be distributed under a license without the GPL restrictions.

What will not work is for source code to be distributed as part of the Asterisk official tree (managed and distributed by Digium) that is only available under GPL/LGPL and is not disclaimed to Digium to use under alternative licenses. If the lower-level parts of mISDN will fall into that category, then chan_misdn may have to be put into asterisk-addons, instead of asterisk proper.

By: crich (crich) 2005-05-04 16:36:30

Its just ie.c the other files are written entirely by me.

mISDNuser is a library from the i4l guys, chan_misdn only calls interface functions from these libs.

These libs will also not be included in chan_misdn (nor in asterisk). They must be downloaded seperately (like in chan_h323 the openh323 package).

I'll either bring jolly to disclaim his part of ie.c or I'll make an external library which contains ie.c, which must be downloaded seperately also.

By: Michael Jerris (mikej) 2005-05-04 16:45:30

is the functionality of ie.c in libpri?

By: crich (crich) 2005-05-04 17:04:26

must be i think.

By: Michael Jerris (mikej) 2005-05-04 18:29:30

I put one vote in for converting this over to use libpri as there are no license complications and I see no good reason to duplicate this work.

By: crich (crich) 2005-05-05 02:09:35

chan_misdn covers BRI Support. libpri is for PRI mainly. Especially the point to multi point mode of BRI makes it a bit different to the pri protocols.

Also the for of ie.c is really easy to use, it seems bugfree at the moment. I have made a lot of work to get this working in chan_misdn, chan_misdn is in production use at our customers currently.

I will not make such big changes to unstable chan_misdn, until there is no other way.

By: Francesco Lattanzio (flattanzio) 2005-05-06 01:39:30

When answering the channel, some delay is needed before the channel is ready
for reading. This, sometimes, disrupt things, because if the reading queue is
empty, the 'read' method of the channel is invoked. However, this always
returns a NULL pointer, which * recognizes as a disconnection.
To fix things, just make it return a "null frame". The patch is in "chan_misdn-beta-0.1.0-fixed.diff".
The system configuration (where things work) is:

 1) Linux 2.6.10
 2) mISDN_for_PBX4Linux_2005_03_06.tar.gz and
    mISDNuser_for_PBX4Linux_2005_01_28.tar.gz from isdn.jolly.de
 3) chan_misdn-beta-0.1.0.tgz + BN4S0/BN8S0 cards from beroNet
 4) Asterisk 1.0.6


By: crich (crich) 2005-05-06 13:48:14

added functionality to misdn_read. chan_misdn has now a queue for sending frames to asterisk. This queue triggers a pipe which is added as fd to the ast_channel object. This causes asterisk to misdn_read chan_misdn for getting frames.

Before chan_misdn sended voice frames directly via ast_queue_frame, this caused in the recent head revision (and in 1.0.7) some one-way-voice problems.

This fixes those issues with the actual CVS Head of asterisk.

By: Gregory Hinton Nietsky (irroot) 2005-05-07 13:36:28

added a patch to mISDNuser (CVS) to work with chan_misdn this should bring the mISDNuser upto the jolly functionality [please confirm this those who are brave enough]

to use this patch grab mISDNuser from CVS then edit the Makefile in chan_misdn  comment CFLAGS+=-DMISDNUSER_JOLLY then edit  isdn_lib.c to allow the jolly bits at lines 284 311 659 1268 1300 leave all the other ifdefs alone

By: Michael Jerris (mikej) 2005-06-19 10:42:28

Where do we stand on this?  Do we have any positive testing results?

By: David Woodhouse (dwmw2) 2005-06-19 10:50:42

Positive testing results? I've been using it in anger for a couple of months now with two HFC PCI cards -- one connected to the telco via an external BRI line and one in NT mode connected to a terminal adapter. It's working fine.

By: crich (crich) 2005-06-19 11:28:11

Well we are using this a lot at our customer sites. I believe we have now sended some millions of minutes through. Though there are still some issues:


* Echo Cancellation is very crapy (I'm just porting zaptels EC to mISDN)
* theres an jitter delta issue which makes some choppy sounds on sip phones (not on all, snom, cisco, thomson work great)
* mISDN/mISDNuser have some issues with special PBXs (PSTN and ISDN Phones work though very well)
* some dtmf sending issues (though i personally haven't had any yet)

We have also a mantis: www.beronet.com/bugs where you can see other issues.

Since my off-Mantis Version of chan_misdn (www.beronet.com/download) compiles and works against asterisk-stable also. This means I'm mostly developing on this version. Though I'm just trying to adapt the Coding Guidelines from asterisk to chan_misdn, it'll take some time to be fully compliant.

Regarding the ie.c issue which was mentioned above:

I had a talk to Andreas Eversberger (also known as jolly), he told me that he has no interest in having a copyright on this file and i can do whatever i want with it.

After speaking to Kevin at the astricon i think this issue can be neglected.

I'm working on Echo Cancellation currently, after finishing this I'll work on adapting the coding Guidelines. Still I will have a Version which compiles against head + stable (via defines), I need to think how solving this problem, maybe theres a way to tell gcc only to evalute


and not the other Preprocessor directives. If this'll be possible I could make something like a :

make asterisk-head-version

which would obviously create what it implies. Other ways a simple sed or perl script would do the same.

By: Gregory Hinton Nietsky (irroot) 2005-06-19 11:36:23

Ok all seems to work ok now using a slightly patched mISDN/mISDNuser from CVS and slightly patched chan_misdn im very happy ...

the only problem i have at the momment is inability to connect to a avaya difinity switch.

By: Michael Jerris (mikej) 2005-07-20 19:20:02

can we get a status update on this one please?

By: crich (crich) 2005-07-21 02:10:22

The Situation didn't changed much, still sitting on the echo problem. Also the problems about STABLE/HEAD are still there.

I hadn't much time to spend for this project, but now I will do more to it.

By: Michael Jerris (mikej) 2005-07-31 16:07:22

Patches need activity to stay open.  Can you please re-open this bug when it is updated with current fixes and ready for a new review.  Thanks.

By: crich (crich) 2005-08-29 15:52:59

We've rewritten the config engine now, also we've tried to embedd chan_misdn into the asterisk source like chan_h323 now.

We've ported the mark2 echo cancellor to mISDN and it works good now. please get

http://www.beronet.com/downloads/install-misdn.tar.gz for an easy setup of mIDSN and mISDNuser.

If you use this patch, you'll need mISDNuser from http://isdn.jolly.de

and mISDN from http://www.beronet.com/downloads/ (with echo can)

mISDN has still some issues with SMP Kernels right now. But chan_misdn can be viewed as stable, since we're using it at many of our customer sites now.

Hope we'll have more activity here, I'll be for sure after it.

By: crich (crich) 2005-08-30 02:26:29

I think we can safely remove the older chan_misdn patches from above.

By: Kevin P. Fleming (kpfleming) 2005-08-30 22:57:40

Unless this driver is grossly broken and can't be fixed in the next week or so (I haven't been keeping up with this bug), this driver _will_ be going in for 1.2, and probably in this week's beta release. It may be marked as "experimental" in the first few releases of 1.2.x until it stabilizes, but we won't hold it out for 1.3 and beyond.

By: crich (crich) 2005-08-31 02:24:26

Well I'm sure its not grossly broken ;), there are of course issues but most of them belong to mISDN itself, which is over-worked in these weeks.

Still mISDN is much more useful and bugfree than isdn4linux (hisax) which makes it the better choice for an isdn driver base.

I thinke we really ought to fixup the coding guideline issues in chan_misdn firstly, hope there aren't much left things todo though.

By: Michael Jerris (mikej) 2005-09-02 19:15:33

I noticed that some of the files are missing copywright\license headers.  Where do we stand on the cleanup?  Is this good to go in?

By: crich (crich) 2005-09-03 04:41:37

Sorry, forgott to put the headers in the other files. Also removed crypt.[c,h] because we don't use dynamic cryptin on bchannels anymore, we'll add these later again with a new algo.

I hope there are no questions regarding copyright anymore.

By: crich (crich) 2005-09-11 12:42:38

* Removed a lot unnecessary functions  (soptions .. )
* fixed a lot of the extraneous checking (especially in misdn_call and the event_handler for the isdn events)
* fixed the HOLD/TRANSFER stuff, should work proper now
* added a release_lock for misdn_hangup and the release_chan function which is called from the isdn side to avoid race conditions
* cleaned the misdn/ subdir so that it can live without chan_misdn.h, chan_misdn.h  is now unnecessary and therefore removed => this makes it possible to have a misdn library
* changed some of the chan_misdn_log logs to ast_logs, because they were LOG_WARNINGS or even LOG_ERRORS, still I'm leaving chan_misdn_log, for easier tracing and debugging.
* fixed some bugs, regarding enabling and disabling the mISDN_dsp module during outcalls

I have a funny behaviour when I'm patching against the 1.2-beta1:

I'll run sometimes into a Recursive loop in the make process, there are 2 things happening:

1. rm -f .. version.tmp.h
2. mkdep .. > version.tmp.h
3. goto 1

i don't know why ? I can only compile and install when i remove the .depend file in asterisks base dir.. Someones got a clue ?

By: jalsot (jalsot) 2005-09-13 06:28:57

Is there a chance to have mISDN stuff SMP aware? And also to not crash when preemption is allowed in kernel?
It is not a way to use only non-SMP kernel due to mISDN [when there are more CPUs].

By: crich (crich) 2005-09-13 07:24:04

Yeah jalsot, of course this is a big issue, chan_misdn is not the problem reagarding this issue its just mISDN.

mISDN is rearchitected at the moment and will support SMP and Preemptible after it has finished.

chan_misdn needs to be modified so that it works proper against the new mISDN branch.

When the core mISDN-dev guys (jolly, and Karsten Keil) will be ready with the new branch I'll release a version of chan_misdn which works against this mISDN.

By: Kevin P. Fleming (kpfleming) 2005-09-14 20:48:56

I'm ready to merge this in its current form, marked in the UPGRADE.txt file as 'experimental'. We probably also should have the driver report itself that way when it loads, just to cover the bases.

Once it is in, I can give you CVS commit privileges to directly maintain it, as long as you don't abuse them!

Are you comfortable with that arrangement?

By: crich (crich) 2005-09-15 07:39:54

I quite agree.

Thank you Kevin !

By: crich (crich) 2005-09-15 08:46:05

I'd like to mention that I'm at holidays for 2 weeks in spain/portugal ;) from the coming weekend on.

@ Beronet theres Thomas and Nadi who will track this issue and who can also make some patches to chan_misdn if necessary.

By: nadi (nadi) 2005-09-15 09:07:11

thank you crich for introducing me :)

i added an updated version with the requested notice when loading chan_misdn.

By: Kevin P. Fleming (kpfleming) 2005-09-29 00:36:56

There are a couple of issues that need to be fixed in here before this can be merged:

1) The patch reverts nearly all of the improvements that have been made in channels/Makefile in the last six weeks or so; please update your copy to CVS HEAD and re-include the chan_misdn related parts.

2) The doc/README.misdn file makes some reference to a makefile for downloading the sources, and that it should be built with Asterisk 1.0.7... let's get that file updated to show that the current sources are included with Asterisk CVS HEAD.

By: nadi (nadi) 2005-09-30 04:00:54

Hi Kevin,

i uploaded a new patch which fixes the mentioned issues.

I rewrote the fast installation guide and some other spots of README.misdn. There are still some references for downloading mISDN and mISDNuser, since they are required for chan_misdn and not included in asterisk. Nevertheless, i think we should rewrite some more sections of this file in the near future.


By: crich (crich) 2005-10-14 15:30:53

Just uploaded chan_misdn-0.2.1-bugfix2 version which turned out to be good stable.

chan_misdn currently develops into the stable 0.2.1 release.

current changes:

* lots of nicer code reduction and some nameing optimizations
* debuging mechanism optimized and simplified output
* some fixes due to ETSI violations
* a nasty "channel loosing" bug
* some other minor bugs

By: nadi (nadi) 2005-10-17 04:04:29

i uploaded a new patch against the current head version of asterisk to keep the channels/Makefile heady.

By: nadi (nadi) 2005-10-17 10:38:55

new patch (version: chan_misdn-0.2.1-rc3). fixes some important issues.

By: Clod Patry (junky) 2005-10-21 23:40:42

is that okay guys, if I delete all files added previously "chan_misdn.patch.8.txt" ?

By: nadi (nadi) 2005-10-22 03:14:45

yes, that's very okay. thanks.

By: Kevin P. Fleming (kpfleming) 2005-10-31 17:59:21.000-0600

Committed to CVS HEAD, thanks!

By: Digium Subversion (svnbot) 2008-01-15 15:53:02.000-0600

Repository: asterisk
Revision: 6910

U   trunk/channels/Makefile
A   trunk/channels/chan_misdn.c
A   trunk/channels/chan_misdn_config.c
A   trunk/configs/misdn.conf.sample
A   trunk/doc/README.misdn

r6910 | kpfleming | 2008-01-15 15:53:01 -0600 (Tue, 15 Jan 2008) | 2 lines

add experimental mISDN channel driver (issue ASTERISK-3980)