Only modify digit mode if dsp is in place
authorMark Spencer <markster@digium.com>
Thu, 24 Apr 2003 20:13:23 +0000 (20:13 +0000)
committerMark Spencer <markster@digium.com>
Thu, 24 Apr 2003 20:13:23 +0000 (20:13 +0000)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@908 65c4cc65-6c06-0410-ace0-fbb531ad65f3

channels/chan_zap.c

index 1c16aec..3dc7a83 100755 (executable)
@@ -1475,7 +1475,8 @@ static int zt_hangup(struct ast_channel *ast)
        zt_confmute(p, 0);
        restore_gains(p);
        
-       ast_dsp_digitmode(p->dsp,DSP_DIGITMODE_DTMF | p->dtmfrelax);
+       if (p->dsp)
+               ast_dsp_digitmode(p->dsp,DSP_DIGITMODE_DTMF | p->dtmfrelax);
 
 
        ast_log(LOG_DEBUG, "Hangup: channel: %d index = %d, normal = %d, callwait = %d, thirdcall = %d\n",
@@ -1589,6 +1590,7 @@ static int zt_hangup(struct ast_channel *ast)
                        ast_dsp_free(p->dsp);
                        p->dsp = NULL;
                }
+
                law = ZT_LAW_DEFAULT;
                res = ioctl(p->subs[SUB_REAL].zfd, ZT_SETLAW, &law);
                if (res < 0) 
@@ -1671,7 +1673,6 @@ static int zt_hangup(struct ast_channel *ast)
                        ast_channel_setoption(ast,AST_OPTION_AUDIO_MODE,&x,sizeof(char),0);
                }
 
-       if (p->dsp)
                restart_monitor();
        }