diff --git a/res/res_pjsip_session.c b/res/res_pjsip_session.c
index 42edaf6ab95c9d9c7780988962542b33a368d0fa..82234aa53896bd571f6d84d43b13bb9194d89b05 100644
--- a/res/res_pjsip_session.c
+++ b/res/res_pjsip_session.c
@@ -4388,6 +4388,8 @@ static void handle_outgoing_request(struct ast_sip_session *session, pjsip_tx_da
 	SCOPE_ENTER(3, "%s: Method is %.*s\n", ast_sip_session_get_name(session),
 		(int) pj_strlen(&req.method.name), pj_strbuf(&req.method.name));
 
+	ast_sip_message_apply_transport(session->endpoint->transport, tdata);
+
 	AST_LIST_TRAVERSE(&session->supplements, supplement, next) {
 		if (supplement->outgoing_request && does_method_match(&req.method.name, supplement->method)) {
 			supplement->outgoing_request(session, tdata);
@@ -4412,6 +4414,8 @@ static void handle_outgoing_response(struct ast_sip_session *session, pjsip_tx_d
 			ast_sip_session_get_name(session));
 	}
 
+	ast_sip_message_apply_transport(session->endpoint->transport, tdata);
+
 	AST_LIST_TRAVERSE(&session->supplements, supplement, next) {
 		if (supplement->outgoing_response && does_method_match(&cseq->method.name, supplement->method)) {
 			supplement->outgoing_response(session, tdata);