]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
freetdm: only set ec call end when the HANGUP state is confirmed
authorMoises Silva <moy@sangoma.com>
Fri, 18 Feb 2011 15:51:36 +0000 (10:51 -0500)
committerMoises Silva <moy@sangoma.com>
Fri, 18 Feb 2011 15:51:36 +0000 (10:51 -0500)
libs/freetdm/src/ftdm_io.c
libs/freetdm/src/ftdm_state.c

index 260892ada0e65f7a623ca1055eb1c5a92ae5375d..504c00f33cad7a0069342e44a9f4cb144f7caa8f 100644 (file)
@@ -2175,8 +2175,6 @@ static ftdm_status_t _ftdm_channel_call_hangup_nl(const char *file, const char *
 {
        ftdm_status_t status = FTDM_SUCCESS;
        
-       ftdm_set_echocancel_call_end(chan);
-       
        if (chan->state != FTDM_CHANNEL_STATE_DOWN) {
                if (chan->state == FTDM_CHANNEL_STATE_HANGUP) {
                        /* make user's life easier, and just ignore double hangup requests */
index de62c0f0e7a5f99307ff18512ee80e46fca58418..9fe2b911dcfb9605ab80f378facc6528400d0012 100644 (file)
@@ -83,6 +83,8 @@ FT_DECLARE(ftdm_status_t) _ftdm_channel_complete_state(const char *file, const c
                msg.channel = fchan;
                msg.event_id = FTDM_SIGEVENT_DIALING;
                ftdm_span_send_signal(fchan->span, &msg);
+       } else if (state == FTDM_CHANNEL_STATE_HANGUP) {
+               ftdm_set_echocancel_call_end(fchan);
        }
 
        /* MAINTENANCE WARNING