diff --git a/res/res_pjsip_session.c b/res/res_pjsip_session.c
index 9178174dfbb29ddfb4618fec1408db2be8265b28..a4236be32e0985a7d1dbe7ab228af29642388307 100644
--- a/res/res_pjsip_session.c
+++ b/res/res_pjsip_session.c
@@ -4340,6 +4340,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);
@@ -4364,6 +4366,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);