diff --git a/src/mod/endpoints/mod_sofia/sofia_glue.c b/src/mod/endpoints/mod_sofia/sofia_glue.c index 2c43d778ad..c0a716310a 100644 --- a/src/mod/endpoints/mod_sofia/sofia_glue.c +++ b/src/mod/endpoints/mod_sofia/sofia_glue.c @@ -1789,11 +1789,6 @@ uint8_t sofia_glue_negotiate_sdp(switch_core_session_t *session, sdp_session_t * } } - if (!match && greedy) { - skip++; - continue; - } - if (!match && near_match) { const switch_codec_implementation_t *search[1]; char *prefs[1]; @@ -1816,6 +1811,11 @@ uint8_t sofia_glue_negotiate_sdp(switch_core_session_t *session, sdp_session_t * match = 1; } + if (!match && greedy) { + skip++; + continue; + } + if (mimp) { char tmp[50]; tech_pvt->rm_encoding = switch_core_session_strdup(session, (char *) map->rm_encoding); diff --git a/src/switch_ivr_originate.c b/src/switch_ivr_originate.c index 1375c74a15..84ec6a53f7 100644 --- a/src/switch_ivr_originate.c +++ b/src/switch_ivr_originate.c @@ -1161,6 +1161,10 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_originate(switch_core_session_t *sess done: *cause = SWITCH_CAUSE_UNALLOCATED; + if (caller_channel && !switch_channel_ready(caller_channel)) { + status = SWITCH_STATUS_FALSE; + } + if (status == SWITCH_STATUS_SUCCESS) { if (caller_channel) { switch_channel_set_variable(caller_channel, "originate_disposition", "call accepted");