summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--channels/chan_zap.c43
-rwxr-xr-xconfigure8
-rw-r--r--configure.ac2
3 files changed, 33 insertions, 20 deletions
diff --git a/channels/chan_zap.c b/channels/chan_zap.c
index 06bb13ad7..0715626b0 100644
--- a/channels/chan_zap.c
+++ b/channels/chan_zap.c
@@ -6866,6 +6866,24 @@ static void *ss_thread(void *data)
return NULL;
}
+/* destroy a zaptel channel, identified by its number */
+static int zap_destroy_channel_bynum(int channel)
+{
+ struct zt_pvt *tmp = NULL;
+ struct zt_pvt *prev = NULL;
+
+ tmp = iflist;
+ while (tmp) {
+ if (tmp->channel == channel) {
+ destroy_channel(prev, tmp, 1);
+ return RESULT_SUCCESS;
+ }
+ prev = tmp;
+ tmp = tmp->next;
+ }
+ return RESULT_FAILURE;
+}
+
static int handle_init_event(struct zt_pvt *i, int event)
{
int res;
@@ -7056,6 +7074,12 @@ static int handle_init_event(struct zt_pvt *i, int event)
"polarity reversal on non-FXO (SIG_FXS) "
"interface %d\n", i->channel);
}
+ case ZT_EVENT_REMOVED: /* destroy channel */
+ ast_log(LOG_NOTICE,
+ "Got ZT_EVENT_REMOVED. Destroying channel %d\n",
+ i->channel);
+ zap_destroy_channel_bynum(i->channel);
+ break;
}
pthread_attr_destroy(&attr);
return 0;
@@ -10627,25 +10651,14 @@ static struct ast_cli_entry zap_pri_cli[] = {
static int zap_destroy_channel(int fd, int argc, char **argv)
{
- int channel = 0;
- struct zt_pvt *tmp = NULL;
- struct zt_pvt *prev = NULL;
+ int channel;
- if (argc != 4) {
+ if (argc != 4)
return RESULT_SHOWUSAGE;
- }
+
channel = atoi(argv[3]);
- tmp = iflist;
- while (tmp) {
- if (tmp->channel == channel) {
- destroy_channel(prev, tmp, 1);
- return RESULT_SUCCESS;
- }
- prev = tmp;
- tmp = tmp->next;
- }
- return RESULT_FAILURE;
+ return zap_destroy_channel_bynum(channel);
}
static int setup_zap(int reload);
diff --git a/configure b/configure
index 3485dea47..93c395c41 100755
--- a/configure
+++ b/configure
@@ -1,5 +1,5 @@
#! /bin/sh
-# From configure.ac Revision: 55077 .
+# From configure.ac Revision: 57557 .
# Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.60.
#
@@ -35963,8 +35963,8 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
# Check for VLDTMF support
if test "x${PBX_ZAPTEL_VLDTMF}" != "x1" -a "${USE_ZAPTEL_VLDTMF}" != "no"; then
- { echo "$as_me:$LINENO: checking for ZT_TONE_DTMF_BASE in zaptel/zaptel.h" >&5
-echo $ECHO_N "checking for ZT_TONE_DTMF_BASE in zaptel/zaptel.h... $ECHO_C" >&6; }
+ { echo "$as_me:$LINENO: checking for ZT_EVENT_REMOVED in zaptel/zaptel.h" >&5
+echo $ECHO_N "checking for ZT_EVENT_REMOVED in zaptel/zaptel.h... $ECHO_C" >&6; }
saved_cppflags="${CPPFLAGS}"
if test "x${ZAPTEL_VLDTMF_DIR}" != "x"; then
ZAPTEL_VLDTMF_INCLUDE= "-I${ZAPTEL_VLDTMF_DIR}/include"
@@ -35981,7 +35981,7 @@ cat >>conftest.$ac_ext <<_ACEOF
int
main ()
{
-int foo = ZT_TONE_DTMF_BASE;
+int foo = ZT_EVENT_REMOVED;
;
return 0;
}
diff --git a/configure.ac b/configure.ac
index 721f7c709..2039153c0 100644
--- a/configure.ac
+++ b/configure.ac
@@ -923,7 +923,7 @@ AST_C_DEFINE_CHECK([ZAPTEL], [ZT_TONE_DTMF_BASE], [zaptel/zaptel.h], [140])
AST_C_DEFINE_CHECK([ZAPTEL], [ZT_DIAL_OP_CANCEL], [zaptel/zaptel.h], [90])
# Check for VLDTMF support
-AST_C_DEFINE_CHECK([ZAPTEL_VLDTMF], [ZT_TONE_DTMF_BASE], [zaptel/zaptel.h])
+AST_C_DEFINE_CHECK([ZAPTEL_VLDTMF], [ZT_EVENT_REMOVED], [zaptel/zaptel.h])
# Check for transcode support
AST_C_DEFINE_CHECK([ZAPTEL_TRANSCODE], [ZT_TCOP_ALLOCATE], [zaptel/zaptel.h])