Merged revisions 58320 via svnmerge from

https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r58320 | russell | 2007-03-07 19:01:46 -0600 (Wed, 07 Mar 2007) | 6 lines

If we receive ZT_EVENT_REMOVED, destroy the specified channel. 
(issue #7256, tzafrir)

Also, update the configure script to make sure that we don't try to build 
chan_zap if the installed version of zaptel does not include ZT_EVENT_REMOVED.

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@58321 65c4cc65-6c06-0410-ace0-fbb531ad65f3
1.6.0
Russell Bryant 19 years ago
parent 32e03f9e4a
commit 9266a6b8d8

@ -6866,6 +6866,24 @@ static void *ss_thread(void *data)
return NULL; 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) static int handle_init_event(struct zt_pvt *i, int event)
{ {
int res; int res;
@ -7056,6 +7074,12 @@ static int handle_init_event(struct zt_pvt *i, int event)
"polarity reversal on non-FXO (SIG_FXS) " "polarity reversal on non-FXO (SIG_FXS) "
"interface %d\n", i->channel); "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); pthread_attr_destroy(&attr);
return 0; 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) static int zap_destroy_channel(int fd, int argc, char **argv)
{ {
int channel = 0; int channel;
struct zt_pvt *tmp = NULL;
struct zt_pvt *prev = NULL;
if (argc != 4) { if (argc != 4)
return RESULT_SHOWUSAGE; return RESULT_SHOWUSAGE;
}
channel = atoi(argv[3]); channel = atoi(argv[3]);
tmp = iflist; return zap_destroy_channel_bynum(channel);
while (tmp) {
if (tmp->channel == channel) {
destroy_channel(prev, tmp, 1);
return RESULT_SUCCESS;
}
prev = tmp;
tmp = tmp->next;
}
return RESULT_FAILURE;
} }
static int setup_zap(int reload); static int setup_zap(int reload);

8
configure vendored

@ -1,5 +1,5 @@
#! /bin/sh #! /bin/sh
# From configure.ac Revision: 55077 . # From configure.ac Revision: 57557 .
# Guess values for system-dependent variables and create Makefiles. # Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.60. # 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 # Check for VLDTMF support
if test "x${PBX_ZAPTEL_VLDTMF}" != "x1" -a "${USE_ZAPTEL_VLDTMF}" != "no"; then 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 "$as_me:$LINENO: checking for ZT_EVENT_REMOVED in zaptel/zaptel.h" >&5
echo $ECHO_N "checking for ZT_TONE_DTMF_BASE in zaptel/zaptel.h... $ECHO_C" >&6; } echo $ECHO_N "checking for ZT_EVENT_REMOVED in zaptel/zaptel.h... $ECHO_C" >&6; }
saved_cppflags="${CPPFLAGS}" saved_cppflags="${CPPFLAGS}"
if test "x${ZAPTEL_VLDTMF_DIR}" != "x"; then if test "x${ZAPTEL_VLDTMF_DIR}" != "x"; then
ZAPTEL_VLDTMF_INCLUDE= "-I${ZAPTEL_VLDTMF_DIR}/include" ZAPTEL_VLDTMF_INCLUDE= "-I${ZAPTEL_VLDTMF_DIR}/include"
@ -35981,7 +35981,7 @@ cat >>conftest.$ac_ext <<_ACEOF
int int
main () main ()
{ {
int foo = ZT_TONE_DTMF_BASE; int foo = ZT_EVENT_REMOVED;
; ;
return 0; return 0;
} }

@ -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]) AST_C_DEFINE_CHECK([ZAPTEL], [ZT_DIAL_OP_CANCEL], [zaptel/zaptel.h], [90])
# Check for VLDTMF support # 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 # Check for transcode support
AST_C_DEFINE_CHECK([ZAPTEL_TRANSCODE], [ZT_TCOP_ALLOCATE], [zaptel/zaptel.h]) AST_C_DEFINE_CHECK([ZAPTEL_TRANSCODE], [ZT_TCOP_ALLOCATE], [zaptel/zaptel.h])

Loading…
Cancel
Save