diff --git a/src/include/switch_types.h b/src/include/switch_types.h index ae073108f1..b49d74cbc3 100644 --- a/src/include/switch_types.h +++ b/src/include/switch_types.h @@ -783,6 +783,7 @@ typedef enum { typedef enum { SWITCH_CAUSE_UNALLOCATED = 0, + SWITCH_CAUSE_SUCCESS = 1, SWITCH_CAUSE_NO_ROUTE_TRANSIT_NET = 2, SWITCH_CAUSE_NO_ROUTE_DESTINATION = 3, SWITCH_CAUSE_CHANNEL_UNACCEPTABLE = 6, diff --git a/src/switch_channel.c b/src/switch_channel.c index c69cd810e7..1bd3f65a5e 100644 --- a/src/switch_channel.c +++ b/src/switch_channel.c @@ -40,6 +40,7 @@ struct switch_cause_table { static struct switch_cause_table CAUSE_CHART[] = { { "UNALLOCATED", SWITCH_CAUSE_UNALLOCATED }, + { "SUCCESS", SWITCH_CAUSE_SUCCESS }, { "NO_ROUTE_TRANSIT_NET", SWITCH_CAUSE_NO_ROUTE_TRANSIT_NET }, { "NO_ROUTE_DESTINATION", SWITCH_CAUSE_NO_ROUTE_DESTINATION }, { "CHANNEL_UNACCEPTABLE", SWITCH_CAUSE_CHANNEL_UNACCEPTABLE }, diff --git a/src/switch_ivr.c b/src/switch_ivr.c index 6af32747f6..92d1455b21 100644 --- a/src/switch_ivr.c +++ b/src/switch_ivr.c @@ -2893,6 +2893,7 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_originate(switch_core_session_t *sess switch_channel_set_variable(caller_channel, "originate_disposition", "call accepted"); } switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Originate Resulted in Success: [%s]\n", switch_channel_get_name(peer_channel)); + *cause = SWITCH_CAUSE_SUCCESS; } else { if (peer_channel) { *cause = switch_channel_get_cause(peer_channel);