[asterisk-commits] russell: branch 1.4 r58320 - in /branches/1.4:
./ channels/
asterisk-commits at lists.digium.com
asterisk-commits at lists.digium.com
Wed Mar 7 18:01:46 MST 2007
Author: russell
Date: Wed Mar 7 19:01:46 2007
New Revision: 58320
URL: http://svn.digium.com/view/asterisk?view=rev&rev=58320
Log:
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.
Modified:
branches/1.4/channels/chan_zap.c
branches/1.4/configure
branches/1.4/configure.ac
Modified: branches/1.4/channels/chan_zap.c
URL: http://svn.digium.com/view/asterisk/branches/1.4/channels/chan_zap.c?view=diff&rev=58320&r1=58319&r2=58320
==============================================================================
--- branches/1.4/channels/chan_zap.c (original)
+++ branches/1.4/channels/chan_zap.c Wed Mar 7 19:01:46 2007
@@ -6496,6 +6496,24 @@
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;
@@ -6685,6 +6703,12 @@
"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;
@@ -9670,25 +9694,14 @@
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);
Modified: branches/1.4/configure
URL: http://svn.digium.com/view/asterisk/branches/1.4/configure?view=diff&rev=58320&r1=58319&r2=58320
==============================================================================
--- branches/1.4/configure (original)
+++ branches/1.4/configure Wed Mar 7 19:01:46 2007
@@ -1,5 +1,5 @@
#! /bin/sh
-# From configure.ac Revision: 55052 .
+# From configure.ac Revision: 57556 .
# Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.60.
#
@@ -33328,8 +33328,8 @@
fi
if test "${PBX_ZAPTEL}" = 1; 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_DIR}" != "x"; then
CPPFLAGS="${CPPFLAGS} -I${ZAPTEL_DIR}/include"
@@ -33345,7 +33345,7 @@
int
main ()
{
-int foo = ZT_TONE_DTMF_BASE;
+int foo = ZT_EVENT_REMOVED;
;
return 0;
}
Modified: branches/1.4/configure.ac
URL: http://svn.digium.com/view/asterisk/branches/1.4/configure.ac?view=diff&rev=58320&r1=58319&r2=58320
==============================================================================
--- branches/1.4/configure.ac (original)
+++ branches/1.4/configure.ac Wed Mar 7 19:01:46 2007
@@ -1026,7 +1026,7 @@
fi
if test "${PBX_ZAPTEL}" = 1; then
- AC_MSG_CHECKING(for ZT_TONE_DTMF_BASE in zaptel/zaptel.h)
+ AC_MSG_CHECKING(for ZT_EVENT_REMOVED in zaptel/zaptel.h)
saved_cppflags="${CPPFLAGS}"
if test "x${ZAPTEL_DIR}" != "x"; then
CPPFLAGS="${CPPFLAGS} -I${ZAPTEL_DIR}/include"
@@ -1035,7 +1035,7 @@
[
AC_LANG_PROGRAM(
[#include <zaptel/zaptel.h>],
- [int foo = ZT_TONE_DTMF_BASE;])
+ [int foo = ZT_EVENT_REMOVED;])
],
[ AC_MSG_RESULT(yes)
ac_cv_zaptel_vldtmf="yes"
More information about the asterisk-commits
mailing list