Index: b/res/res_pjsip_session.c
===================================================================
--- a/res/res_pjsip_session.c
+++ b/res/res_pjsip_session.c
@@ -5181,6 +5181,7 @@ static struct pjmedia_sdp_session *creat
 	pjmedia_sdp_session *local;
 	int i;
 	int stream;
+	const char* ipstr;
 	SCOPE_ENTER(3, "%s\n", ast_sip_session_get_name(session));
 
 	if (inv->state == PJSIP_INV_STATE_DISCONNECTED) {
@@ -5328,9 +5329,15 @@ static struct pjmedia_sdp_session *creat
 		}
 	}
 
-	pj_strassign(&local->origin.net_type, &local->conn->net_type);
-	pj_strassign(&local->origin.addr_type, &local->conn->addr_type);
-	pj_strassign(&local->origin.addr, &local->conn->addr);
+	local->origin.net_type =  STR_IN;
+	ipstr = ast_sip_get_host_ip_string(pj_AF_INET());
+	if (ast_strlen_zero(ipstr)) {
+		ipstr = ast_sip_get_host_ip_string(pj_AF_INET6());
+		local->origin.addr_type = STR_IP6;
+	} else {
+		local->origin.addr_type = STR_IP4;
+	}
+	pj_strdup2(inv->pool_prov, &local->origin.addr, ipstr);
 
 end:
 	SCOPE_EXIT_RTN_VALUE(local, "%s\n", ast_sip_session_get_name(session));
Index: b/res/res_pjsip/pjsip_message_filter.c
===================================================================
--- a/res/res_pjsip/pjsip_message_filter.c
+++ b/res/res_pjsip/pjsip_message_filter.c
@@ -352,8 +352,6 @@ static pj_status_t filter_on_tx_message(
 
 		STR_IP = tdata->tp_info.transport->key.type & PJSIP_TRANSPORT_IPV6 ? STR_IP6 : STR_IP4;
 
-		pj_strassign(&sdp->origin.addr, &prm.ret_addr);
-		sdp->origin.addr_type = STR_IP;
 		pj_strassign(&sdp->conn->addr, &prm.ret_addr);
 		sdp->conn->addr_type = STR_IP;
 
