I did run into a problem with one of the ioctl()s,
WCTDM_SET_ECHOTUNE.  In wctdm.h from the zaptel-1.2.0-beta
tarball, this is defined as follows:<br>
<br>
#define WCTDM_SET_ECHOTUNE _IOW (ZT_CODE, 63, struct wctdm_echo_coefs)<br>
<br>
for posterity, not that it matters just this second:<br>
<br>
struct wctdm_echo_coefs {<br>
&nbsp; unsigned char acim;<br>
&nbsp; unsigned char coef1;<br>
&nbsp; unsigned char coef2;<br>
&nbsp; unsigned char coef3;<br>
&nbsp; unsigned char coef4;<br>
&nbsp; unsigned char coef5;<br>
&nbsp; unsigned char coef6;<br>
&nbsp; unsigned char coef7;<br>
&nbsp; unsigned char coef8;<br>
};<br>
<br>
I haven't yet traced through this ioctl(), but I'm hoping that somebody
here can enlighten me a little as to the design behind the zaptel
device nodes,&nbsp; From my very brief scan of the source code,
especially fxo_tune.c, it appears that each minor is used to select the
various *_ioctl() functions in zaptel.c.&nbsp; There is also the
appearance, though I may be wrong, of some sort of multiplex which
allows some ioctl()s to be passed to a pseudo function, things like
setting the blocksize or changing the Zap channel.&nbsp; I guess what
I'm looking for is some sort of roadmap which says &quot;these types of
commands should be sent to the channel minor, while those types of
commands should be sent to the control minor.&quot;&nbsp; Does such a thing
exist?<br>
<br>
TIA,<br>
<br>
bsdbigot<br>