diff --git a/zaptel/zaptel-base.c b/zaptel/zaptel-base.c index e2931bf..5929e65 100644 --- zaptel/zaptel-base.c +++ zaptel/zaptel-base.c @@ -1906,6 +1908,13 @@ static ssize_t zt_chan_write(struct file *file, const char *usrbuf, size_t count } else { if (copy_from_user(chan->writebuf[res], usrbuf, amnt)) return -EFAULT; + + if ((chan->flags & ZT_FLAG_HDLC) && chan->span->ioctl != NULL){ + if (chan->span->ioctl(chan, ZT_DCHAN_TX_V2, amnt)==0){ + return amnt; + } + } + chan->writen[res] = amnt; } chan->writeidx[res] = 0; diff -dur zaptel.orig/zaptel.h zaptel/zaptel.h --- zaptel.orig/zaptel.h 2005-10-03 10:52:43.094205960 -0400 +++ zaptel/zaptel.h 2005-10-03 10:48:53.974037520 -0400 @@ -611,6 +611,10 @@ * 60-80 are reserved for private drivers * 80-85 are reserved for dynamic span stuff */ +#define ZT_DCHAN_TX _IOR (ZT_CODE, 60, int) +#define ZT_DCHAN_TX_V1 ZT_DCHAN_TX +#define ZT_DCHAN_TX_V2 ZT_DCHAN_TX + /* * Create a dynamic span