From 236462681192cfde8bd3e17b3a3e4ebbcbcb2c13 Mon Sep 17 00:00:00 2001
From: Joshua Colp <jcolp@digium.com>
Date: Wed, 4 Dec 2013 20:54:52 +0000
Subject: [PATCH] res_pjsip_t38: Don't pass T.38 control frames through to
 other hooks.

This crept up during gateway testing where the gateway would receive
the request to negotiate and assume it came from the remote side, causing
the gateway state machine to go a little, to a use a technical term,
"wonky".
........

Merged revisions 403364 from http://svn.asterisk.org/svn/asterisk/branches/12


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@403365 65c4cc65-6c06-0410-ace0-fbb531ad65f3
---
 res/res_pjsip_t38.c | 8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)

diff --git a/res/res_pjsip_t38.c b/res/res_pjsip_t38.c
index 021fe4fe29..3c97784a13 100644
--- a/res/res_pjsip_t38.c
+++ b/res/res_pjsip_t38.c
@@ -113,11 +113,7 @@ static struct t38_parameters_task_data *t38_parameters_task_data_alloc(struct as
 
 	data->session = session;
 	ao2_ref(session, +1);
-
-	if (!(data->frame = ast_frdup(frame))) {
-		ao2_cleanup(data);
-		return NULL;
-	}
+	data->frame = frame;
 
 	return data;
 }
@@ -396,6 +392,8 @@ static struct ast_frame *t38_framehook_write(struct ast_sip_session *session, st
 		if (ast_sip_push_task(session->serializer, t38_interpret_parameters, data)) {
 			ao2_ref(data, -1);
 		}
+
+		f = &ast_null_frame;
 	} else if (f->frametype == AST_FRAME_MODEM) {
 		RAII_VAR(struct ast_sip_session_media *, session_media, NULL, ao2_cleanup);
 
-- 
GitLab