From fa78643fc4a67112067ee2b090660c84886e9a04 Mon Sep 17 00:00:00 2001 From: markster Date: Mon, 2 May 2005 20:15:07 +0000 Subject: Add support for TE410P/TE405P 2nd gen features (TSI, ECHOCAN, NATIVELAYOUT, IRQ, DTMFDETECT) git-svn-id: http://svn.digium.com/svn/zaptel/trunk@634 5390a7c7-147a-4af0-8ec9-7488f05a26cb --- zaptel.h | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) (limited to 'zaptel.h') diff --git a/zaptel.h b/zaptel.h index 6d790ad..175279f 100755 --- a/zaptel.h +++ b/zaptel.h @@ -618,6 +618,11 @@ void *data; */ #define ZT_DYNAMIC_DESTROY _IOW (ZT_CODE, 81, struct zt_dynamic_span) +/* + * Enable tone detection -- implemented by low level driver + */ +#define ZT_TONEDETECT _IOW (ZT_CODE, 91, int) + /* * Startup or Shutdown a span */ @@ -644,6 +649,9 @@ void *data; #define ZT_MAX_CADENCE 16 +#define ZT_TONEDETECT_ON (1 << 0) /* Detect tones */ +#define ZT_TONEDETECT_MUTE (1 << 1) /* Mute audio in received channel */ + struct zt_ring_cadence { int ringcadence [ZT_MAX_CADENCE]; }; @@ -792,7 +800,8 @@ struct zt_tone_def { /* Structure for zone programming */ #define ZT_EVENT_POLARITY 17 #define ZT_EVENT_PULSEDIGIT (1 << 16) /* This is OR'd with the digit received */ -#define ZT_EVENT_DTMFDIGIT (1 << 17) /* Ditto for DTMF */ +#define ZT_EVENT_DTMFDOWN (1 << 17) /* Ditto for DTMF key down event */ +#define ZT_EVENT_DTMFUP (1 << 18) /* Ditto for DTMF key up event */ /* Flag Value for IOMUX, read avail */ #define ZT_IOMUX_READ 1 @@ -1242,6 +1251,9 @@ struct zt_span { /* Opt: IOCTL */ int (*ioctl)(struct zt_chan *chan, unsigned int cmd, unsigned long data); + /* Opt: Native echo cancellation */ + int (*echocan)(struct zt_chan *chan, int ecval); + /* Okay, now we get to the signalling. You have several options: */ /* Option 1: If you're a T1 like interface, you can just provide a @@ -1261,6 +1273,9 @@ struct zt_span { /* Option 3: If you can't use sig bits, you can write a function which handles the individual hook states */ int (*sethook)(struct zt_chan *chan, int hookstate); + + /* Opt: Dacs the contents of chan2 into chan1 if possible */ + int (*dacs)(struct zt_chan *chan1, struct zt_chan *chan2); /* Used by zaptel only -- no user servicable parts inside */ int spanno; /* Span number for zaptel */ @@ -1364,6 +1379,7 @@ extern struct zt_tone *zt_dtmf_tone(char digit, int mf); not be doing so. rxchunk is modified in-place */ extern void zt_ec_chunk(struct zt_chan *chan, unsigned char *rxchunk, const unsigned char *txchunk); +extern void zt_ec_span(struct zt_span *span); /* Don't use these directly -- they're not guaranteed to be there. */ -- cgit v1.2.3