diff --git a/src/mod/endpoints/mod_sofia/mod_sofia.c b/src/mod/endpoints/mod_sofia/mod_sofia.c index ce9d520ba8..80910bbd1f 100644 --- a/src/mod/endpoints/mod_sofia/mod_sofia.c +++ b/src/mod/endpoints/mod_sofia/mod_sofia.c @@ -1333,6 +1333,7 @@ static switch_status_t sofia_receive_message(switch_core_session_t *session, swi switch_channel_t *channel = switch_core_session_get_channel(session); private_object_t *tech_pvt = switch_core_session_get_private(session); switch_status_t status = SWITCH_STATUS_SUCCESS; + const char *sip_reply_contact; switch_assert(tech_pvt != NULL); @@ -1356,6 +1357,10 @@ static switch_status_t sofia_receive_message(switch_core_session_t *session, swi goto end; } + if ((sip_reply_contact = switch_channel_get_variable(channel, "sip_reply_contact"))) { + tech_pvt->reply_contact = switch_core_session_sprintf(session, sip_reply_contact); + } + if (switch_channel_test_flag(channel, CF_CONFERENCE) && !zstr(tech_pvt->reply_contact) && !switch_stristr(";isfocus", tech_pvt->reply_contact)) { tech_pvt->reply_contact = switch_core_session_sprintf(session, "%s;isfocus", tech_pvt->reply_contact); }