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>
unsigned char acim;<br>
unsigned char coef1;<br>
unsigned char coef2;<br>
unsigned char coef3;<br>
unsigned char coef4;<br>
unsigned char coef5;<br>
unsigned char coef6;<br>
unsigned char coef7;<br>
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, 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. 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. I guess what
I'm looking for is some sort of roadmap which says "these types of
commands should be sent to the channel minor, while those types of
commands should be sent to the control minor." Does such a thing
exist?<br>
<br>
TIA,<br>
<br>
bsdbigot<br>