summaryrefslogtreecommitdiff
path: root/zaptel.h
diff options
context:
space:
mode:
authormarkster <markster@5390a7c7-147a-4af0-8ec9-7488f05a26cb>2005-05-02 20:15:07 +0000
committermarkster <markster@5390a7c7-147a-4af0-8ec9-7488f05a26cb>2005-05-02 20:15:07 +0000
commitfa78643fc4a67112067ee2b090660c84886e9a04 (patch)
tree67d56dd508097931ed41b9a4092f3980a6f790ae /zaptel.h
parent86952759dcdb07b5cada67f976d4d8eb14b55ebf (diff)
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
Diffstat (limited to 'zaptel.h')
-rwxr-xr-xzaptel.h18
1 files changed, 17 insertions, 1 deletions
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. */