summaryrefslogtreecommitdiff
path: root/zaptel.c
diff options
context:
space:
mode:
authormarkster <markster@5390a7c7-147a-4af0-8ec9-7488f05a26cb>2004-04-16 17:59:07 +0000
committermarkster <markster@5390a7c7-147a-4af0-8ec9-7488f05a26cb>2004-04-16 17:59:07 +0000
commit0a1121e435c240bc917130fdf86afcc34f7a8a7f (patch)
tree31b333e2a868597234aa87f773e75d913636c1d2 /zaptel.c
parent7003350768ed2f317fad1f1a81779294710df125 (diff)
Add support for E&M / E1
git-svn-id: http://svn.digium.com/svn/zaptel/trunk@366 5390a7c7-147a-4af0-8ec9-7488f05a26cb
Diffstat (limited to 'zaptel.c')
-rwxr-xr-xzaptel.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/zaptel.c b/zaptel.c
index 81f9dbb..0250673 100755
--- a/zaptel.c
+++ b/zaptel.c
@@ -339,7 +339,7 @@ static rwlock_t chan_lock = RW_LOCK_UNLOCKED;
static struct zt_zone *tone_zones[ZT_TONE_ZONE_MAX];
-#define NUM_SIGS 9
+#define NUM_SIGS 10
static inline void rotate_sums(void)
@@ -367,7 +367,8 @@ static unsigned int in_sig[NUM_SIGS][2] = {
{ ZT_SIG_FXOLS,0 | (ZT_ABIT << 8)},
{ ZT_SIG_FXOGS,ZT_BBIT | ((ZT_ABIT | ZT_BBIT) << 8)},
{ ZT_SIG_FXOKS,0 | (ZT_ABIT << 8)},
- { ZT_SIG_SF, 0}
+ { ZT_SIG_SF, 0},
+ { ZT_SIG_EM_E1, ZT_DBIT | (ZT_ABIT << 8) },
} ;
/* must have span to begin with */
@@ -405,6 +406,8 @@ static char *sigstr(int sig)
return "FXOGS";
case ZT_SIG_EM:
return "E&M";
+ case ZT_SIG_EM_E1:
+ return "E&M-E1";
case ZT_SIG_CLEAR:
return "ClearChannel";
case ZT_SIG_HDLCRAW:
@@ -1768,6 +1771,8 @@ who cares what the sig bits are as long as they are stable */
ZT_ABIT | ZT_BBIT | ZT_CBIT | ZT_DBIT,
ZT_ABIT | ZT_BBIT | ZT_CBIT | ZT_DBIT,
ZT_BBIT | ZT_CBIT | ZT_DBIT }, /* no signalling */
+ { ZT_SIG_EM_E1, ZT_DBIT, ZT_ABIT | ZT_BBIT | ZT_DBIT,
+ ZT_ABIT | ZT_BBIT | ZT_DBIT, ZT_DBIT }, /* E and M E1 */
} ;
int x;
@@ -4800,6 +4805,7 @@ static void __zt_hooksig_pvt(struct zt_chan *chan, zt_rxsig_t rxsig)
chan->rxhooksig = rxsig;
switch(chan->sig) {
case ZT_SIG_EM: /* E and M */
+ case ZT_SIG_EM_E1:
switch(rxsig) {
case ZT_RXSIG_OFFHOOK: /* went off hook */
/* The interface is going off hook */
@@ -4924,6 +4930,7 @@ void zt_rbsbits(struct zt_chan *chan, int cursig)
}
/* Fall through */
case ZT_SIG_EM: /* E and M */
+ case ZT_SIG_EM_E1:
case ZT_SIG_FXOLS: /* FXO Loopstart */
case ZT_SIG_FXOKS: /* FXO Kewlstart */
if (cursig & ZT_ABIT) /* off hook */