Do not continue to receive DTMF, when the channel is hungup and about to be destroyed.
authorTilghman Lesher <tilghman@meg.abyt.es>
Wed, 22 Apr 2009 16:01:30 +0000 (16:01 +0000)
committerTilghman Lesher <tilghman@meg.abyt.es>
Wed, 22 Apr 2009 16:01:30 +0000 (16:01 +0000)
(closes issue #14858)
 Reported by: barryf
 Patches:
       20090421__bug14858.diff.txt uploaded by tilghman (license 14)
 Tested by: barryf

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@189911 65c4cc65-6c06-0410-ace0-fbb531ad65f3

channels/chan_unistim.c

index 30f4395..127bfed 100644 (file)
@@ -2473,7 +2473,7 @@ static int unistim_do_senddigit(struct unistimsession *pte, char digit)
        struct ast_frame f = { 0, };
        struct unistim_subchannel *sub;
        sub = pte->device->lines->subs[SUB_REAL];
-       if (!sub->owner) {
+       if (!sub->owner || sub->alreadygone) {
                ast_log(LOG_WARNING, "Unable to find subchannel in dtmf senddigit\n");
                return -1;
        }
@@ -4223,8 +4223,8 @@ static int unistim_senddigit_end(struct ast_channel *ast, char digit, unsigned i
 
        sub = pte->device->lines->subs[SUB_REAL];
 
-       if (!sub->owner) {
-               ast_log(LOG_WARNING, "Unable to find subchannel in dtmf senddigiti_end\n");
+       if (!sub->owner || sub->alreadygone) {
+               ast_log(LOG_WARNING, "Unable to find subchannel in dtmf senddigit_end\n");
                return -1;
        }