From: Anthony Minessale Date: Fri, 1 Apr 2011 18:20:35 +0000 (-0500) Subject: FS-3214 try this X-Git-Tag: v1.2-rc1~120^2~5^2~17^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e177d377aa0f64e58bc486b1d5e8473c12fd3931;p=thirdparty%2Ffreeswitch.git FS-3214 try this --- diff --git a/src/mod/endpoints/mod_sofia/sofia.c b/src/mod/endpoints/mod_sofia/sofia.c index 12f1b233fc..23f1fd0e88 100644 --- a/src/mod/endpoints/mod_sofia/sofia.c +++ b/src/mod/endpoints/mod_sofia/sofia.c @@ -4928,7 +4928,11 @@ static void sofia_handle_sip_i_state(switch_core_session_t *session, int status, match = sofia_glue_negotiate_sdp(session, r_sdp); } - if (match) { + if (!match) { + if (switch_channel_get_state(channel) != CS_NEW) { + nua_respond(tech_pvt->nh, SIP_488_NOT_ACCEPTABLE, TAG_END()); + } + } else { nua_handle_t *bnh; sip_replaces_t *replaces; su_home_t *home = NULL; @@ -4936,6 +4940,8 @@ static void sofia_handle_sip_i_state(switch_core_session_t *session, int status, sofia_set_flag_locked(tech_pvt, TFLAG_READY); if (switch_channel_get_state(channel) == CS_NEW) { switch_channel_set_state(channel, CS_INIT); + } else { + nua_respond(tech_pvt->nh, SIP_200_OK, TAG_END()); } sofia_set_flag(tech_pvt, TFLAG_SDP); if (replaces_str) {