mirror of
https://github.com/asterisk/asterisk.git
synced 2025-10-13 00:04:53 +00:00
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
This commit is contained in:
@@ -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
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])
|
||||||
|
Reference in New Issue
Block a user