diff --git a/src/mod/endpoints/mod_sofia/sofia.c b/src/mod/endpoints/mod_sofia/sofia.c index 12d8c5b477..752754ccc3 100644 --- a/src/mod/endpoints/mod_sofia/sofia.c +++ b/src/mod/endpoints/mod_sofia/sofia.c @@ -183,10 +183,12 @@ static void extract_header_vars(sofia_profile_t *profile, sip_t const *sip, } } - if (sip->sip_contact) { - char *c = sip_header_as_string(nh->nh_home, (void *) sip->sip_contact); - switch_channel_set_variable(channel, "sip_recover_contact", c); - su_free(nh->nh_home, c); + if (switch_channel_direction(channel) == SWITCH_CALL_DIRECTION_OUTBOUND) { + if (sip->sip_contact) { + char *c = sip_header_as_string(nh->nh_home, (void *) sip->sip_contact); + switch_channel_set_variable(channel, "sip_recover_contact", c); + su_free(nh->nh_home, c); + } } if (sip->sip_record_route) {