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) {