diff options
Diffstat (limited to 'kernel/zaptel.h')
-rw-r--r-- | kernel/zaptel.h | 102 |
1 files changed, 71 insertions, 31 deletions
diff --git a/kernel/zaptel.h b/kernel/zaptel.h index b37a2c3..e0db194 100644 --- a/kernel/zaptel.h +++ b/kernel/zaptel.h @@ -351,7 +351,7 @@ char netdev_name[16]; /*name for the hdlc network device*/ typedef struct zt_sfconfig { int chan; /* Channel we're applying this to (0 to use name) */ -char name[40]; /* Name of channel to use */ +char name[40]; /* Name of channel to use */ long rxp1; /* receive tone det. p1 */ long rxp2; /* receive tone det. p2 */ long rxp3; /* receive tone det. p3 */ @@ -371,14 +371,13 @@ int readbufs; /* How many read buffers are full (read-only) */ int writebufs; /* How many write buffers are full (read-only) */ } ZT_BUFFERINFO; -typedef struct zt_dialparams -{ -int mfv1_tonelen; /* MF tone length (KP = this * 5/3) */ -int dtmf_tonelen; /* DTMF tone length */ -int reserved[4]; /* Reserved for future expansion -- always set to 0 */ +typedef struct zt_dialparams { + int mfv1_tonelen; /* MF R1 tone length for digits */ + int dtmf_tonelen; /* DTMF tone length */ + int mfr2_tonelen; /* MF R2 tone length */ + int reserved[3]; /* Reserved for future expansion -- always set to 0 */ } ZT_DIAL_PARAMS; - typedef struct zt_dynamic_span { char driver[20]; /* Which low-level driver to use */ char addr[40]; /* Destination address */ @@ -387,7 +386,7 @@ typedef struct zt_dynamic_span { int spanno; /* Span number (filled in by zaptel) */ } ZT_DYNAMIC_SPAN; -/* Define the max # of outgoing DTMF or MFv1 digits to queue in-kernel */ +/* Define the max # of outgoing DTMF, MFR1 or MFR2 digits to queue in-kernel */ #define ZT_MAX_DTMF_BUF 256 #define ZT_DIAL_OP_APPEND 1 @@ -398,10 +397,9 @@ typedef struct zt_dynamic_span { #define ZT_LAW_MULAW 1 /* Mu-law */ #define ZT_LAW_ALAW 2 /* A-law */ -typedef struct zt_dialoperation -{ -int op; -char dialstr[ZT_MAX_DTMF_BUF]; +typedef struct zt_dialoperation { + int op; + char dialstr[ZT_MAX_DTMF_BUF]; } ZT_DIAL_OPERATION; @@ -804,7 +802,9 @@ struct zt_hwgain{ #define ZT_TONE_MAX 16 #define ZT_TONE_DTMF_BASE 64 -#define ZT_TONE_MF_BASE 80 +#define ZT_TONE_MFR1_BASE 80 +#define ZT_TONE_MFR2_FWD_BASE 96 +#define ZT_TONE_MFR2_REV_BASE 112 enum { ZT_TONE_DTMF_0 = ZT_TONE_DTMF_BASE, @@ -828,24 +828,64 @@ enum { #define ZT_TONE_DTMF_MAX ZT_TONE_DTMF_D enum { - ZT_TONE_MF_0 = ZT_TONE_MF_BASE, - ZT_TONE_MF_1, - ZT_TONE_MF_2, - ZT_TONE_MF_3, - ZT_TONE_MF_4, - ZT_TONE_MF_5, - ZT_TONE_MF_6, - ZT_TONE_MF_7, - ZT_TONE_MF_8, - ZT_TONE_MF_9, - ZT_TONE_MF_s, - ZT_TONE_MF_p, - ZT_TONE_MF_A, - ZT_TONE_MF_B, - ZT_TONE_MF_C, + ZT_TONE_MFR1_0 = ZT_TONE_MFR1_BASE, + ZT_TONE_MFR1_1, + ZT_TONE_MFR1_2, + ZT_TONE_MFR1_3, + ZT_TONE_MFR1_4, + ZT_TONE_MFR1_5, + ZT_TONE_MFR1_6, + ZT_TONE_MFR1_7, + ZT_TONE_MFR1_8, + ZT_TONE_MFR1_9, + ZT_TONE_MFR1_KP, + ZT_TONE_MFR1_ST, + ZT_TONE_MFR1_STP, + ZT_TONE_MFR1_ST2P, + ZT_TONE_MFR1_ST3P, +}; + +#define ZT_TONE_MFR1_MAX ZT_TONE_MFR1_ST3P + +enum { + ZT_TONE_MFR2_FWD_1 = ZT_TONE_MFR2_FWD_BASE, + ZT_TONE_MFR2_FWD_2, + ZT_TONE_MFR2_FWD_3, + ZT_TONE_MFR2_FWD_4, + ZT_TONE_MFR2_FWD_5, + ZT_TONE_MFR2_FWD_6, + ZT_TONE_MFR2_FWD_7, + ZT_TONE_MFR2_FWD_8, + ZT_TONE_MFR2_FWD_9, + ZT_TONE_MFR2_FWD_10, + ZT_TONE_MFR2_FWD_11, + ZT_TONE_MFR2_FWD_12, + ZT_TONE_MFR2_FWD_13, + ZT_TONE_MFR2_FWD_14, + ZT_TONE_MFR2_FWD_15, +}; + +#define ZT_TONE_MFR2_FWD_MAX ZT_TONE_MFR2_FWD_15 + +enum { + ZT_TONE_MFR2_REV_1 = ZT_TONE_MFR2_REV_BASE, + ZT_TONE_MFR2_REV_2, + ZT_TONE_MFR2_REV_3, + ZT_TONE_MFR2_REV_4, + ZT_TONE_MFR2_REV_5, + ZT_TONE_MFR2_REV_6, + ZT_TONE_MFR2_REV_7, + ZT_TONE_MFR2_REV_8, + ZT_TONE_MFR2_REV_9, + ZT_TONE_MFR2_REV_10, + ZT_TONE_MFR2_REV_11, + ZT_TONE_MFR2_REV_12, + ZT_TONE_MFR2_REV_13, + ZT_TONE_MFR2_REV_14, + ZT_TONE_MFR2_REV_15, }; -#define ZT_TONE_MF_MAX ZT_TONE_MF_C +#define ZT_TONE_MFR2_REV_MAX ZT_TONE_MFR2_REV_15 #define ZT_MAX_CADENCE 16 @@ -1770,8 +1810,8 @@ void zt_alarm_notify(struct zt_span *span); /* Initialize a tone state */ void zt_init_tone_state(struct zt_tone_state *ts, struct zt_tone *zt); -/* Get a given DTMF or MF tone struct, suitable for zt_tone_nextsample. */ -struct zt_tone *zt_dtmf_tone(const struct zt_chan *chan, char digit); +/* Get a given MF tone struct, suitable for zt_tone_nextsample. */ +struct zt_tone *zt_mf_tone(const struct zt_chan *chan, char digit, int digitmode); /* Echo cancel a receive and transmit chunk for a given channel. This should be called by the low-level driver as close to the interface |