diff --git a/src/include/switch_core.h b/src/include/switch_core.h index f279a73a53..aa1cf3097c 100644 --- a/src/include/switch_core.h +++ b/src/include/switch_core.h @@ -522,6 +522,8 @@ SWITCH_DECLARE(void) switch_core_session_perform_destroy(_Inout_ switch_core_ses */ SWITCH_DECLARE(uint32_t) switch_core_session_count(void); +SWITCH_DECLARE(uint32_t) switch_core_session_get_id(switch_core_session_t *session); + /*! \brief Provide the current session_id \return the total number of allocated sessions since core startup diff --git a/src/switch_core_session.c b/src/switch_core_session.c index 19402dbae5..fd757e966b 100644 --- a/src/switch_core_session.c +++ b/src/switch_core_session.c @@ -964,6 +964,11 @@ SWITCH_DECLARE(uint32_t) switch_core_session_count(void) return session_manager.session_count; } +SWITCH_DECLARE(uint32_t) switch_core_session_get_id(switch_core_session_t *session) +{ + return session->id; +} + SWITCH_DECLARE(switch_size_t) switch_core_session_id(void) { return session_manager.session_id; diff --git a/src/switch_ivr_originate.c b/src/switch_ivr_originate.c index a12ebbbfeb..744f48c4e1 100644 --- a/src/switch_ivr_originate.c +++ b/src/switch_ivr_originate.c @@ -1199,6 +1199,7 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_originate(switch_core_session_t *sess sent_ring = 1; } /* When the AND operator is being used, and fail_on_single_reject is set, a hangup indicates that the call should fail. */ + if ((to = (uint8_t) ((switch_timestamp(NULL) - start) >= (time_t) timelimit_sec)) || (fail_on_single_reject && hups)) { idx = IDX_TIMEOUT; @@ -1282,9 +1283,9 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_originate(switch_core_session_t *sess } } else { - switch_yield(1000); + switch_yield(10000); } - + } notready: