From 631c976f59ede25c3e9797100861bfc4b87b7424 Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Wed, 12 Sep 2012 10:22:03 -0500 Subject: [PATCH] don't put casue from unanswered pickups as result of originate --- src/include/switch_types.h | 3 ++- src/switch_ivr_originate.c | 5 ++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/include/switch_types.h b/src/include/switch_types.h index db9cf5cb0e..088050f86a 100644 --- a/src/include/switch_types.h +++ b/src/include/switch_types.h @@ -1747,7 +1747,8 @@ typedef enum { SWITCH_CAUSE_INVALID_GATEWAY = 608, SWITCH_CAUSE_GATEWAY_DOWN = 609, SWITCH_CAUSE_INVALID_URL = 610, - SWITCH_CAUSE_INVALID_PROFILE = 611 + SWITCH_CAUSE_INVALID_PROFILE = 611, + SWITCH_CAUSE_NO_PICKUP = 612 } switch_call_cause_t; typedef enum { diff --git a/src/switch_ivr_originate.c b/src/switch_ivr_originate.c index ed2506a4f6..23e4f857a2 100644 --- a/src/switch_ivr_originate.c +++ b/src/switch_ivr_originate.c @@ -781,11 +781,10 @@ static uint8_t check_channel_status(originate_global_t *oglobals, originate_stat end: if (rval == 0 && pickups) { - *force_reason = SWITCH_CAUSE_NO_ANSWER; for (i = 0; i < len; i++) { if (originate_status[i].peer_channel && switch_channel_test_flag(originate_status[i].peer_channel, CF_PICKUP) && switch_channel_up(originate_status[i].peer_channel)) { - switch_channel_hangup(originate_status[i].peer_channel, SWITCH_CAUSE_NO_ANSWER); + switch_channel_hangup(originate_status[i].peer_channel, SWITCH_CAUSE_NO_PICKUP); } } } @@ -1632,7 +1631,7 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_enterprise_originate(switch_core_sess } switch_mutex_unlock(handles[i].mutex); - if (getcause && *cause != handles[i].cause && handles[i].cause != SWITCH_CAUSE_LOSE_RACE) { + if (getcause && *cause != handles[i].cause && handles[i].cause != SWITCH_CAUSE_LOSE_RACE && handles[i].cause != SWITCH_CAUSE_NO_PICKUP) { *cause = handles[i].cause; getcause++; }