|
|
|
@ -294,21 +294,22 @@ static int t38_reinvite_response_cb(struct ast_sip_session *session, pjsip_rx_da
|
|
|
|
|
{
|
|
|
|
|
struct pjsip_status_line status = rdata->msg_info.msg->line.status;
|
|
|
|
|
struct t38_state *state;
|
|
|
|
|
RAII_VAR(struct ast_sip_session_media *, session_media, NULL, ao2_cleanup);
|
|
|
|
|
struct ast_sip_session_media *session_media = NULL;
|
|
|
|
|
|
|
|
|
|
if (status.code == 100) {
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (!(state = t38_state_get_or_alloc(session)) ||
|
|
|
|
|
if (!session->channel || !(state = t38_state_get_or_alloc(session)) ||
|
|
|
|
|
!(session_media = ao2_find(session->media, "image", OBJ_KEY))) {
|
|
|
|
|
ast_log(LOG_WARNING, "Received response to T.38 re-invite on '%s' but state unavailable\n",
|
|
|
|
|
ast_channel_name(session->channel));
|
|
|
|
|
session->channel ? ast_channel_name(session->channel) : "unknown channel");
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
t38_change_state(session, session_media, state, (status.code == 200) ? T38_ENABLED : T38_REJECTED);
|
|
|
|
|
|
|
|
|
|
ao2_cleanup(session_media);
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|