From a3839376f75266deaccbf12ce3506ba402b188a9 Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Thu, 26 Oct 2006 15:00:46 +0000 Subject: [PATCH] update git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@3210 d0543943-73ff-0310-b7d9-9358b9ac24b2 --- src/mod/endpoints/mod_portaudio/mod_portaudio.c | 6 +++++- src/switch_ivr.c | 3 +++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/mod/endpoints/mod_portaudio/mod_portaudio.c b/src/mod/endpoints/mod_portaudio/mod_portaudio.c index 68d340c67c..4b4449acf9 100644 --- a/src/mod/endpoints/mod_portaudio/mod_portaudio.c +++ b/src/mod/endpoints/mod_portaudio/mod_portaudio.c @@ -823,7 +823,11 @@ static switch_status_t engage_device(struct private_object *tech_pvt) } else { switch_core_codec_destroy(&tech_pvt->read_codec); switch_core_codec_destroy(&tech_pvt->write_codec); - switch_core_session_destroy(&tech_pvt->session); + if (switch_core_session_running(tech_pvt->session)) { + switch_channel_hangup(channel, SWITCH_CAUSE_DESTINATION_OUT_OF_ORDER); + } else { + switch_core_session_destroy(&tech_pvt->session); + } } return SWITCH_STATUS_FALSE; diff --git a/src/switch_ivr.c b/src/switch_ivr.c index 4a6d76ff79..2eec41403d 100644 --- a/src/switch_ivr.c +++ b/src/switch_ivr.c @@ -2101,6 +2101,9 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_originate(switch_core_session_t *sess if (idx == IDX_CANCEL) { switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Originate Cancelled by originator termination Cause: %d [%s]\n", *cause, switch_channel_cause2str(*cause)); + if (peer_channel) { + switch_channel_hangup(peer_channel, SWITCH_CAUSE_ORIGINATOR_CANCEL); + } } else { switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Originate Resulted in Error Cause: %d [%s]\n", *cause, switch_channel_cause2str(*cause));