From: Joshua Colp Date: Wed, 4 Dec 2013 20:53:32 +0000 (+0000) Subject: res_pjsip_t38: Don't pass T.38 control frames through to other hooks. X-Git-Tag: 12.0.0~77 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3a33afa7cdf7e9c0fa23673a60d25900ac4a9906;p=thirdparty%2Fasterisk.git 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". git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/12@403364 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- 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);